PATCH RFA: -Wc++-compat warnings for assignments to enum variables

Janne Blomqvist blomqvist.janne@gmail.com
Thu Apr 23 20:03:00 GMT 2009


Ian Lance Taylor wrote:
> This patch, the next step in my -Wc++-compat work, turns on warnings for
> assignments to variables of enum type.
> 
> There are two patches here.  The first, smaller, patch enables the
> warning.  The main work here is to add a parameter to build_modify_expr,
> so that we can emit warnings for assignments to bitfields in structs
> with enum type.  The additional parameter is required because at the
> point of convert_for_assignment, the original enum type has been
> replaced by a bitfield integer type.  This patch requires approval from
> the C and C++ frontend maintainers.  Please also take a quick look at
> the new test case, and let me know if there are any other cases I should
> check.
> 
> The second patch fixes all the cases I discovered where this warning is
> triggered when bootstrapping gcc.  As before I tested building the arm,
> pa, ia64, mips, ppc, s390, sparc, and spu backends.  I verified that
> they continued to work the same way on a range of preprocessed test
> cases.  This second patch requires approach from the C++, Java, and
> Fortran maintainers.  It might be useful for the OpenMP maintainers to
> look at the changes to gimplify_omp_for, which were slightly less
> mechanical than the other changes.
> 
> Bootstrapped and tested on i686-pc-linux-gnu.  OK for mainline?
> 
> Ian

Fortran parts are Ok. Thanks for working on this (ze dream is aliiive!).

> fortran/ChangeLog:
> 
> 2009-04-22  Ian Lance Taylor  <iant@google.com>
> 
> 	* gfortran.h (enum gfc_symbol_type): New named enum type, broken
> 	out of struct gfc_symbol.
> 	(struct gfc_symbol): Use enum gfc_symbol_type.
> 	(enum gfc_array_ref_dimen_type): New named enum type, broken out
> 	of struct gfc_array_ref).
> 	(struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
> 	(mod_pointee_as): Update declaration.
> 	* decl.c (add_global_entry): Change type to enum gfc_symbol_type.
> 	(gfc_mod_pointee_as): Change return type to "match".
> 	* module.c (mio_array_ref): Add cast to enum type.
> 	(mio_symbol): Likewise.
> 	* resolve.c (resolve_global_procedure): Change type to enum
> 	gfc_symbol_type.
> 	* trans-io.c (gfc_build_st_parameter): Change type to unsigned
> 	int.


-- 
Janne Blomqvist



More information about the Fortran mailing list