diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0d4e023..cc4971b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com> + + * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber + warning from -Wuninitialized and put it under -W. + * function.c (uninitialized_vars_warning): Warn only when the + corresponding flag is set. + Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com) * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All diff --git a/gcc/function.c b/gcc/function.c index f6f5d88..10a33da 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -5075,7 +5075,8 @@ uninitialized_vars_warning (block) register tree decl, sub; for (decl = BLOCK_VARS (block); decl; decl = TREE_CHAIN (decl)) { - if (TREE_CODE (decl) == VAR_DECL + if (warn_uninitialized + && TREE_CODE (decl) == VAR_DECL /* These warnings are unreliable for and aggregates because assigning the fields one by one can fail to convince flow.c that the entire aggregate was initialized. @@ -5094,7 +5095,8 @@ uninitialized_vars_warning (block) && regno_uninitialized (REGNO (DECL_RTL (decl)))) warning_with_decl (decl, "`%s' might be used uninitialized in this function"); - if (TREE_CODE (decl) == VAR_DECL + if (extra_warnings + && TREE_CODE (decl) == VAR_DECL && DECL_RTL (decl) != 0 && GET_CODE (DECL_RTL (decl)) == REG && regno_clobbered_at_setjmp (REGNO (DECL_RTL (decl)))) diff --git a/gcc/toplev.c b/gcc/toplev.c index 6f8883b..cce00ee 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -4010,10 +4010,11 @@ rest_of_compilation (decl) life_analysis (insns, max_reg_num (), rtl_dump_file, 1); }); - if (warn_uninitialized) + if (warn_uninitialized || extra_warnings) { uninitialized_vars_warning (DECL_INITIAL (decl)); - setjmp_args_warning (); + if (extra_warnings) + setjmp_args_warning (); } }