Hi!

I see these warnings/errors right now:

g++ -c   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing 
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes 
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common  
-DHAVE_CONFIG_H -I. -I. -I../../../../gcc/gcc -I../../../../gcc/gcc/. 
-I../../../../gcc/gcc/../include -I../../../../gcc/gcc/../libcpp/include  
-I../../../../gcc/gcc/../libdecnumber -I../../../../gcc/gcc/../libdecnumber/dpd 
-I../libdecnumber    -I. -I. -I../../../../gcc/gcc -I../../../../gcc/gcc/. 
-I../../../../gcc/gcc/../include -I../../../../gcc/gcc/../libcpp/include  
-I../../../../gcc/gcc/../libdecnumber -I../../../../gcc/gcc/../libdecnumber/dpd 
-I../libdecnumber   ../../../../gcc/gcc/config/avr/avr-log.c
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC 
but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wmissing-prototypes’ is valid for 
C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wold-style-definition’ is valid for 
C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wc++-compat’ is valid for C/ObjC but 
not for C++ [enabled by default]
../../../../gcc/gcc/config/avr/avr-log.c: In function ‘void 
avr_log_vadump(FILE*, const char*, va_list)’:
../../../../gcc/gcc/config/avr/avr-log.c:287:22: warning: ‘machine_mode’ is 
promoted to ‘int’ when passed through ‘...’ [enabled by default]
../../../../gcc/gcc/config/avr/avr-log.c:287:22: note: (so you should pass 
‘int’ not ‘machine_mode’ to ‘va_arg’)
../../../../gcc/gcc/config/avr/avr-log.c:287:22: note: if this code is reached, 
the program will abort
../../../../gcc/gcc/config/avr/avr-log.c:291:31: warning: ‘rtx_code’ is 
promoted to ‘int’ when passed through ‘...’ [enabled by default]
../../../../gcc/gcc/config/avr/avr-log.c:291:31: note: if this code is reached, 
the program will abort
../../../../gcc/gcc/config/avr/avr-log.c:295:38: warning: ‘reg_class’ is 
promoted to ‘int’ when passed through ‘...’ [enabled by default]
../../../../gcc/gcc/config/avr/avr-log.c:295:38: note: if this code is reached, 
the program will abort

[...]

g++   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing 
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes 
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros 
-Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common  
-DHAVE_CONFIG_H -I. -I. -I../../../../gcc/gcc -I../../../../gcc/gcc/. 
-I../../../../gcc/gcc/../include -I../../../../gcc/gcc/../libcpp/include  
-I../../../../gcc/gcc/../libdecnumber -I../../../../gcc/gcc/../libdecnumber/dpd 
-I../libdecnumber    -I. -I. -I../../../../gcc/gcc -I../../../../gcc/gcc/. 
-I../../../../gcc/gcc/../include -I../../../../gcc/gcc/../libcpp/include  
-I../../../../gcc/gcc/../libdecnumber -I../../../../gcc/gcc/../libdecnumber/dpd 
-I../libdecnumber   ../../../../gcc/gcc/config/avr/gen-avr-mmcu-texi.c -o 
gen-avr-mmcu-texi
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC 
but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wmissing-prototypes’ is valid for 
C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wold-style-definition’ is valid for 
C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wc++-compat’ is valid for C/ObjC but 
not for C++ [enabled by default]
../../../../gcc/gcc/config/avr/gen-avr-mmcu-texi.c: In function ‘int main()’:
../../../../gcc/gcc/config/avr/gen-avr-mmcu-texi.c:53:24: error: invalid 
conversion from ‘int’ to ‘avr_arch’ [-fpermissive]
../../../../gcc/gcc/config/avr/gen-avr-mmcu-texi.c:75:23: error: invalid 
conversion from ‘int’ to ‘avr_arch’ [-fpermissive]
make[3]: *** [gen-avr-mmcu-texi] Error 1
make[3]: Leaving directory `/mnt/devel/src/linux/build/avr/gcc-stage1/gcc'
make[2]: *** [all-gcc] Error 2
make[2]: Leaving directory `/mnt/devel/src/linux/build/avr/gcc-stage1'


I suggest this patch. Okay?



2012-08-17  Jan-Benedict Glaw  <jbg...@lug-owl.de>

gcc/Changelog:
        * config/avr/avr-log.c (avr_log_vadump): Properly use
        int-promoted enum values.
        * config/avr/avr.h (struct mcu_type_s): Change `arch' from
        int to enum avr_arch.
        * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.




diff --git a/gcc/config/avr/avr-log.c b/gcc/config/avr/avr-log.c
index f054bb5..f86165d 100644
--- a/gcc/config/avr/avr-log.c
+++ b/gcc/config/avr/avr-log.c
@@ -284,15 +284,15 @@ avr_log_vadump (FILE *file, const char *fmt, va_list ap)
               break;
                         
             case 'm':
-              fputs (GET_MODE_NAME (va_arg (ap, enum machine_mode)), file);
+              fputs (GET_MODE_NAME ((enum machine_mode) va_arg (ap, int)), 
file);
               break;
               
             case 'C':
-              fputs (rtx_name[va_arg (ap, enum rtx_code)], file);
+              fputs (rtx_name[va_arg (ap, int)], file);
               break;
               
             case 'R':
-              fputs (reg_class_names[va_arg (ap, enum reg_class)], file);
+              fputs (reg_class_names[va_arg (ap, int)], file);
               break;
               
             case 'F':
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 48fd495..0ce0af4 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -95,7 +95,7 @@ struct mcu_type_s {
   const char *const name;
   
   /* Index in avr_arch_types[].  */
-  int arch; 
+  enum avr_arch arch; 
   
   /* Must lie outside user's namespace.  NULL == no macro.  */
   const char *const macro;
diff --git a/gcc/config/avr/gen-avr-mmcu-texi.c 
b/gcc/config/avr/gen-avr-mmcu-texi.c
index b5cb3c4..f4cb24e 100644
--- a/gcc/config/avr/gen-avr-mmcu-texi.c
+++ b/gcc/config/avr/gen-avr-mmcu-texi.c
@@ -50,7 +50,7 @@ print_mcus (size_t n_mcus)
 
 int main (void)
 {
-  enum avr_arch arch = 0;
+  enum avr_arch arch = ARCH_UNKNOWN;
   size_t i, n_mcus = 0;
   const struct mcu_type_s *mcu;
 
-- 
      Jan-Benedict Glaw      jbg...@lug-owl.de              +49-172-7608481
Signature of:       Warum ist Scheiße braun? ...weil braun schon immer scheiße 
ist!
the second  :

Attachment: signature.asc
Description: Digital signature

Reply via email to