Message ID | 50F445DB.6020106@gjlay.de |
---|---|
State | New |
Headers | show |
> -----Original Message----- > From: Georg-Johann Lay > Sent: Monday, January 14, 2013 10:52 AM > To: gcc-patches@gcc.gnu.org > Cc: Denis Chertykov; Weddington, Eric > Subject: [patch,avr]: Minor fixes to some built-in macros > > This patch does: > > 1) With 8-bit int, __INT24_MAX__ and __UINT24_MAX__ need a long long > suffix. > > 2) Defines like __FLASH that indicate if address space is available > should > be like a predicate, i.e. 1 if the space is available. I'm not seeing #2 being done in the patch... Am I missing something? Eric > Obvious and lightly tested. > > Ok? > > Johann > > > * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH > etc. to 1 and not to __flash. > Use LL suffix for __INT24_MAX__ with -mint8. > Use ULL suffix for __UINT24_MAX__ with -mint8.
Weddington, Eric wrote: >> >> This patch does: >> >> 1) With 8-bit int, __INT24_MAX__ and __UINT24_MAX__ need a long long >> suffix. >> >> 2) Defines like __FLASH that indicate if address space is available should >> be like a predicate, i.e. 1 if the space is available. > > I'm not seeing #2 being done in the patch... Am I missing something? The current "#define __FLASH=__flash" is accomplished by the cpp_define_formatted with "%s=%s". The new is just a cpp_define for __FLASH, retrieved by avr_toupper. Johann
> -----Original Message----- > From: Georg-Johann Lay > Sent: Monday, January 14, 2013 11:15 AM > To: Weddington, Eric > Cc: gcc-patches@gcc.gnu.org; Denis Chertykov > Subject: Re: [patch,avr]: Minor fixes to some built-in macros > > Weddington, Eric wrote: > >> > >> This patch does: > >> > >> 1) With 8-bit int, __INT24_MAX__ and __UINT24_MAX__ need a long long > >> suffix. > >> > >> 2) Defines like __FLASH that indicate if address space is available > should > >> be like a predicate, i.e. 1 if the space is available. > > > > I'm not seeing #2 being done in the patch... Am I missing something? > > The current "#define __FLASH=__flash" is accomplished by the > cpp_define_formatted with "%s=%s". The new is just a cpp_define for > __FLASH, > retrieved by avr_toupper. Thanks for the explanation. Please commit. Eric
Index: config/avr/avr-c.c =================================================================== --- config/avr/avr-c.c (revision 195151) +++ config/avr/avr-c.c (working copy) @@ -169,8 +169,7 @@ avr_cpu_cpp_builtins (struct cpp_reader const char *name = avr_addrspace[i].name; char *Name = (char*) alloca (1 + strlen (name)); - cpp_define_formatted (pfile, "%s=%s", - avr_toupper (Name, name), name); + cpp_define (pfile, avr_toupper (Name, name)); } } @@ -187,7 +186,9 @@ avr_cpu_cpp_builtins (struct cpp_reader /* Builtin macros for the __int24 and __uint24 type. */ - cpp_define (pfile, "__INT24_MAX__=8388607L"); + cpp_define_formatted (pfile, "__INT24_MAX__=8388607%s", + INT_TYPE_SIZE == 8 ? "LL" : "L"); cpp_define (pfile, "__INT24_MIN__=(-__INT24_MAX__-1)"); - cpp_define (pfile, "__UINT24_MAX__=16777215UL"); + cpp_define_formatted (pfile, "__UINT24_MAX__=16777215%s", + INT_TYPE_SIZE == 8 ? "ULL" : "UL"); }