From: meissner Date: Sat, 15 Jul 2000 04:18:47 +0000 (+0000) Subject: update portability guide X-Git-Tag: upstream/4.9.2~100340 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f2fbb03c56a8cca45e8be218f071db06591fa911;p=platform%2Fupstream%2Flinaro-gcc.git update portability guide git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35041 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 84deb16..8a5201d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-07-15 Michael Meissner + + * README.Portability: Update integer suffixes and function + prototype sections. + 2000-07-15 Neil Booth * README.Portability: Small update. diff --git a/gcc/README.Portability b/gcc/README.Portability index a733151..d6c8aec 100644 --- a/gcc/README.Portability +++ b/gcc/README.Portability @@ -155,6 +155,9 @@ ansidecl.h for the definitions of the above macros and more. #define PARAMS(paramlist) () /* K+R C. */ #define VPARAMS(args) (va_alist) va_dcl +One aspect of using K+R style function declarations, is you cannot have +arguments whose types are char, short, or float, since without prototypes (ie, +K+R rules), these types are promoted to int, int, and double respectively. Calling functions through pointers to functions ----------------------------------------------- @@ -230,10 +233,6 @@ int is done as an unsigned comparison in K+R (since unsigned char promotes to unsigned) while it is signed in ISO (since all of the values in unsigned char fit in an int, it promotes to int). -** Not having any argument whose type is a short type (char, short, -float of any flavor) and subject to promotion. ** - - Trigraphs --------- @@ -245,7 +244,11 @@ them. Suffixes on Integer Constants ----------------------------- -**Using a 'u' suffix on integer constants.** +K+R C did not accept a 'u' suffix on integer constants. If you want to declare +a constant to be be unsigned, you must use an explicit cast. + +You should never use a 'l' suffix on integer constants ('L' is fine), since it +can easily be confused with the number '1'. Common Coding Pitfalls