public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch] PR55189 enable -Wreturn-type by default
@ 2014-06-04 19:49 Sylvestre Ledru
  2014-06-04 22:35 ` Mike Stump
  2014-06-04 23:31 ` Joseph S. Myers
  0 siblings, 2 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-06-04 19:49 UTC (permalink / raw)
  To: Jason Merrill, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]

Hello,

Finally, I have been able to update all tests with -Wreturn-type enabled
by default. AFAIK, under GNU/Linux Debian Jessie 64 bits, there is no
PASS->FAIL tests.

Now, I would like to know if I can commit that into the repository. Who
can review that?

As attachment, you will find the actual (tiny) patch.

I split the tests update by languages. As they are big ( 1260 files
changed, 1638 insertions(+), 903 deletions(-) ), I uploaded the patches
on my server:
http://sylvestre.ledru.info/bordel/patch/0002-Update-Objective-c-tests-with-warning-return-type-en.patch
http://sylvestre.ledru.info/bordel/patch/0003-Update-Fortran-tests-with-warning-return-type-enable.patch
http://sylvestre.ledru.info/bordel/patch/0004-Update-gcc-tests-with-warning-return-type-enabled-by.patch
http://sylvestre.ledru.info/bordel/patch/0005-Update-C-tests-with-warning-return-type-enabled-by-d.patch
http://sylvestre.ledru.info/bordel/patch/0006-Update-OpenMP-tests-with-warning-return-type-enabled.patch

Thanks,
Sylvestre

[-- Attachment #2: 0001-Enable-warning-return-type-by-default.patch --]
[-- Type: text/x-patch, Size: 995 bytes --]

gcc/c-family/ChangeLog:

2014-06-04  Sylvestre Ledru  <sylvestre@debian.org>

	* c.opt: -Wreturn-type enabled by default

From 650edb9943ba8b2afb4995e70f671d8fdc26e10a Mon Sep 17 00:00:00 2001
From: Sylvestre Ledru <sylvestre@debian.org>
Date: Wed, 4 Jun 2014 13:33:40 +0200
Subject: [PATCH 1/6] Enable warning return-type by default

---
 gcc/c-family/c.opt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 5d36a80..8e78a9d 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -686,7 +686,7 @@ C ObjC C++ ObjC++ Var(warn_return_local_addr) Init(1) Warning
 Warn about returning a pointer/reference to a local or temporary variable.
 
 Wreturn-type
-C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+C ObjC C++ ObjC++ Var(warn_return_type) Init(1) Warning
 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
 
 Wselector
-- 
2.0.0


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-04 19:49 [Patch] PR55189 enable -Wreturn-type by default Sylvestre Ledru
@ 2014-06-04 22:35 ` Mike Stump
  2014-06-04 23:31 ` Joseph S. Myers
  1 sibling, 0 replies; 29+ messages in thread
From: Mike Stump @ 2014-06-04 22:35 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: Jason Merrill, gcc-patches

On Jun 4, 2014, at 12:49 PM, Sylvestre Ledru <sylvestre@debian.org> wrote:
> Finally, I have been able to update all tests with -Wreturn-type enabled
> by default.

> Now, I would like to know if I can commit that into the repository. Who
> can review that?

I’d like a C style person to review gcc.dg/Wreturn-type2.c, just to ensure they think it is reasonable, and a Fortran person to spot check, but other than that the test suite patches look good.

I will note that adding:

+/* { dg-options "-Wno-return-type" } */

to some parts of the test suite will change the options used to compile:

# If a testcase doesn't have special options, use these.                                          
global DEFAULT_CXXFLAGS
if ![info exists DEFAULT_CXXFLAGS] then {
    set DEFAULT_CXXFLAGS " -pedantic-errors -Wno-long-long”
}

In theory, this could matter.  I was going to not worry about this problem, and let people fault the additional options in as necessary.

Also, any time there are target options, it is easy to miss adding the flag to the other dg-options lines and have them by caught by your test suite runs, but I checked and you seemed to have correctly edited them, though I only spot checked.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-04 19:49 [Patch] PR55189 enable -Wreturn-type by default Sylvestre Ledru
  2014-06-04 22:35 ` Mike Stump
@ 2014-06-04 23:31 ` Joseph S. Myers
  2014-06-05  9:33   ` Sylvestre Ledru
  1 sibling, 1 reply; 29+ messages in thread
From: Joseph S. Myers @ 2014-06-04 23:31 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: Jason Merrill, gcc-patches

On Wed, 4 Jun 2014, Sylvestre Ledru wrote:

> Hello,
> 
> Finally, I have been able to update all tests with -Wreturn-type enabled
> by default. AFAIK, under GNU/Linux Debian Jessie 64 bits, there is no
> PASS->FAIL tests.
> 
> Now, I would like to know if I can commit that into the repository. Who
> can review that?
> 
> As attachment, you will find the actual (tiny) patch.
> 
> I split the tests update by languages. As they are big ( 1260 files
> changed, 1638 insertions(+), 903 deletions(-) ), I uploaded the patches
> on my server:

Some of those patches appear to be addressing cases where control appears 
to reach the end of a function returning non-void, as opposed to cases 
where the return type defaults to int.  As I said in 
<https://gcc.gnu.org/ml/gcc/2014-01/msg00207.html>, I don't think that 
warning is appropriate to enable by default as it catches perfectly valid 
C90 / C99 code that avoids using extensions to annotate noreturn 
functions.

(I *do* think it's appropriate to enable by default the warning about 
return type defaulting to int - more generally, to enable -Wimplicit-int 
-Wimplicit-function-declaration - and the -Wreturn-type warning about a 
return statement without a value in a function returning non-void also 
seems appropriate to enable by default.  Warning about the absence of any 
return statement in a function returning non-void is probably also a 
reasonable default warning from the -Wreturn-type set; it's specifically 
the flow-based warnings that can give false positives in the absence of 
noreturn annotations that I'm dubious about enabling by default.)

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-04 23:31 ` Joseph S. Myers
@ 2014-06-05  9:33   ` Sylvestre Ledru
  2014-06-05 18:01     ` Joseph S. Myers
  0 siblings, 1 reply; 29+ messages in thread
From: Sylvestre Ledru @ 2014-06-05  9:33 UTC (permalink / raw)
  To: gcc-patches, Jason Merrill

On 05/06/2014 01:31, Joseph S. Myers wrote:
> On Wed, 4 Jun 2014, Sylvestre Ledru wrote:
> 
>> Hello,
>>
>> Finally, I have been able to update all tests with -Wreturn-type enabled
>> by default. AFAIK, under GNU/Linux Debian Jessie 64 bits, there is no
>> PASS->FAIL tests.
>>
>> Now, I would like to know if I can commit that into the repository. Who
>> can review that?
>>
>> As attachment, you will find the actual (tiny) patch.
>>
>> I split the tests update by languages. As they are big ( 1260 files
>> changed, 1638 insertions(+), 903 deletions(-) ), I uploaded the patches
>> on my server:
> 
> Some of those patches appear to be addressing cases where control appears 
> to reach the end of a function returning non-void, as opposed to cases 
> where the return type defaults to int. 
Do you have an example of the patches you are talking about?

> As I said in
> <https://gcc.gnu.org/ml/gcc/2014-01/msg00207.html>, I don't think that 
> warning is appropriate to enable by default as it catches perfectly valid 
> C90 / C99 code that avoids using extensions to annotate noreturn 
> functions.
I can try to implement that but I don't know where to start. Any clue?

> (I *do* think it's appropriate to enable by default the warning about 
> return type defaulting to int - more generally, to enable -Wimplicit-int 
> -Wimplicit-function-declaration - and the -Wreturn-type warning about a 
> return statement without a value in a function returning non-void also 
> seems appropriate to enable by default.  
I can try to enable them too by default. It seems my patches are
covering most of the tests updates.

> Warning about the absence of any
> return statement in a function returning non-void is probably also a 
> reasonable default warning from the -Wreturn-type set; it's specifically 
> the flow-based warnings that can give false positives in the absence of 
> noreturn annotations that I'm dubious about enabling by default.)

You are talking about code like this one (from Jonathan Wakely) ?

int f(int c)
{
    if (c)
       return 0;
    function_that_never_returns();
}

Initially, I implemented -Wmissing-return to manage this case (
https://gcc.gnu.org/ml/gcc-patches/2014-01/msg00820.html ) but Jason
suggested to remove that:
https://gcc.gnu.org/ml/gcc-patches/2014-01/msg01033.html
(I don't have a strong opinion on the subject).

Sylvestre

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-05  9:33   ` Sylvestre Ledru
@ 2014-06-05 18:01     ` Joseph S. Myers
  2014-06-17 16:52       ` Sylvestre Ledru
  0 siblings, 1 reply; 29+ messages in thread
From: Joseph S. Myers @ 2014-06-05 18:01 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: gcc-patches, Jason Merrill

On Thu, 5 Jun 2014, Sylvestre Ledru wrote:

> > Some of those patches appear to be addressing cases where control appears 
> > to reach the end of a function returning non-void, as opposed to cases 
> > where the return type defaults to int. 
> Do you have an example of the patches you are talking about?

In 0004-Update-gcc-tests-with-warning-return-type-enabled-by.patch the 
very first change is adding such a "return 0;" (as are lots of others).

> You are talking about code like this one (from Jonathan Wakely) ?
> 
> int f(int c)
> {
>     if (c)
>        return 0;
>     function_that_never_returns();
> }

Yes.

> Initially, I implemented -Wmissing-return to manage this case (
> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg00820.html ) but Jason
> suggested to remove that:
> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg01033.html
> (I don't have a strong opinion on the subject).

I think splitting the option like that makes sense.  Compatibility 
indicates that -Wreturn-type and -Wall should still enable 
-Wmissing-return, but only the other pieces of -Wreturn-type should be 
enabled by default, at least for C.  (Enabling -Wimplicit-int by default 
might be a good starting point.)

Also, at least one testsuite change in your patch is wrong.  You add an 
"int" return type to c90-impl-int-1.c, which is explicitly checking the 
implicit int functionality for C90; use of dg-warning there would be more 
appropriate (since the point is that it doesn't give an error with 
-pedantic-errors).  It would probably also be best not to add 
-Wno-return-type in c99-impl-int-1.c.  (Any places where /* { dg-bogus 
"warning" "warning in place of error" } */ in tests causes problems 
because you get a new warning *in addition* to the existing error can have 
that dg-bogus removed and a dg-warning directive for the warning added - 
dg-warning/dg-error used not to distinguish properly between warnings and 
errors, so requiring such dg-bogus directives if you wanted to test the 
difference, but that was fixed a long time ago.)

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-05 18:01     ` Joseph S. Myers
@ 2014-06-17 16:52       ` Sylvestre Ledru
  2014-06-17 17:15         ` Joseph S. Myers
  0 siblings, 1 reply; 29+ messages in thread
From: Sylvestre Ledru @ 2014-06-17 16:52 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches, Jason Merrill

[-- Attachment #1: Type: text/plain, Size: 873 bytes --]

On 05/06/2014 20:01, Joseph S. Myers wrote:
>
>> Initially, I implemented -Wmissing-return to manage this case (
>> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg00820.html ) but Jason
>> suggested to remove that:
>> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg01033.html
>> (I don't have a strong opinion on the subject).
> I think splitting the option like that makes sense.  Compatibility 
> indicates that -Wreturn-type and -Wall should still enable 
> -Wmissing-return, but only the other pieces of -Wreturn-type should be 
> enabled by default, at least for C.  (Enabling -Wimplicit-int by default 
> might be a good starting point.)
OK.
As attachment, you will find a potential implementation. Is that what
you expect?

> Also, at least one testsuite change in your patch is wrong. 
OK. Thanks. I've probably made other (I update +1300 of them)

Thanks
Sylvestre


[-- Attachment #2: 0002-Enable-Wimplicit-by-default.patch --]
[-- Type: text/x-patch, Size: 757 bytes --]

From 1b936c618c58dc0e899fa9f56013de48f7e4dcd6 Mon Sep 17 00:00:00 2001
From: Sylvestre Ledru <sylvestre@debian.org>
Date: Tue, 17 Jun 2014 18:48:29 +0200
Subject: [PATCH 2/2] Enable Wimplicit by default

---
 gcc/c-family/c.opt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 050d400..9b9ede7 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -460,7 +460,7 @@ C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C
 Warn about implicit function declarations
 
 Wimplicit-int
-C ObjC Var(warn_implicit_int) Warning LangEnabledBy(C ObjC,Wimplicit)
+C ObjC Var(warn_implicit_int) Warning
 Warn when a declaration does not specify a type
 
 Wimport
-- 
2.0.0


[-- Attachment #3: 0001-Introduce-Wmissing-return-Was-part-of-Wreturn-type-w.patch --]
[-- Type: text/x-patch, Size: 4029 bytes --]

From 80cd3dff34f74058ab66b69e0e01a05eaf686338 Mon Sep 17 00:00:00 2001
From: Sylvestre Ledru <sylvestre@debian.org>
Date: Tue, 17 Jun 2014 18:48:12 +0200
Subject: [PATCH 1/2] Introduce -Wmissing-return (Was part of -Wreturn-type
 which is now enabled by default)

---
 gcc/c-family/c.opt    |  4 ++++
 gcc/doc/invoke.texi   | 10 +++++++++-
 gcc/fortran/options.c |  4 ++++
 gcc/tree-cfg.c        |  4 ++--
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 91f8275..050d400 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -697,6 +697,10 @@ Wreturn-type
 C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
 Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)
 
+Wmissing-return
+C ObjC C++ ObjC++ Var(warn_missing_return) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+Warn whenever control may reach end of non-void function
+
 Wselector
 ObjC ObjC++ Var(warn_selector) Warning
 Warn if a selector has multiple methods
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 9a34f1c..9911e86 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -258,7 +258,7 @@ Objective-C and Objective-C++ Dialects}.
 -Winvalid-pch -Wlarger-than=@var{len}  -Wunsafe-loop-optimizations @gol
 -Wlogical-op -Wlogical-not-parentheses -Wlong-long @gol
 -Wmain -Wmaybe-uninitialized -Wmissing-braces  -Wmissing-field-initializers @gol
--Wmissing-include-dirs @gol
+-Wmissing-include-dirs -Wmissing-return @gol
 -Wno-multichar  -Wnonnull  -Wno-overflow -Wopenmp-simd @gol
 -Woverlength-strings  -Wpacked  -Wpacked-bitfield-compat  -Wpadded @gol
 -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
@@ -3327,6 +3327,7 @@ Options} and @ref{Objective-C and Objective-C++ Dialect Options}.
 -Wmain @r{(only for C/ObjC and unless} @option{-ffreestanding}@r{)}  @gol
 -Wmaybe-uninitialized @gol
 -Wmissing-braces @r{(only for C/ObjC)} @gol
+-Wmissing-return @gol
 -Wnonnull  @gol
 -Wopenmp-simd @gol
 -Wparentheses  @gol
@@ -3657,6 +3658,13 @@ the following example, the initializer for @samp{a} is not fully
 bracketed, but that for @samp{b} is fully bracketed.  This warning is
 enabled by @option{-Wall} in C.
 
+@item -Wmissing-return
+@opindex Wmissing-return
+@opindex Wno-missing-return
+Warn whenever falling off the end of the function body (I.e. without
+any return).
+This warning is enabled by @option{-Wall} for C and C++.
+
 @smallexample
 int a[2][2] = @{ 0, 1, 2, 3 @};
 int b[2][2] = @{ @{ 0, 1 @}, @{ 2, 3 @} @};
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index a2b91ca..fe71230 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -698,6 +698,10 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       gfc_option.warn_line_truncation = value;
       break;
 
+    case OPT_Wmissing_return:
+      warn_missing_return = value;
+      break;
+
     case OPT_Wrealloc_lhs:
       gfc_option.warn_realloc_lhs = value;
       break;
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index e824619..2fd342e 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -8265,7 +8265,7 @@ pass_warn_function_return::execute (function *fun)
 
   /* If we see "return;" in some basic block, then we do reach the end
      without returning a value.  */
-  else if (warn_return_type
+  else if (warn_missing_return
 	   && !TREE_NO_WARNING (fun->decl)
 	   && EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (fun)->preds) > 0
 	   && !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fun->decl))))
@@ -8280,7 +8280,7 @@ pass_warn_function_return::execute (function *fun)
 	      location = gimple_location (last);
 	      if (location == UNKNOWN_LOCATION)
 		location = fun->function_end_locus;
-	      warning_at (location, OPT_Wreturn_type, "control reaches end of non-void function");
+	      warning_at (location, OPT_Wmissing_return, "control reaches end of non-void function");
 	      TREE_NO_WARNING (fun->decl) = 1;
 	      break;
 	    }
-- 
2.0.0


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-17 16:52       ` Sylvestre Ledru
@ 2014-06-17 17:15         ` Joseph S. Myers
  2014-06-17 17:37           ` Sylvestre Ledru
  0 siblings, 1 reply; 29+ messages in thread
From: Joseph S. Myers @ 2014-06-17 17:15 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: gcc-patches, Jason Merrill

On Tue, 17 Jun 2014, Sylvestre Ledru wrote:

> On 05/06/2014 20:01, Joseph S. Myers wrote:
> >
> >> Initially, I implemented -Wmissing-return to manage this case (
> >> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg00820.html ) but Jason
> >> suggested to remove that:
> >> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg01033.html
> >> (I don't have a strong opinion on the subject).
> > I think splitting the option like that makes sense.  Compatibility 
> > indicates that -Wreturn-type and -Wall should still enable 
> > -Wmissing-return, but only the other pieces of -Wreturn-type should be 
> > enabled by default, at least for C.  (Enabling -Wimplicit-int by default 
> > might be a good starting point.)
> OK.
> As attachment, you will find a potential implementation. Is that what
> you expect?

It would help a lot if it included testcases for what various options / 
option combinations do / do not enable.  I expect that each option 
continues to enable the warnings it does at present (so if a user 
explicitly does -Wreturn-type it also enables the -Wmissing-return 
warnings, for example) - but some warnings would start to be enabled by 
default.  If someone does e.g. -Wno-implicit that would disable the 
default -Wimplicit-int; if they do -Wno-implicit -Wimplicit that would 
have the same effect as just -Wimplicit (so keeping the default warnings 
enabled, and possibly enabling others).

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-17 17:15         ` Joseph S. Myers
@ 2014-06-17 17:37           ` Sylvestre Ledru
  2014-06-17 17:41             ` Joseph S. Myers
  0 siblings, 1 reply; 29+ messages in thread
From: Sylvestre Ledru @ 2014-06-17 17:37 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches, Jason Merrill

On 17/06/2014 19:15, Joseph S. Myers wrote:
> On Tue, 17 Jun 2014, Sylvestre Ledru wrote:
>
>> On 05/06/2014 20:01, Joseph S. Myers wrote:
>>>> Initially, I implemented -Wmissing-return to manage this case (
>>>> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg00820.html ) but Jason
>>>> suggested to remove that:
>>>> https://gcc.gnu.org/ml/gcc-patches/2014-01/msg01033.html
>>>> (I don't have a strong opinion on the subject).
>>> I think splitting the option like that makes sense.  Compatibility 
>>> indicates that -Wreturn-type and -Wall should still enable 
>>> -Wmissing-return, but only the other pieces of -Wreturn-type should be 
>>> enabled by default, at least for C.  (Enabling -Wimplicit-int by default 
>>> might be a good starting point.)
>> OK.
>> As attachment, you will find a potential implementation. Is that what
>> you expect?
> It would help a lot if it included testcases for what various options / 
> option combinations do / do not enable.  
OK. I will do that.
We should test the following:
* default => run just -Wreturn-type
* -Wreturn-type => Run both
* -Wreturn-type + -Wmissing-return => Run both
* -Wno-return-type + -Wmissing-return => Run just the second one
* -Wno-return-type + -Wno-missing-return => Run none
Do you see any other?
> I expect that each option 
> continues to enable the warnings it does at present (so if a user 
> explicitly does -Wreturn-type it also enables the -Wmissing-return 
> warnings, for example) - but some warnings would start to be enabled by 
> default.  If someone does e.g. -Wno-implicit that would disable the 
> default -Wimplicit-int; if they do -Wno-implicit -Wimplicit that would 
> have the same effect as just -Wimplicit (so keeping the default warnings 
> enabled, and possibly enabling others).
>
OK. I will try to implement that later (I don't think -Wimplicit-int is
necessary to enable -Wreturn-type by default).
Besides that, are you OK with my changes? (with the tests updated)

Thanks,
Sylvestre

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-17 17:37           ` Sylvestre Ledru
@ 2014-06-17 17:41             ` Joseph S. Myers
  2014-07-07 17:18               ` Sylvestre Ledru
  0 siblings, 1 reply; 29+ messages in thread
From: Joseph S. Myers @ 2014-06-17 17:41 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: gcc-patches, Jason Merrill

On Tue, 17 Jun 2014, Sylvestre Ledru wrote:

> OK. I will do that.
> We should test the following:
> * default => run just -Wreturn-type
> * -Wreturn-type => Run both
> * -Wreturn-type + -Wmissing-return => Run both
> * -Wno-return-type + -Wmissing-return => Run just the second one
> * -Wno-return-type + -Wno-missing-return => Run none
> Do you see any other?

That looks like the right things to test, if there are no changes for 
anything other than those options.

> Besides that, are you OK with my changes? (with the tests updated)

The tests are key to reviewing whether the code changes actually do the 
right thing.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-06-17 17:41             ` Joseph S. Myers
@ 2014-07-07 17:18               ` Sylvestre Ledru
  2014-07-20 19:20                 ` Sylvestre Ledru
  2014-07-30 22:10                 ` Joseph S. Myers
  0 siblings, 2 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-07-07 17:18 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches, Jason Merrill

Hello,

On 17/06/2014 19:41, Joseph S. Myers wrote:
> On Tue, 17 Jun 2014, Sylvestre Ledru wrote:
> 
>> OK. I will do that.
>> We should test the following:
>> * default => run just -Wreturn-type
>> * -Wreturn-type => Run both
>> * -Wreturn-type + -Wmissing-return => Run both
>> * -Wno-return-type + -Wmissing-return => Run just the second one
>> * -Wno-return-type + -Wno-missing-return => Run none
>> Do you see any other?
> 
> That looks like the right things to test, if there are no changes for 
> anything other than those options.
Here it is:
https://github.com/sylvestre/gcc/commit/db8aaac91aa09fd1ec1cc8974586aec45a221e71

Is that what you expected?

>> Besides that, are you OK with my changes? (with the tests updated)
> 
> The tests are key to reviewing whether the code changes actually do the 
> right thing.
Right.

Thanks again for your help and comments, it is really appreciated,
Sylvestre

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-07-07 17:18               ` Sylvestre Ledru
@ 2014-07-20 19:20                 ` Sylvestre Ledru
  2014-07-30 22:10                 ` Joseph S. Myers
  1 sibling, 0 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-07-20 19:20 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches, Jason Merrill

Joseph, ping :)

(I know you were in holidays)

S

On 07/07/2014 19:17, Sylvestre Ledru wrote:
> Hello,
>
> On 17/06/2014 19:41, Joseph S. Myers wrote:
>> On Tue, 17 Jun 2014, Sylvestre Ledru wrote:
>>
>>> OK. I will do that.
>>> We should test the following:
>>> * default => run just -Wreturn-type
>>> * -Wreturn-type => Run both
>>> * -Wreturn-type + -Wmissing-return => Run both
>>> * -Wno-return-type + -Wmissing-return => Run just the second one
>>> * -Wno-return-type + -Wno-missing-return => Run none
>>> Do you see any other?
>> That looks like the right things to test, if there are no changes for 
>> anything other than those options.
> Here it is:
> https://github.com/sylvestre/gcc/commit/db8aaac91aa09fd1ec1cc8974586aec45a221e71
>
> Is that what you expected?
>
>>> Besides that, are you OK with my changes? (with the tests updated)
>> The tests are key to reviewing whether the code changes actually do the 
>> right thing.
> Right.
>
> Thanks again for your help and comments, it is really appreciated,
> Sylvestre
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-07-07 17:18               ` Sylvestre Ledru
  2014-07-20 19:20                 ` Sylvestre Ledru
@ 2014-07-30 22:10                 ` Joseph S. Myers
  2014-08-11  7:44                   ` Sylvestre Ledru
  1 sibling, 1 reply; 29+ messages in thread
From: Joseph S. Myers @ 2014-07-30 22:10 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: gcc-patches, Jason Merrill

On Mon, 7 Jul 2014, Sylvestre Ledru wrote:

> Hello,
> 
> On 17/06/2014 19:41, Joseph S. Myers wrote:
> > On Tue, 17 Jun 2014, Sylvestre Ledru wrote:
> > 
> >> OK. I will do that.
> >> We should test the following:
> >> * default => run just -Wreturn-type
> >> * -Wreturn-type => Run both
> >> * -Wreturn-type + -Wmissing-return => Run both
> >> * -Wno-return-type + -Wmissing-return => Run just the second one
> >> * -Wno-return-type + -Wno-missing-return => Run none
> >> Do you see any other?
> > 
> > That looks like the right things to test, if there are no changes for 
> > anything other than those options.
> Here it is:
> https://github.com/sylvestre/gcc/commit/db8aaac91aa09fd1ec1cc8974586aec45a221e71
> 
> Is that what you expected?

The test Wmissing-return2.c only has one of the two warnings.  But as per 
"-Wreturn-type => Run both", and for backwards compatibility with the 
existing definition of -Wreturn-type, both warnings should appear for this 
test.  (It's simply that only a subset of -Wreturn-type seems suitable to 
enable by default for C.  Maybe the default subset, -Wreturn-type 
-Wno-missing-return (which is a combination that should also be included 
in the testcases), should have its own option name, although I don't know 
what that would be.)

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-07-30 22:10                 ` Joseph S. Myers
@ 2014-08-11  7:44                   ` Sylvestre Ledru
  2014-08-12 17:49                     ` Joseph S. Myers
  0 siblings, 1 reply; 29+ messages in thread
From: Sylvestre Ledru @ 2014-08-11  7:44 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches, Jason Merrill

On 31/07/2014 00:08, Joseph S. Myers wrote:
> On Mon, 7 Jul 2014, Sylvestre Ledru wrote:
>
>> Hello,
>>
>> On 17/06/2014 19:41, Joseph S. Myers wrote:
>>> On Tue, 17 Jun 2014, Sylvestre Ledru wrote:
>>>
>>>> OK. I will do that.
>>>> We should test the following:
>>>> * default => run just -Wreturn-type
>>>> * -Wreturn-type => Run both
>>>> * -Wreturn-type + -Wmissing-return => Run both
>>>> * -Wno-return-type + -Wmissing-return => Run just the second one
>>>> * -Wno-return-type + -Wno-missing-return => Run none
>>>> Do you see any other?
>>> That looks like the right things to test, if there are no changes for 
>>> anything other than those options.
>> Here it is:
>> https://github.com/sylvestre/gcc/commit/db8aaac91aa09fd1ec1cc8974586aec45a221e71
>>
>> Is that what you expected?
> The test Wmissing-return2.c only has one of the two warnings.  But as per 
> "-Wreturn-type => Run both", and for backwards compatibility with the 
> existing definition of -Wreturn-type, both warnings should appear for this 
> test.  
Make sense. Thanks for the feedback and the help.
Here it is:
https://github.com/sylvestre/gcc/commit/089ffc9fb85034111b892ee10190dc12b5dbe551

> (It's simply that only a subset of -Wreturn-type seems suitable to 
> enable by default for C.  Maybe the default subset, -Wreturn-type 
> -Wno-missing-return (which is a combination that should also be included 
> in the testcases), should have its own option name, although I don't know 
> what that would be.)
>
What about implementing that in an further commit?
I have touched more than 1200 test files and I would like to see that
merged soon to avoid more conflicts.

By the way, do you prefer a single commit for all tests or one per
directory (gfortran, C++, gcc, OpenMP) ?

Thanks
Sylvestre

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-11  7:44                   ` Sylvestre Ledru
@ 2014-08-12 17:49                     ` Joseph S. Myers
  2014-08-12 17:53                       ` Sylvestre Ledru
  2014-08-14 17:01                       ` Sylvestre Ledru
  0 siblings, 2 replies; 29+ messages in thread
From: Joseph S. Myers @ 2014-08-12 17:49 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: gcc-patches, Jason Merrill

On Mon, 11 Aug 2014, Sylvestre Ledru wrote:

> > The test Wmissing-return2.c only has one of the two warnings.  But as per 
> > "-Wreturn-type => Run both", and for backwards compatibility with the 
> > existing definition of -Wreturn-type, both warnings should appear for this 
> > test.  
> Make sense. Thanks for the feedback and the help.
> Here it is:
> https://github.com/sylvestre/gcc/commit/089ffc9fb85034111b892ee10190dc12b5dbe551

Yes, those tests seem as I expect.

> By the way, do you prefer a single commit for all tests or one per
> directory (gfortran, C++, gcc, OpenMP) ?

Each commit needs to avoid causing regressions.  Thus, if a change to 
compiler behavior would cause an existing test to fail, the change to the 
test needs to be in the same commit as the change of behavior - or in a 
previous commit if the changed test works both with and without the 
compiler change.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-12 17:49                     ` Joseph S. Myers
@ 2014-08-12 17:53                       ` Sylvestre Ledru
  2014-08-14 17:01                       ` Sylvestre Ledru
  1 sibling, 0 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-08-12 17:53 UTC (permalink / raw)
  To: gcc-patches; +Cc: joseph, jason@redhat.com >> Jason Merrill

On 12/08/2014 19:48, Joseph S. Myers wrote:
> On Mon, 11 Aug 2014, Sylvestre Ledru wrote:
>
>>> The test Wmissing-return2.c only has one of the two warnings.  But as per 
>>> "-Wreturn-type => Run both", and for backwards compatibility with the 
>>> existing definition of -Wreturn-type, both warnings should appear for this 
>>> test.  
>> Make sense. Thanks for the feedback and the help.
>> Here it is:
>> https://github.com/sylvestre/gcc/commit/089ffc9fb85034111b892ee10190dc12b5dbe551
> Yes, those tests seem as I expect.
Thanks!
>> By the way, do you prefer a single commit for all tests or one per
>> directory (gfortran, C++, gcc, OpenMP) ?
> Each commit needs to avoid causing regressions.  Thus, if a change to 
> compiler behavior would cause an existing test to fail, the change to the 
> test needs to be in the same commit as the change of behavior - or in a 
> previous commit if the changed test works both with and without the 
> compiler change.
>
Since -Wreturn & -Wmissing-return are tied, I will have to commit
everything at once.

I am going to send the patch asap (after an update + build + tests to
make sure new tests pass).

Sylvestre


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-12 17:49                     ` Joseph S. Myers
  2014-08-12 17:53                       ` Sylvestre Ledru
@ 2014-08-14 17:01                       ` Sylvestre Ledru
  1 sibling, 0 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-08-14 17:01 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches, Jason Merrill

On 12/08/2014 19:48, Joseph S. Myers wrote:
> On Mon, 11 Aug 2014, Sylvestre Ledru wrote:
>
>>> The test Wmissing-return2.c only has one of the two warnings.  But as per 
>>> "-Wreturn-type => Run both", and for backwards compatibility with the 
>>> existing definition of -Wreturn-type, both warnings should appear for this 
>>> test.  
>> Make sense. Thanks for the feedback and the help.
>> Here it is:
>> https://github.com/sylvestre/gcc/commit/089ffc9fb85034111b892ee10190dc12b5dbe551
> Yes, those tests seem as I expect.
>
So, here is the full commit now.
Since the patch is 600k, I uploaded it here:
http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch
Let me know when I can commit that.

At the end of this mail, I also added the changelog for
Enable -Wimplicit-int by default
Patch:
http://sylvestre.ledru.info/0002-Enable-Wimplicit-int-by-default.patch
Let me know if you prefer a separate mail.

Everything is on github if it helps:
https://github.com/sylvestre/gcc

gcc/c-family/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * c.opt: Enable -Wreturn-type by default
        Add -Wmissing-return:
        Warn whenever control may reach end of non-void function

gcc/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * doc/invoke.texi: Document new flag -Wmissing-return
        Update -Wreturn-type
    * tree-cfg.c (pass_warn_function_return::execute):
        Introduce -Wreturn-type management

gcc/fortran/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * options.c (gfc_handle_option): Manage the new flag -Wmissing-return

libgomp/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * testsuite/libgomp.c++/loop-2.C: Update the test with -Wreturn-type by
        default and -Wmissing-return
    * testsuite/libgomp.c++/loop-4.C: likewise
    * testsuite/libgomp.c++/parallel-1.C: likewise
    * testsuite/libgomp.c++/shared-1.C: likewise
    * testsuite/libgomp.c++/single-1.C: likewise
    * testsuite/libgomp.c++/single-2.C: likewise
    * testsuite/libgomp.c/omp-loop02.c: likewise
    * testsuite/libgomp.c/omp-parallel-for.c: likewise
    * testsuite/libgomp.c/omp-parallel-if.c: likewise
    * testsuite/libgomp.c/omp-single-1.c: likewise
    * testsuite/libgomp.c/omp-single-2.c: likewise
    * testsuite/libgomp.c/omp_matvec.c: likewise
    * testsuite/libgomp.c/omp_workshare3.c: likewise
    * testsuite/libgomp.c/omp_workshare4.c: likewise
    * testsuite/libgomp.c/pr30494.c (check): likewise
    * testsuite/libgomp.c/shared-1.c: likewise

gcc/testsuite/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * gcc.dg/Wmissing-return1.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return2.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return3.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return4.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return5.c: New test which tests the new behavior
    * c-c++-common/asan/no-redundant-instrumentation-2.c (main):
        Update the test with -Wreturn-type by default and -Wmissing-return
    * c-c++-common/cilk-plus/AN/decl-ptr-colon.c (int main): likewise
    * c-c++-common/cilk-plus/AN/parser_errors.c: likewise
    * c-c++-common/cilk-plus/AN/parser_errors2.c: likewise
    * c-c++-common/cilk-plus/AN/parser_errors3.c: likewise
    * c-c++-common/cilk-plus/AN/pr57457-2.c: likewise
    * c-c++-common/cilk-plus/AN/pr57541-2.c (void foo1): likewise
    (void foo2): likewise
    * c-c++-common/cilk-plus/AN/pr57541.c (int foo): likewise
    (int foo1): likewise
    * c-c++-common/cilk-plus/CK/pr60197.c: likewise
    * c-c++-common/cilk-plus/CK/spawn_in_return.c: likewise
    * c-c++-common/convert-vec-1.c: likewise
    * c-c++-common/dfp/call-by-value.c (int foo32): likewise
    (int foo64): likewise
    (int foo128): likewise
    * c-c++-common/pr36513-2.c (int main2): likewise
    * c-c++-common/pr36513.c (int main1): likewise
    * c-c++-common/pr43772.c: likewise
    * c-c++-common/pr49706-2.c (same): likewise
    * c-c++-common/raw-string-3.c: likewise
    * c-c++-common/tm/pr54893.c: likewise
    * c-c++-common/tm/trxn-expr-2.c: likewise
    * c-c++-common/tsan/fd_pipe_race.c: likewise
    * c-c++-common/tsan/tls_race.c: likewise
    * c-c++-common/vector-1.c (int f): likewise
    * c-c++-common/vector-2.c (void f): likewise
    * g++.dg/abi/covariant2.C (struct c3): likewise
    (struct c7): likewise
    * g++.dg/abi/covariant3.C: likewise
    * g++.dg/abi/key2.C (int sub): likewise
    * g++.dg/abi/mangle7.C: likewise
    * g++.dg/bprob/g++-bprob-1.C (call_for): likewise
    * g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc: likewise
    * g++.dg/conversion/op1.C (class C): likewise
    (int fn): likewise
    * g++.dg/conversion/op6.C: likewise
    * g++.dg/cpp0x/access01.C: likewise
    * g++.dg/cpp0x/alias-decl-19.C: likewise
    * g++.dg/cpp0x/auto2.C (struct A): likewise
    * g++.dg/cpp0x/constexpr-defarg2.C: likewise
    * g++.dg/cpp0x/constexpr-memfn1.C: likewise
    * g++.dg/cpp0x/dc1.C (struct D): likewise
    * g++.dg/cpp0x/dc3.C: likewise
    * g++.dg/cpp0x/decltype12.C: likewise
    * g++.dg/cpp0x/decltype17.C (decltype): likewise
    * g++.dg/cpp0x/decltype3.C: likewise
    * g++.dg/cpp0x/decltype41.C (struct C): likewise
    * g++.dg/cpp0x/defaulted28.C: likewise
    * g++.dg/cpp0x/gen-attrs-4.C (five): likewise
    * g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C: likewise
    * g++.dg/cpp0x/lambda/lambda-defarg3.C: likewise
    * g++.dg/cpp0x/lambda/lambda-field-names.C: likewise
    * g++.dg/cpp0x/lambda/lambda-ice3.C (bool Klass: likewise:
likewisedostuff): likewise
    * g++.dg/cpp0x/lambda/lambda-ice5.C (template int foo): likewise
    * g++.dg/cpp0x/lambda/lambda-nested2.C (void f1): likewise
    * g++.dg/cpp0x/lambda/lambda-template.C: likewise
    * g++.dg/cpp0x/lambda/lambda-template12.C (class X): likewise
    * g++.dg/cpp0x/lambda/lambda-template2.C (struct T): likewise
    * g++.dg/cpp0x/lambda/lambda-this12.C: likewise
    * g++.dg/cpp0x/noexcept16.C: likewise
    * g++.dg/cpp0x/nolinkage1.C: likewise
    * g++.dg/cpp0x/nolinkage1a.cc: likewise
    * g++.dg/cpp0x/nsdmi-template5.C: likewise
    * g++.dg/cpp0x/parse1.C: likewise
    * g++.dg/cpp0x/pr34054.C: likewise
    * g++.dg/cpp0x/pr38795.C: likewise
    * g++.dg/cpp0x/pr47416.C: likewise
    * g++.dg/cpp0x/pr58781.C (f): likewise
    * g++.dg/cpp0x/range-for13.C (template int *begin): likewise
    (template int *end): likewise
    * g++.dg/cpp0x/range-for14.C: likewise
    * g++.dg/cpp0x/range-for6.C: likewise
    * g++.dg/cpp0x/rv-trivial-bug.C (int test2): likewise
    * g++.dg/cpp0x/rv2n.C: likewise
    * g++.dg/cpp0x/rv3n.C: likewise
    * g++.dg/cpp0x/static_assert10.C (template bool foo): likewise
    * g++.dg/cpp0x/static_assert11.C: likewise
    * g++.dg/cpp0x/trailing1.C (auto f): likewise
    * g++.dg/cpp0x/trailing5.C: likewise
    * g++.dg/cpp0x/udlit-template.C (test1): likewise
    * g++.dg/cpp0x/variadic-throw.C: likewise
    * g++.dg/cpp0x/variadic114.C: likewise
    * g++.dg/cpp0x/variadic57.C: likewise
    * g++.dg/cpp0x/variadic65.C: likewise
    * g++.dg/cpp0x/variadic66.C: likewise
    * g++.dg/cpp0x/variadic77.C: likewise
    * g++.dg/cpp0x/variadic97.C: likewise
    * g++.dg/cpp0x/variadic98.C: likewise
    * g++.dg/cpp0x/vt-35023.C: likewise
    * g++.dg/cpp0x/vt-35024.C: likewise
    * g++.dg/cpp1y/lambda-init7.C: likewise
    * g++.dg/debug/dwarf-eh-personality-1.C (int foobar): likewise
    * g++.dg/debug/dwarf2/dwarf4-typedef.C: likewise
    * g++.dg/debug/dwarf2/icf.C (test2): likewise
    * g++.dg/debug/dwarf2/pr61433.C: likewise
    * g++.dg/debug/pr16792.C: likewise
    * g++.dg/debug/pr46241.C: likewise
    * g++.dg/debug/pr46338.C (struct S): likewise
    * g++.dg/debug/pr47106.C (baz): likewise
    (bar): likewise
    (foo): likewise
    * g++.dg/debug/pr53466.C: likewise
    * g++.dg/dfp/44473-1.C: likewise
    * g++.dg/dfp/44473-2.C: likewise
    * g++.dg/eh/builtin1.C: likewise
    * g++.dg/eh/builtin2.C: likewise
    * g++.dg/eh/builtin3.C: likewise
    * g++.dg/eh/pr45569.C (float j): likewise
    * g++.dg/eh/sighandle.C: likewise
    * g++.dg/eh/unwind2.C: likewise
    * g++.dg/expr/bitfield11.C: likewise
    * g++.dg/expr/cond12.C: likewise
    * g++.dg/expr/cond2.C: likewise
    * g++.dg/expr/static_cast7.C: likewise
    * g++.dg/ext/builtin-object-size3.C: likewise
    * g++.dg/ext/has_nothrow_assign_odr.C: likewise
    * g++.dg/ext/java-1.C: likewise
    * g++.dg/ext/label7.C: likewise
    * g++.dg/ext/label8.C: likewise
    * g++.dg/ext/tmplattr7.C: likewise
    * g++.dg/ext/vector14.C: likewise
    * g++.dg/ext/vector8.C: likewise
    * g++.dg/ext/visibility/anon1.C: likewise
    * g++.dg/ext/visibility/anon2.C: likewise
    * g++.dg/ext/visibility/namespace1.C (namespace foo __attribute):
likewise
    * g++.dg/gcov/gcov-1.C: likewise
    * g++.dg/gomp/block-8.C: likewise
    * g++.dg/gomp/declare-simd-1.C: likewise
    * g++.dg/gomp/pr37189.C: likewise
    * g++.dg/gomp/pr39495-1.C: likewise
    * g++.dg/gomp/pr39495-2.C: likewise
    * g++.dg/gomp/pr41429.C: likewise
    * g++.dg/graphite/pr41305.C: likewise
    * g++.dg/graphite/pr41562.C (int Siren7_EncodeFrame): likewise
    * g++.dg/graphite/pr42930.C: likewise
    * g++.dg/inherit/covariant10.C: likewise
    * g++.dg/inherit/covariant11.C: likewise
    * g++.dg/inherit/crash4.C: likewise
    * g++.dg/inherit/virtual2.C: likewise
    * g++.dg/inherit/virtual3.C: likewise
    * g++.dg/init/const4.C (bool foo): likewise
    * g++.dg/init/ctor8.C: likewise
    * g++.dg/init/inline1.C: likewise
    * g++.dg/init/new18.C: likewise
    * g++.dg/init/new37.C: likewise
    * g++.dg/init/ref8.C: likewise
    * g++.dg/init/reference2.C: likewise
    * g++.dg/init/reference3.C: likewise
    * g++.dg/init/switch1.C: likewise
    * g++.dg/ipa/devirt-10.C (struct wxDCBase): likewise
    * g++.dg/ipa/devirt-13.C: likewise
    * g++.dg/ipa/devirt-14.C: likewise
    * g++.dg/ipa/devirt-15.C: likewise
    * g++.dg/ipa/devirt-16.C: likewise
    * g++.dg/ipa/devirt-17.C: likewise
    * g++.dg/ipa/devirt-18.C: likewise
    * g++.dg/ipa/devirt-19.C: likewise
    * g++.dg/ipa/devirt-21.C: likewise
    * g++.dg/ipa/devirt-23.C: likewise
    * g++.dg/ipa/devirt-34.C (t): likewise
    * g++.dg/ipa/pr43812.C: likewise
    * g++.dg/ipa/pr44372.C: likewise
    * g++.dg/ipa/pr45572-1.C: likewise
    * g++.dg/ipa/pr58371.C: likewise
    * g++.dg/ipa/pr59176.C: likewise
    * g++.dg/ipa/pr60640-1.C (class ASN1Object): likewise
    * g++.dg/ipa/pr61540.C: likewise
    * g++.dg/ipa/remref-1.C: likewise
    * g++.dg/ipa/remref-2.C: likewise
    * g++.dg/lookup/builtin2.C: likewise
    * g++.dg/lookup/conv-1.C: likewise
    * g++.dg/lookup/crash3.C (int crash): likewise
    * g++.dg/lookup/hidden-class15.C: likewise
    * g++.dg/lookup/hidden-class16.C: likewise
    * g++.dg/lookup/hidden-var1.C (struct Outer): likewise
    * g++.dg/lookup/scoped8.C: likewise
    * g++.dg/lookup/struct2.C: likewise
    * g++.dg/lookup/suggestions1.C: likewise
    * g++.dg/lto/20080907_0.C: likewise
    * g++.dg/lto/20080915_0.C: likewise
    * g++.dg/lto/20080916_0.C: likewise
    * g++.dg/lto/20100603-1_1.c: likewise
    * g++.dg/lto/20101010-1_0.C: likewise
    * g++.dg/lto/20101010-2_0.C: likewise
    * g++.dg/lto/pr54625-1_0.c (void speex_resampler_init_frac): likewise
    * g++.dg/lto/pr54625-2_0.c (double update_filter): likewise
    * g++.dg/opt/combine.C: likewise
    * g++.dg/opt/complex3.C: likewise
    * g++.dg/opt/const3.C: likewise
    * g++.dg/opt/covariant1.C: likewise
    * g++.dg/opt/dump1.C: likewise
    * g++.dg/opt/inline15.C: likewise
    * g++.dg/opt/local1.C: likewise
    * g++.dg/opt/memcpy1.C: likewise
    * g++.dg/opt/new1.C: likewise
    * g++.dg/opt/nrv8.C: likewise
    * g++.dg/opt/pr23299.C (E: likewise: likewisec): likewise
    * g++.dg/opt/pr27826.C (struct Geometry): likewise
    * g++.dg/opt/pr44919.C: likewise
    * g++.dg/opt/pr46640.C (struct QBasicAtomicInt): likewise
    (bool makeDir): likewise
    * g++.dg/opt/pr47615.C: likewise
    * g++.dg/opt/pr55329.C: likewise
    * g++.dg/opt/pr61456.C (static int Set): likewise
    * g++.dg/other/array3.C (bool reserve): likewise
    * g++.dg/other/assign1.C: likewise
    * g++.dg/other/copy2.C: likewise
    * g++.dg/other/crash-5.C: likewise
    * g++.dg/other/crash-8.C: likewise
    * g++.dg/other/error34.C: likewise
    * g++.dg/other/i386-8.C: likewise
    * g++.dg/other/pr22003.C (struct c1): likewise
    * g++.dg/other/pr24623.C (class ReferenceCounted): likewise
    * g++.dg/other/pr29610.C (struct __normal_iterator): likewise
    * g++.dg/other/pr42645-1.C: likewise
    * g++.dg/other/pr42645-2.C (f3): likewise
    * g++.dg/other/pr52048.C: likewise
    * g++.dg/other/ptrmem11.C: likewise
    * g++.dg/other/typedef3.C (struct XalanCProcessor): likewise
    * g++.dg/overload/addr1.C: likewise
    * g++.dg/overload/copy1.C: likewise
    * g++.dg/overload/defarg4.C (class foo): likewise
    * g++.dg/overload/operator5.C: likewise
    * g++.dg/overload/ref-conv1.C: likewise
    * g++.dg/overload/template5.C (int test): likewise
    * g++.dg/parse/crash37.C: likewise
    * g++.dg/parse/crash40.C: likewise
    * g++.dg/parse/crash61.C: likewise
    * g++.dg/parse/ctor5.C: likewise
    * g++.dg/parse/defarg4.C: likewise
    * g++.dg/parse/defarg6.C: likewise
    * g++.dg/parse/error41.C: likewise
    * g++.dg/parse/error42.C: likewise
    * g++.dg/parse/error43.C: likewise
    * g++.dg/parse/error44.C: likewise
    * g++.dg/parse/error5.C: likewise
    * g++.dg/parse/error6.C: likewise
    * g++.dg/parse/expr2.C: likewise
    * g++.dg/parse/friend7.C: likewise
    * g++.dg/parse/limits-initializer1.C: likewise
    * g++.dg/parse/namespace1.C: likewise
    * g++.dg/parse/namespace9.C (int g): likewise
    * g++.dg/parse/non-dependent2.C: likewise
    * g++.dg/parse/ret-type2.C: likewise
    * g++.dg/parse/typedef8.C: likewise
    * g++.dg/pch/static-1.C (int LocalStaticTest): likewise
    * g++.dg/plugin/dumb-plugin-test-1.C (int func): likewise
    * g++.dg/plugin/self-assign-test-1.C: likewise
    * g++.dg/plugin/self-assign-test-2.C: likewise
    * g++.dg/plugin/self-assign-test-3.C: likewise
    * g++.dg/pr45330.C: likewise
    * g++.dg/pr45788.C: likewise
    * g++.dg/pr48484.C: likewise
    * g++.dg/pr49847.C: likewise
    * g++.dg/pr55513.C: likewise
    * g++.dg/pr55604.C: likewise
    * g++.dg/pr57662.C: likewise
    * g++.dg/pr58389.C: likewise
    * g++.dg/pr58438.C (static int fn1): likewise
    * g++.dg/pr59445.C: likewise
    * g++.dg/pr59510.C: likewise
    * g++.dg/tc1/dr152.C: likewise
    * g++.dg/template/aggr-init1.C: likewise
    * g++.dg/template/anon1.C: likewise
    * g++.dg/template/array7.C (int bar): likewise
    * g++.dg/template/canon-type-8.C: likewise
    * g++.dg/template/conv1.C: likewise
    * g++.dg/template/crash107.C: likewise
    * g++.dg/template/crash23.C: likewise
    * g++.dg/template/crash72.C: likewise
    * g++.dg/template/crash8.C: likewise
    * g++.dg/template/defarg4.C: likewise
    * g++.dg/template/error10.C: likewise
    * g++.dg/template/friend32.C: likewise
    * g++.dg/template/init6.C: likewise
    * g++.dg/template/instantiate3.C: likewise
    * g++.dg/template/local6.C: likewise
    * g++.dg/template/memfriend7.C: likewise
    * g++.dg/template/new10.C: likewise
    * g++.dg/template/nontype12.C: likewise
    * g++.dg/template/overload12.C: likewise
    * g++.dg/template/overload5.C: likewise
    * g++.dg/template/overload8.C: likewise
    * g++.dg/template/partial10.C: likewise
    * g++.dg/template/partial9.C: likewise
    * g++.dg/template/qual1.C: likewise
    * g++.dg/template/recurse.C: likewise
    * g++.dg/template/sizeof8.C: likewise
    * g++.dg/template/sizeof9.C: likewise
    * g++.dg/template/spec22.C: likewise
    * g++.dg/template/spec23.C (struct Foo): likewise
    * g++.dg/template/spec6.C: likewise
    * g++.dg/template/spec7.C (int h): likewise
    * g++.dg/template/typedef8.C: likewise
    * g++.dg/template/using20.C: likewise
    * g++.dg/template/vla1.C (static int label): likewise
    * g++.dg/tls/thread_local3.C: likewise
    * g++.dg/tls/thread_local3g.C: likewise
    * g++.dg/tls/thread_local5.C: likewise
    * g++.dg/tls/thread_local5g.C: likewise
    * g++.dg/tls/thread_local6.C: likewise
    * g++.dg/tls/thread_local6g.C: likewise
    * g++.dg/tm/cgraph_edge.C: likewise
    * g++.dg/tm/pr46646.C: likewise
    * g++.dg/tm/pr47554.C (class list): likewise
    * g++.dg/tm/pr47573.C (int getStringHeight): likewise
    * g++.dg/tm/pr58635-2.C: likewise
    * g++.dg/tm/pr60004.C: likewise
    * g++.dg/torture/20070621-1.C: likewise
    * g++.dg/torture/20090329-1.C: likewise
    * g++.dg/torture/pr33134.C: likewise
    * g++.dg/torture/pr33340.C: likewise
    * g++.dg/torture/pr33627.C: likewise
    * g++.dg/torture/pr34222.C: likewise
    * g++.dg/torture/pr34241.C (inline void *operator  new): likewise
    * g++.dg/torture/pr34641.C: likewise
    * g++.dg/torture/pr34850.C: likewise
    * g++.dg/torture/pr35164-1.C: likewise
    * g++.dg/torture/pr36745.C: likewise
    * g++.dg/torture/pr38705.C (S: likewise: likewisebar): likewise
    * g++.dg/torture/pr38811.C: likewise
    * g++.dg/torture/pr39362.C: likewise
    * g++.dg/torture/pr39732.C: likewise
    * g++.dg/torture/pr41775.C: likewise
    * g++.dg/torture/pr42183.C: likewise
    * g++.dg/torture/pr42450.C: likewise
    * g++.dg/torture/pr42704.C: likewise
    * g++.dg/torture/pr42760.C: likewise
    * g++.dg/torture/pr42773.C: likewise
    * g++.dg/torture/pr42883.C: likewise
    * g++.dg/torture/pr43257.C: likewise
    * g++.dg/torture/pr43905.C: likewise
    * g++.dg/torture/pr44148.C: likewise
    * g++.dg/torture/pr44295.C: likewise
    * g++.dg/torture/pr44357.C: likewise
    * g++.dg/torture/pr44813.C: likewise
    * g++.dg/torture/pr45580.C: likewise
    * g++.dg/torture/pr45874.C: likewise
    * g++.dg/torture/pr45877.C (namespace std __attribute__): likewise
    * g++.dg/torture/pr46383.C: likewise
    * g++.dg/torture/pr46469.C (int identifierByPthreadHandle): likewise
    * g++.dg/torture/pr47313.C: likewise
    * g++.dg/torture/pr48271.C: likewise
    * g++.dg/torture/pr49615.C: likewise
    * g++.dg/torture/pr49628.C: likewise
    * g++.dg/torture/pr49938.C: likewise
    * g++.dg/torture/pr51436.C: likewise
    * g++.dg/torture/pr51482.C: likewise
    * g++.dg/torture/pr51737.C: likewise
    * g++.dg/torture/pr51959.C: likewise
    * g++.dg/torture/pr52772.C: likewise
    * g++.dg/torture/pr52918-2.C: likewise
    * g++.dg/torture/pr53011.C: likewise
    * g++.dg/torture/pr53752.C: likewise
    * g++.dg/torture/pr54684.C: likewise
    * g++.dg/torture/pr54838.C (struct bidirectional_iterator_tag): likewise
    * g++.dg/torture/pr54902.C: likewise
    * g++.dg/torture/pr55740.C (bool IsValidPath): likewise
    * g++.dg/torture/pr56029.C: likewise
    * g++.dg/torture/pr56694.C: likewise
    * g++.dg/torture/pr57107.C: likewise
    * g++.dg/torture/pr57140.C: likewise
    * g++.dg/torture/pr57235.C: likewise
    * g++.dg/torture/pr58252.C: likewise
    * g++.dg/torture/pr58369.C: likewise
    * g++.dg/torture/pr58555.C: likewise
    * g++.dg/torture/pr59208.C: likewise
    * g++.dg/torture/pr60438-1.C: likewise
    * g++.dg/torture/pr60438-2.C: likewise
    * g++.dg/torture/pr60648.C (enum component): likewise
    * g++.dg/torture/pr60746.C (Two: likewise: likewiserun): likewise
    * g++.dg/torture/predcom-1.C (bool Baz): likewise
    * g++.dg/tree-ssa/copyprop.C: likewise
    * g++.dg/tree-ssa/pr22444.C: likewise
    * g++.dg/tree-ssa/pr23948.C (int make_scheduler_request): likewise
    * g++.dg/tree-ssa/pr24172.C (inline int* dummy): likewise
    * g++.dg/tree-ssa/pr24351-3.C: likewise
    * g++.dg/tree-ssa/pr27283.C: likewise
    * g++.dg/tree-ssa/pr27291.C: likewise
    * g++.dg/tree-ssa/pr27548.C: likewise
    * g++.dg/tree-ssa/pr33604.C (struct Value): likewise
    * g++.dg/tree-ssa/pr34355.C (double Parse_Float): likewise
    * g++.dg/tree-ssa/pr42337.C: likewise
    * g++.dg/vect/pr60836.cc: likewise
    * g++.dg/warn/Wconversion-null-2.C (int warn_for___null): likewise
    * g++.dg/warn/Wnull-conversion-2.C: likewise
    * g++.dg/warn/Wparentheses-10.C: likewise
    * g++.dg/warn/Wparentheses-11.C: likewise
    * g++.dg/warn/Wparentheses-12.C: likewise
    * g++.dg/warn/Wparentheses-25.C: likewise
    * g++.dg/warn/Wparentheses-6.C: likewise
    * g++.dg/warn/Wparentheses-7.C: likewise
    * g++.dg/warn/Wparentheses-8.C: likewise
    * g++.dg/warn/Wparentheses-9.C: likewise
    * g++.dg/warn/Wshadow-5.C: likewise
    * g++.dg/warn/Wtype-limits-Wextra.C: likewise
    * g++.dg/warn/Wtype-limits-no.C: likewise
    * g++.dg/warn/Wtype-limits.C: likewise
    * g++.dg/warn/Wunused-local-typedefs.C: likewise
    * g++.dg/warn/Wzero-as-null-pointer-constant-5.C (struct foo): likewise
    * g++.dg/warn/pmf1.C (a: likewise: likewisef): likewise
    * g++.dg/warn/string1.C: likewise
    * g++.old-deja/g++.benjamin/p13417.C: likewise
    * g++.old-deja/g++.brendan/crash24.C: likewise
    * g++.old-deja/g++.brendan/scope1.C: likewise
    * g++.old-deja/g++.eh/catch13.C: likewise
    * g++.old-deja/g++.eh/crash1.C: likewise
    * g++.old-deja/g++.ext/arrnew.C: likewise
    * g++.old-deja/g++.ext/constructor.C: likewise
    * g++.old-deja/g++.ext/namedret1.C: likewise
    * g++.old-deja/g++.ext/namedret2.C: likewise
    * g++.old-deja/g++.ext/namedret3.C: likewise
    * g++.old-deja/g++.ext/return1.C: likewise
    * g++.old-deja/g++.jason/anon4.C: likewise
    * g++.old-deja/g++.jason/enum6.C: likewise
    * g++.old-deja/g++.jason/lineno2.C: likewise
    * g++.old-deja/g++.jason/lineno3.C: likewise
    * g++.old-deja/g++.jason/lineno4.C: likewise
    * g++.old-deja/g++.jason/member.C (struct Y): likewise
    * g++.old-deja/g++.jason/new2.C: likewise
    * g++.old-deja/g++.jason/new4.C: likewise
    * g++.old-deja/g++.jason/report.C: likewise
    * g++.old-deja/g++.jason/shadow1.C: likewise
    * g++.old-deja/g++.jason/tempcons.C: likewise
    * g++.old-deja/g++.jason/thunk2.C: likewise
    * g++.old-deja/g++.law/builtin1.C: likewise
    * g++.old-deja/g++.law/enum9.C: likewise
    * g++.old-deja/g++.law/except3.C: likewise
    * g++.old-deja/g++.law/init6.C: likewise
    * g++.old-deja/g++.law/profile1.C: likewise
    * g++.old-deja/g++.law/shadow2.C: likewise
    * g++.old-deja/g++.law/temps4.C: likewise
    * g++.old-deja/g++.law/typeck1.C: likewise
    * g++.old-deja/g++.law/visibility13.C: likewise
    * g++.old-deja/g++.law/weak.C: likewise
    * g++.old-deja/g++.mike/bool2.C: likewise
    * g++.old-deja/g++.mike/eh1.C: likewise
    * g++.old-deja/g++.mike/eh10.C: likewise
    * g++.old-deja/g++.mike/eh13.C: likewise
    * g++.old-deja/g++.mike/eh16.C: likewise
    * g++.old-deja/g++.mike/eh17.C: likewise
    * g++.old-deja/g++.mike/eh2.C: likewise
    * g++.old-deja/g++.mike/eh23.C: likewise
    * g++.old-deja/g++.mike/eh24.C: likewise
    * g++.old-deja/g++.mike/eh25.C: likewise
    * g++.old-deja/g++.mike/eh26.C: likewise
    * g++.old-deja/g++.mike/eh27.C: likewise
    * g++.old-deja/g++.mike/eh28.C: likewise
    * g++.old-deja/g++.mike/eh29.C: likewise
    * g++.old-deja/g++.mike/eh30.C: likewise
    * g++.old-deja/g++.mike/eh31.C: likewise
    * g++.old-deja/g++.mike/eh35.C: likewise
    * g++.old-deja/g++.mike/eh36.C: likewise
    * g++.old-deja/g++.mike/eh37.C: likewise
    * g++.old-deja/g++.mike/eh38.C: likewise
    * g++.old-deja/g++.mike/eh39.C: likewise
    * g++.old-deja/g++.mike/eh40.C: likewise
    * g++.old-deja/g++.mike/eh47.C: likewise
    * g++.old-deja/g++.mike/eh50.C: likewise
    * g++.old-deja/g++.mike/eh51.C: likewise
    * g++.old-deja/g++.mike/eh7.C: likewise
    * g++.old-deja/g++.mike/eh8.C: likewise
    * g++.old-deja/g++.mike/eh9.C: likewise
    * g++.old-deja/g++.mike/explicit2.C: likewise
    * g++.old-deja/g++.mike/mangle1.C: likewise
    * g++.old-deja/g++.mike/p11110.C: likewise
    * g++.old-deja/g++.mike/p5958.C: likewise
    * g++.old-deja/g++.mike/p6004.C: likewise
    * g++.old-deja/g++.mike/p700.C: likewise
    * g++.old-deja/g++.mike/p7912.C: likewise
    * g++.old-deja/g++.mike/p811.C: likewise
    * g++.old-deja/g++.mike/p9732c.C: likewise
    * g++.old-deja/g++.mike/virt4.C: likewise
    * g++.old-deja/g++.oliva/nameret1.C: likewise
    * g++.old-deja/g++.oliva/nameret2.C: likewise
    * g++.old-deja/g++.other/builtins5.C: likewise
    * g++.old-deja/g++.other/decl1.C: likewise
    * g++.old-deja/g++.other/expr1.C: likewise
    * g++.old-deja/g++.other/inline8.C: likewise
    * g++.old-deja/g++.other/loop1.C: likewise
    * g++.old-deja/g++.other/return1.C: likewise
    * g++.old-deja/g++.other/syntax1.C: likewise
    * g++.old-deja/g++.pt/call2.C: likewise
    * g++.old-deja/g++.pt/crash36.C: likewise
    * g++.old-deja/g++.pt/overload14.C: likewise
    * g++.old-deja/g++.pt/repo3.C: likewise
    * g++.old-deja/g++.pt/t24.C: likewise
    * g++.old-deja/g++.pt/ttp10.C: likewise
    * g++.old-deja/g++.robertl/eb22.C: likewise
    * g++.old-deja/g++.robertl/eb27.C: likewise
    * g++.old-deja/g++.robertl/eb83.C: likewise
    * gcc.c-torture/compile/20090721-1.c: likewise
    * gcc.c-torture/compile/pr25483.c (decode_init): likewise
    * gcc.c-torture/compile/pr44686.c (memcpy): likewise
    * gcc.c-torture/compile/pr56571.c: likewise
    * gcc.c-torture/compile/pr60655-1.c (short mp_compare): likewise
    (int upton_modmult): likewise
    * gcc.dg/20001012-1.c: likewise
    * gcc.dg/20001012-2.c: likewise
    * gcc.dg/20001108-1.c: likewise
    * gcc.dg/20010516-1.c (void foo): likewise
    * gcc.dg/20011008-2.c: likewise
    * gcc.dg/20020201-1.c: likewise
    * gcc.dg/20020415-1.c: likewise
    * gcc.dg/20020607-2.c (void test1): likewise
    (void test1f): likewise
    (void test2): likewise
    (void test2f): likewise
    * gcc.dg/20030331-2.c: likewise
    * gcc.dg/20030612-1.c: likewise
    * gcc.dg/20040219-1.c: likewise
    * gcc.dg/20040622-2.c: likewise
    * gcc.dg/20040920-1.c: likewise
    * gcc.dg/20041213-1.c: likewise
    * gcc.dg/20050603-2.c: likewise
    * gcc.dg/20051201-1.c: likewise
    * gcc.dg/20061026.c: likewise
    * gcc.dg/990506-0.c (void x): likewise
    * gcc.dg/Wcxx-compat-8.c (struct s1): likewise
    * gcc.dg/Wjump-misses-init-1.c (f1): likewise
    * gcc.dg/Wno-pointer-sign.c: likewise
    * gcc.dg/Wparentheses-1.c: likewise
    * gcc.dg/Wparentheses-10.c: likewise
    * gcc.dg/Wparentheses-11.c: likewise
    * gcc.dg/Wparentheses-2.c: likewise
    * gcc.dg/Wparentheses-3.c: likewise
    * gcc.dg/Wparentheses-4.c: likewise
    * gcc.dg/Wparentheses-5.c: likewise
    * gcc.dg/Wparentheses-6.c: likewise
    * gcc.dg/Wparentheses-7.c: likewise
    * gcc.dg/Wparentheses-8.c: likewise
    * gcc.dg/Wparentheses-9.c: likewise
    * gcc.dg/Wreturn-type2.c: likewise
    * gcc.dg/anon-struct-13.c: likewise
    * gcc.dg/anon-struct-14.c: likewise
    * gcc.dg/asm-4.c: likewise
    * gcc.dg/assign-warn-1.c: likewise
    * gcc.dg/assign-warn-2.c: likewise
    * gcc.dg/atomic-invalid.c: likewise
    * gcc.dg/atomic-param.c: likewise
    * gcc.dg/attr-alias-3.c: likewise
    * gcc.dg/attr-externally-visible-1.c: likewise
    * gcc.dg/builtin-bswap-6.c: likewise
    * gcc.dg/builtin-bswap-7.c: likewise
    * gcc.dg/builtins-43.c: likewise
    * gcc.dg/builtins-44.c: likewise
    * gcc.dg/builtins-45.c: likewise
    * gcc.dg/c90-impl-int-1.c: likewise
    * gcc.dg/c90-return-1.c: likewise
    * gcc.dg/c99-impl-int-1.c: likewise
    * gcc.dg/cast-qual-3.c: likewise
    * gcc.dg/charset/asm4.c: likewise
    * gcc.dg/compound-literal-1.c: likewise
    * gcc.dg/conv-2.c: likewise
    * gcc.dg/cpp/_Pragma3.c: likewise
    * gcc.dg/cpp/pragma-1.c: likewise
    * gcc.dg/cpp/pragma-2.c: likewise
    * gcc.dg/ctor1.c: likewise
    * gcc.dg/debug/20020224-1.c: likewise
    * gcc.dg/debug/dwarf2-2.c: likewise
    * gcc.dg/debug/dwarf2-3.c: likewise
    * gcc.dg/debug/dwarf2/dwarf-die1.c (inline int t): likewise
    * gcc.dg/debug/dwarf2/dwarf-die2.c (static inline int t): likewise
    * gcc.dg/debug/dwarf2/dwarf-die3.c (extern inline int t): likewise
    (int t): likewise
    * gcc.dg/debug/dwarf2/dwarf-die5.c (int q): likewise
    * gcc.dg/debug/dwarf2/dwarf-die6.c: likewise
    * gcc.dg/debug/dwarf2/dwarf-die7.c (static int t): likewise
    * gcc.dg/debug/dwarf2/inline1.c: likewise
    * gcc.dg/debug/dwarf2/ipa-cp1.c (void main): likewise
    * gcc.dg/debug/pr26881.c: likewise
    * gcc.dg/debug/pr42767.c (void _bfd_link_section_stabs): likewise
    * gcc.dg/debug/vta-2.c: likewise
    * gcc.dg/decl-6.c (int foo2): likewise
    * gcc.dg/decl-9.c (int f1): likewise
    * gcc.dg/declspec-18.c (int f5): likewise
    * gcc.dg/dfp/keywords-reserved.c: likewise
    * gcc.dg/dll-10a.c: likewise
    * gcc.dg/dll-11a.c: likewise
    * gcc.dg/dll-12a.c: likewise
    * gcc.dg/dll-6a.c: likewise
    * gcc.dg/dll-7a.c: likewise
    * gcc.dg/dll-9a.c: likewise
    * gcc.dg/dse.c: likewise
    * gcc.dg/enum-incomplete-1.c: likewise
    * gcc.dg/fastmath-1.c: likewise
    * gcc.dg/fold-eqandshift-3.c: likewise
    * gcc.dg/fork-instrumentation.c: likewise
    * gcc.dg/format/few-1.c: likewise
    * gcc.dg/funcdef-var-1.c: likewise
    * gcc.dg/funcorder.c: likewise
    * gcc.dg/fwrapv-1.c: likewise
    * gcc.dg/fwrapv-2.c: likewise
    * gcc.dg/gomp/block-8.c: likewise
    * gcc.dg/gomp/combined-1.c: likewise
    * gcc.dg/gomp/complex-1.c: likewise
    * gcc.dg/gomp/empty.c: likewise
    * gcc.dg/gomp/omp-parallel-if.c: likewise
    * gcc.dg/gomp/parallel-4.c: likewise
    * gcc.dg/gomp/pr39495-1.c: likewise
    * gcc.dg/gomp/pr39495-2.c: likewise
    * gcc.dg/gomp/pr48716.c: likewise
    * gcc.dg/gomp/pr57412.c: likewise
    * gcc.dg/gomp/sections-3.c: likewise
    * gcc.dg/gomp/sharing-3.c: likewise
    * gcc.dg/graphite/id-1.c (void lambda_vector_add_mc): likewise
    (void lambda_matrix_add_mc): likewise
    * gcc.dg/graphite/id-2.c (void matmul_c4): likewise
    * gcc.dg/graphite/id-25.c (int writeMotionVector8x8): likewise
    * gcc.dg/graphite/id-26.c (int find_sad_16x16): likewise
    * gcc.dg/graphite/id-3.c (void mmaxloc0_4_i1): likewise
    * gcc.dg/graphite/id-4.c (void g): likewise
    * gcc.dg/graphite/id-8.c: likewise
    * gcc.dg/graphite/id-pr43351.c: likewise
    * gcc.dg/graphite/id-pr43464.c (void Perl_re_intuit_start): likewise
    (void Perl_regexec_flags): likewise
    (int S_regtry): likewise
    * gcc.dg/graphite/id-pr45230-1.c: likewise
    * gcc.dg/graphite/id-pr45230.c: likewise
    * gcc.dg/graphite/interchange-4.c: likewise
    * gcc.dg/graphite/pr20041110-1.c: likewise
    * gcc.dg/graphite/pr37684.c: likewise
    * gcc.dg/graphite/pr37928.c (int gate1): likewise
    * gcc.dg/graphite/pr37943.c: likewise
    * gcc.dg/graphite/pr38073.c (int test_seg): likewise
    * gcc.dg/graphite/pr38125.c (void Perl_av_fill): likewise
    * gcc.dg/graphite/pr38409.c (int Chv_copyEntriesToVector): likewise
    * gcc.dg/graphite/pr38510.c (int pymol_rg_): likewise
    * gcc.dg/graphite/pr38559.c: likewise
    * gcc.dg/graphite/pr38786.c (void dummy_slice_too_big): likewise
    * gcc.dg/graphite/pr39260.c (void VBR_encode_frame): likewise
    * gcc.dg/graphite/pr39335.c (int devn_unpack_row): likewise
    * gcc.dg/graphite/pr42284.c (huft_build): likewise
    (inflate_fixed): likewise
    * gcc.dg/graphite/pr42914.c: likewise
    * gcc.dg/graphite/pr43083.c (static inline int bar): likewise
    * gcc.dg/graphite/pr46185.c: likewise
    * gcc.dg/graphite/pr46404-1.c: likewise
    * gcc.dg/graphite/run-id-5.c: likewise
    * gcc.dg/graphite/run-id-6.c: likewise
    * gcc.dg/graphite/scop-16.c: likewise
    * gcc.dg/graphite/scop-17.c: likewise
    * gcc.dg/graphite/scop-19.c (int d_growable_string_resize): likewise
    (void d_growable_string_append_buffer): likewise
    * gcc.dg/guality/vla-2.c: likewise
    * gcc.dg/inline-33.c: likewise
    * gcc.dg/ipa/inline-4.c: likewise
    * gcc.dg/ipa/inline-6.c (static void t): likewise
    * gcc.dg/ipa/inlinehint-1.c (void test): likewise
    (void m): likewise
    * gcc.dg/ipa/inlinehint-2.c (void t): likewise
    * gcc.dg/ipa/inlinehint-3.c (scc_next): likewise
    * gcc.dg/ipa/ipa-1.c: likewise
    * gcc.dg/ipa/ipa-2.c: likewise
    * gcc.dg/ipa/ipa-3.c (static int f): likewise
    * gcc.dg/ipa/ipa-4.c: likewise
    * gcc.dg/ipa/ipa-5.c: likewise
    * gcc.dg/ipa/ipa-6.c: likewise
    * gcc.dg/ipa/ipa-7.c: likewise
    * gcc.dg/ipa/ipa-8.c (static int g): likewise
    * gcc.dg/ipa/ipacost-1.c (i_can_be_propagated_fully): likewise
    (i_can_be_propagated_fully2): likewise
    (i_can_not_be_propagated_fully): likewise
    (i_can_not_be_propagated_fully2): likewise
    * gcc.dg/ipa/ipacost-2.c: likewise
    * gcc.dg/ipa/ipcp-1.c: likewise
    * gcc.dg/ipa/ipcp-2.c (bah): likewise
    * gcc.dg/ipa/ipcp-4.c (h): likewise
    (g1): likewise
    (g2): likewise
    * gcc.dg/ipa/noclone-1.c (__attribute__): likewise
    * gcc.dg/ipa/pr57539.c (cmpitem): likewise
    (distX): likewise
    (intersectY0): likewise
    (intersectY): likewise
    (mkNConstraintG): likewise
    (mkConstraintG): likewise
    * gcc.dg/ipa/pr58106.c (replace_label): likewise
    (for_each_rtx_1): likewise
    * gcc.dg/ipa/pure-const-1.c (int i_am_const3): likewise
    (void explode_badly): likewise
    (int i_am_pure4): likewise
    * gcc.dg/large-size-array-3.c: likewise
    * gcc.dg/large-size-array.c: likewise
    * gcc.dg/loop-3.c (modlookup): likewise
    * gcc.dg/lto/20080924_0.c: likewise
    * gcc.dg/lto/20081115_0.c: likewise
    * gcc.dg/lto/20081118_0.c: likewise
    * gcc.dg/lto/20081120-1_0.c: likewise
    * gcc.dg/lto/20081120-1_1.c: likewise
    * gcc.dg/lto/20081201-1_0.c: likewise
    * gcc.dg/lto/20090213_0.c: likewise
    * gcc.dg/lto/20090218-2_1.c: likewise
    * gcc.dg/lto/20090312_0.c: likewise
    * gcc.dg/lto/20090706-2_0.c: likewise
    * gcc.dg/lto/20090914-2_0.c: likewise
    * gcc.dg/lto/20091020-3_0.c (void * C_alloca): likewise
    * gcc.dg/lto/20100103-1_0.c: likewise
    * gcc.dg/lto/20100423-2_0.c (int fill_inbuf): likewise
    * gcc.dg/lto/20100423-2_1.c (int get_method): likewise
    * gcc.dg/lto/20100426_0.c: likewise
    * gcc.dg/lto/attr-weakref-1_0.c: likewise
    * gcc.dg/lto/attr-weakref-1_1.c (void b): likewise
    * gcc.dg/lto/attr-weakref-1_2.c (void c): likewise
    * gcc.dg/lto/ipareference2_0.c: likewise
    * gcc.dg/lto/ipareference2_1.c: likewise
    * gcc.dg/lto/ipareference_0.c: likewise
    * gcc.dg/lto/ipareference_1.c (int set_val): likewise
    (int get_val): likewise
    (void do_nothing): likewise
    * gcc.dg/lto/materialize-1_0.c (inline int inline_me): likewise
    * gcc.dg/lto/materialize-1_1.c: likewise
    * gcc.dg/lto/pr34989-1_0.c (int syslogd_main): likewise
    * gcc.dg/lto/pr34989-1_1.c: likewise
    * gcc.dg/lto/pr47924_0.c: likewise
    * gcc.dg/lto/pr48622_0.c: likewise
    * gcc.dg/lto/pr51572-1_0.c: likewise
    * gcc.dg/lto/pr52634_0.c: likewise
    * gcc.dg/lto/pr52634_1.c: likewise
    * gcc.dg/lto/pr53470_0.c: likewise
    * gcc.dg/lto/pr55703_0.c: likewise
    * gcc.dg/lto/resolutions_0.c (int link_error): likewise
    * gcc.dg/lto/trans-mem-3_0.c: likewise
    * gcc.dg/lto/trans-mem-3_1.c: likewise
    * gcc.dg/memmove-1.c: likewise
    * gcc.dg/nofixed-point-2.c: likewise
    * gcc.dg/non-local-goto-1.c (static void foo): likewise
    (static void bar): likewise
    * gcc.dg/non-local-goto-2.c: likewise
    * gcc.dg/noncompile/20040203-1.c: likewise
    * gcc.dg/noncompile/20040203-2.c: likewise
    * gcc.dg/noncompile/20040203-3.c: likewise
    * gcc.dg/noncompile/920616-2.c: likewise
    * gcc.dg/noncompile/920923-1.c: likewise
    * gcc.dg/noncompile/930301-1.c: likewise
    * gcc.dg/noncompile/930622-1.c: likewise
    * gcc.dg/noncompile/930622-2.c: likewise
    * gcc.dg/noncompile/931203-1.c: likewise
    * gcc.dg/noncompile/950825-1.c: likewise
    * gcc.dg/noncompile/incomplete-3.c: likewise
    * gcc.dg/noncompile/invalid_asm.c (void asm_invalid_register_name):
likewise
    * gcc.dg/noncompile/pr35447-1.c: likewise
    * gcc.dg/noncompile/scope.c: likewise
    * gcc.dg/noncompile/va-arg-1.c: likewise
    * gcc.dg/noreturn-7.c (int k): likewise
    * gcc.dg/noreturn-8.c (detect_noreturn): likewise
    * gcc.dg/packed-vla.c: likewise
    * gcc.dg/parser-pr28152-2.c: likewise
    * gcc.dg/parser-pr28152.c: likewise
    * gcc.dg/pch/inline-3.c (unsigned bar): likewise
    * gcc.dg/plugin/self-assign-test-1.c: likewise
    * gcc.dg/plugin/self-assign-test-2.c: likewise
    * gcc.dg/pr15443-1.c: likewise
    * gcc.dg/pr15698-1.c: likewise
    * gcc.dg/pr15698-4.c: likewise
    * gcc.dg/pr15698-5.c: likewise
    * gcc.dg/pr15698-8.c: likewise
    * gcc.dg/pr17301-1.c (write_format): likewise
    * gcc.dg/pr17319.c (int try_combine): likewise
    * gcc.dg/pr18596-1.c (int m): likewise
    * gcc.dg/pr18596-2.c: likewise
    * gcc.dg/pr19633.c: likewise
    * gcc.dg/pr20100.c (func_loop): likewise
    * gcc.dg/pr20368-1.c: likewise
    * gcc.dg/pr20368-2.c: likewise
    * gcc.dg/pr20368-3.c: likewise
    * gcc.dg/pr20672-1.c: likewise
    * gcc.dg/pr23075.c: likewise
    * gcc.dg/pr23470-1.c: likewise
    * gcc.dg/pr24561.c (static int debug_hook): likewise
    * gcc.dg/pr25795-1.c: likewise
    * gcc.dg/pr25795.c: likewise
    * gcc.dg/pr26004.c (void wack_struct_3): likewise
    * gcc.dg/pr27150-1.c: likewise
    * gcc.dg/pr27531-1.c: likewise
    * gcc.dg/pr27861-1.c (void do_dror): likewise
    * gcc.dg/pr28121.c: likewise
    * gcc.dg/pr28574.c: likewise
    * gcc.dg/pr28888.c (void Allocate__WriteStats): likewise
    * gcc.dg/pr28935.c (int extend_options): likewise
    * gcc.dg/pr29254.c (list_compare): likewise
    * gcc.dg/pr29299.c: likewise
    * gcc.dg/pr29467.c: likewise
    * gcc.dg/pr30904.c: likewise
    * gcc.dg/pr31490.c: likewise
    * gcc.dg/pr31507-2.c: likewise
    * gcc.dg/pr31529-1.c (int getline): likewise
    * gcc.dg/pr31529-2.c (void getline): likewise
    * gcc.dg/pr32135.c (ParsePhase): likewise
    * gcc.dg/pr32721.c: likewise
    * gcc.dg/pr33670.c: likewise
    * gcc.dg/pr33692.c (int pcm_shm_cmd): likewise
    * gcc.dg/pr33923.c (int brl_readCommand): likewise
    * gcc.dg/pr34263.c: likewise
    * gcc.dg/pr34457-1.c: likewise
    * gcc.dg/pr35065.c: likewise
    * gcc.dg/pr36194.c: likewise
    * gcc.dg/pr36997.c: likewise
    * gcc.dg/pr41783.c: likewise
    * gcc.dg/pr42245-2.c (strictly_smaller_name): likewise
    * gcc.dg/pr42246.c (Quiesce): likewise
    * gcc.dg/pr42249.c: likewise
    * gcc.dg/pr42389.c (try_route): likewise
    * gcc.dg/pr43564.c (unsigned __clz): likewise
    * gcc.dg/pr44545.c (DrawChunk): likewise
    * gcc.dg/pr44699.c: likewise
    * gcc.dg/pr45107.c: likewise
    * gcc.dg/pr45415.c: likewise
    * gcc.dg/pr46217.c: likewise
    * gcc.dg/pr46878-1.c (get_ice): likewise
    * gcc.dg/pr47443.c: likewise
    * gcc.dg/pr47763.c: likewise
    * gcc.dg/pr47899.c: likewise
    * gcc.dg/pr48235.c (GetRotatedTileFromOffset): likewise
    (GetHangarNum): likewise
    * gcc.dg/pr49000.c: likewise
    * gcc.dg/pr49705.c (check_image_width): likewise
    * gcc.dg/pr49994-2.c: likewise
    * gcc.dg/pr50908-2.c: likewise
    * gcc.dg/pr51321.c: likewise
    * gcc.dg/pr52549.c (void _mark): likewise
    (void __extension__ _mark): likewise
    * gcc.dg/pr52808.c: likewise
    * gcc.dg/pr55150-1.c: likewise
    * gcc.dg/pr56992.c: likewise
    * gcc.dg/pr59827.c: likewise
    * gcc.dg/pr59940.c (y): likewise
    * gcc.dg/pr60647-1.c (struct _wincore): likewise
    * gcc.dg/pragma-align.c: likewise
    * gcc.dg/pragma-diag-1.c: likewise
    * gcc.dg/pragma-re-3.c: likewise
    * gcc.dg/readonly-loc.c: likewise
    * gcc.dg/return-type-1.c: likewise
    * gcc.dg/return-type-3.c: likewise
    * gcc.dg/simulate-thread/atomic-load-int.c: likewise
    * gcc.dg/simulate-thread/atomic-load-int128.c: likewise
    * gcc.dg/simulate-thread/atomic-load-longlong.c: likewise
    * gcc.dg/simulate-thread/atomic-load-short.c: likewise
    * gcc.dg/simulate-thread/atomic-other-int.c: likewise
    * gcc.dg/sms-3.c: likewise
    * gcc.dg/spill-1.c: likewise
    * gcc.dg/switch-2.c: likewise
    * gcc.dg/tls/asm-1.c: likewise
    * gcc.dg/tls/opt-10.c: likewise
    * gcc.dg/tls/pr45870.c: likewise
    * gcc.dg/tm/20091013.c: likewise
    * gcc.dg/tm/20091221.c: likewise
    * gcc.dg/tm/debug-1.c: likewise
    * gcc.dg/tm/irrevocable-1.c: likewise
    * gcc.dg/tm/irrevocable-2.c: likewise
    * gcc.dg/tm/irrevocable-3.c: likewise
    * gcc.dg/tm/irrevocable-4.c: likewise
    * gcc.dg/tm/irrevocable-7.c: likewise
    * gcc.dg/tm/memopt-1.c: likewise
    * gcc.dg/tm/pr47520.c: likewise
    * gcc.dg/tm/pr47905.c: likewise
    * gcc.dg/tm/pr52173-1.c: likewise
    * gcc.dg/tm/props-1.c: likewise
    * gcc.dg/tm/props-2.c: likewise
    * gcc.dg/tm/props-3.c: likewise
    * gcc.dg/torture/pr24626-4.c: likewise
    * gcc.dg/torture/pr25183.c (int error): likewise
    * gcc.dg/torture/pr28814.c (void f9887): likewise
    * gcc.dg/torture/pr28900.c (int synths_): likewise
    * gcc.dg/torture/pr31254.c (void afs_inode_map_status): likewise
    * gcc.dg/torture/pr35227.c (int mandel): likewise
    * gcc.dg/torture/pr38948.c (append_simple): likewise
    * gcc.dg/torture/pr44807.c (print_job): likewise
    * gcc.dg/torture/pr45830.c: likewise
    * gcc.dg/torture/pr48822.c: likewise
    * gcc.dg/torture/pr50333.c (ncwrs_urow): likewise
    * gcc.dg/torture/pr50838.c (init_memory): likewise
    * gcc.dg/torture/pr51949.c: likewise
    * gcc.dg/torture/pr52720.c (int check_and_set_bank_swizzle): likewise
    * gcc.dg/torture/pr54409.c: likewise
    * gcc.dg/torture/pr55238.c (gzbuffer): likewise
    * gcc.dg/torture/pr55888.c (uint32_pack): likewise
    * gcc.dg/torture/pr55890-1.c: likewise
    * gcc.dg/torture/pr55890-2.c: likewise
    * gcc.dg/torture/pr56661.c: likewise
    * gcc.dg/torture/pr57036-1.c: likewise
    * gcc.dg/torture/pr57147-3.c: likewise
    * gcc.dg/torture/pr57251.c: likewise
    * gcc.dg/torture/pr57393-2.c: likewise
    * gcc.dg/torture/pr57584.c: likewise
    * gcc.dg/torture/pr59993.c: likewise
    * gcc.dg/torture/stackalign/nested-6.c: likewise
    * gcc.dg/tree-prof/crossmodule-indircall-1.c: likewise
    * gcc.dg/tree-prof/crossmodule-indircall-1a.c: likewise
    * gcc.dg/tree-prof/inliner-1.c: likewise
    * gcc.dg/tree-prof/merge_block.c: likewise
    * gcc.dg/tree-prof/peel-1.c: likewise
    * gcc.dg/tree-prof/stringop-1.c: likewise
    * gcc.dg/tree-prof/stringop-2.c: likewise
    * gcc.dg/tree-prof/unroll-1.c: likewise
    * gcc.dg/tree-prof/update-cunroll-2.c: likewise
    * gcc.dg/tree-prof/val-prof-1.c: likewise
    * gcc.dg/tree-prof/val-prof-2.c: likewise
    * gcc.dg/tree-prof/val-prof-3.c: likewise
    * gcc.dg/tree-prof/val-prof-4.c: likewise
    * gcc.dg/tree-prof/val-prof-5.c: likewise
    * gcc.dg/tree-prof/val-prof-6.c: likewise
    * gcc.dg/tree-prof/wcoverage-mismatch.c (int __attribute__): likewise
    * gcc.dg/tree-ssa/20030611-1.c (int shit): likewise
    * gcc.dg/tree-ssa/20030703-1.c: likewise
    * gcc.dg/tree-ssa/20030703-2.c: likewise
    * gcc.dg/tree-ssa/20030708-1.c (nonlocal_mentioned_p): likewise
    * gcc.dg/tree-ssa/20030709-1.c: likewise
    * gcc.dg/tree-ssa/20030711-2.c: likewise
    * gcc.dg/tree-ssa/20030711-3.c: likewise
    * gcc.dg/tree-ssa/20030714-1.c: likewise
    * gcc.dg/tree-ssa/20030714-2.c: likewise
    * gcc.dg/tree-ssa/20030729-1.c: likewise
    * gcc.dg/tree-ssa/20030731-1.c: likewise
    * gcc.dg/tree-ssa/20030807-11.c: likewise
    * gcc.dg/tree-ssa/20030807-2.c (void oof): likewise
    * gcc.dg/tree-ssa/20030807-3.c: likewise
    * gcc.dg/tree-ssa/20030807-5.c: likewise
    * gcc.dg/tree-ssa/20030807-8.c: likewise
    * gcc.dg/tree-ssa/20030814-1.c (int com): likewise
    * gcc.dg/tree-ssa/20030917-3.c: likewise
    * gcc.dg/tree-ssa/20030918-1.c: likewise
    * gcc.dg/tree-ssa/20030922-1.c: likewise
    * gcc.dg/tree-ssa/20030922-2.c: likewise
    * gcc.dg/tree-ssa/20040121-1.c: likewise
    * gcc.dg/tree-ssa/20040211-1.c (com): likewise
    * gcc.dg/tree-ssa/20040216-1.c: likewise
    * gcc.dg/tree-ssa/20040302-1.c: likewise
    * gcc.dg/tree-ssa/20040319-1.c: likewise
    * gcc.dg/tree-ssa/20040326-1.c: likewise
    * gcc.dg/tree-ssa/20040326-2.c: likewise
    * gcc.dg/tree-ssa/20040408-1.c (static int asctoeg): likewise
    * gcc.dg/tree-ssa/20040729-1.c: likewise
    * gcc.dg/tree-ssa/20041008-1.c (void baz): likewise
    * gcc.dg/tree-ssa/20050719-1.c: likewise
    * gcc.dg/tree-ssa/20070302-1.c (float foo): likewise
    * gcc.dg/tree-ssa/alias-13.c: likewise
    * gcc.dg/tree-ssa/alias-16.c: likewise
    * gcc.dg/tree-ssa/assign-3.c: likewise
    * gcc.dg/tree-ssa/attr-alias-2.c: likewise
    * gcc.dg/tree-ssa/attr-alias.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-1.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-2.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-3.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-4.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-5.c: likewise
    * gcc.dg/tree-ssa/coalesce-1.c: likewise
    * gcc.dg/tree-ssa/col-1.c (m): likewise
    * gcc.dg/tree-ssa/complex-5.c: likewise
    * gcc.dg/tree-ssa/cunroll-1.c: likewise
    * gcc.dg/tree-ssa/cunroll-10.c: likewise
    * gcc.dg/tree-ssa/cunroll-2.c: likewise
    * gcc.dg/tree-ssa/cunroll-3.c: likewise
    * gcc.dg/tree-ssa/cunroll-4.c: likewise
    * gcc.dg/tree-ssa/cunroll-5.c: likewise
    * gcc.dg/tree-ssa/cunroll-9.c: likewise
    * gcc.dg/tree-ssa/foldconst-2.c (void emit_support_tinfos): likewise
    * gcc.dg/tree-ssa/foldconst-3.c (void int_fits_type_p): likewise
    * gcc.dg/tree-ssa/foldconst-4.c: likewise
    * gcc.dg/tree-ssa/foldconst-5.c: likewise
    * gcc.dg/tree-ssa/forwprop-26.c: likewise
    * gcc.dg/tree-ssa/forwprop-28.c (void test_2): likewise
    (void test_3): likewise
    (void test_4): likewise
    (void test_5): likewise
    (void test_6): likewise
    (void test_7): likewise
    (void test_8): likewise
    * gcc.dg/tree-ssa/ifc-4.c (void create_iso_definition): likewise
    * gcc.dg/tree-ssa/ifc-6.c: likewise
    * gcc.dg/tree-ssa/inline-10.c (void do_something): likewise
    * gcc.dg/tree-ssa/inline-11.c: likewise
    * gcc.dg/tree-ssa/inline-5.c (void do_inc): likewise
    * gcc.dg/tree-ssa/inline-6.c: likewise
    * gcc.dg/tree-ssa/inline-9.c: likewise
    * gcc.dg/tree-ssa/ipa-cp-1.c (void blah): likewise
    * gcc.dg/tree-ssa/ipa-split-1.c: likewise
    * gcc.dg/tree-ssa/ipa-split-2.c (void split_me): likewise
    * gcc.dg/tree-ssa/ipa-split-5.c: likewise
    * gcc.dg/tree-ssa/ivopts-1.c: likewise
    * gcc.dg/tree-ssa/ivopts-2.c: likewise
    * gcc.dg/tree-ssa/loadpre8.c (struct tree_common): likewise
    * gcc.dg/tree-ssa/local-pure-const.c: likewise
    * gcc.dg/tree-ssa/loop-20.c: likewise
    * gcc.dg/tree-ssa/loop-37.c: likewise
    * gcc.dg/tree-ssa/loop-38.c: likewise
    * gcc.dg/tree-ssa/nonzero-1.c: likewise
    * gcc.dg/tree-ssa/pr18908.c: likewise
    * gcc.dg/tree-ssa/pr20739.c: likewise
    * gcc.dg/tree-ssa/pr20913.c: likewise
    * gcc.dg/tree-ssa/pr21458.c: likewise
    * gcc.dg/tree-ssa/pr21582.c: likewise
    * gcc.dg/tree-ssa/pr23086.c: likewise
    * gcc.dg/tree-ssa/pr23434.c (int cblas_csyr2k): likewise
    * gcc.dg/tree-ssa/pr24670.c (void float128_rem): likewise
    * gcc.dg/tree-ssa/pr27799.c (int foo_no): likewise
    * gcc.dg/tree-ssa/pr32367.c (double Evaluate_TPat): likewise
    * gcc.dg/tree-ssa/pr33922.c: likewise
    * gcc.dg/tree-ssa/pr44258.c: likewise
    * gcc.dg/tree-ssa/reassoc-1.c: likewise
    * gcc.dg/tree-ssa/reassoc-20.c: likewise
    * gcc.dg/tree-ssa/reassoc-4.c: likewise
    * gcc.dg/tree-ssa/reassoc-5.c: likewise
    * gcc.dg/tree-ssa/recip-1.c (float e): likewise
    * gcc.dg/tree-ssa/recip-3.c (float h): likewise
    * gcc.dg/tree-ssa/scev-3.c: likewise
    * gcc.dg/tree-ssa/scev-4.c: likewise
    * gcc.dg/tree-ssa/scev-5.c: likewise
    * gcc.dg/tree-ssa/slsr-4.c: likewise
    * gcc.dg/tree-ssa/sra-12.c: likewise
    * gcc.dg/tree-ssa/ssa-ccp-12.c: likewise
    * gcc.dg/tree-ssa/ssa-ccp-3.c: likewise
    * gcc.dg/tree-ssa/ssa-dce-1.c (void q): likewise
    * gcc.dg/tree-ssa/ssa-dse-4.c: likewise
    * gcc.dg/tree-ssa/ssa-dse-5.c: likewise
    * gcc.dg/tree-ssa/ssa-dse-9.c: likewise
    * gcc.dg/tree-ssa/ssa-fre-16.c: likewise
    * gcc.dg/tree-ssa/ssa-pre-1.c: likewise
    * gcc.dg/tree-ssa/ssa-sink-3.c: likewise
    * gcc.dg/tree-ssa/ssa-sink-4.c: likewise
    * gcc.dg/tree-ssa/structopt-1.c: likewise
    * gcc.dg/tree-ssa/structopt-2.c: likewise
    * gcc.dg/tree-ssa/tailcall-3.c: likewise
    * gcc.dg/tree-ssa/vrp01.c: likewise
    * gcc.dg/tree-ssa/vrp02.c: likewise
    * gcc.dg/tree-ssa/vrp03.c: likewise
    * gcc.dg/tree-ssa/vrp04.c: likewise
    * gcc.dg/tree-ssa/vrp05.c: likewise
    * gcc.dg/tree-ssa/vrp06.c: likewise
    * gcc.dg/tree-ssa/vrp07.c: likewise
    * gcc.dg/tree-ssa/vrp08.c: likewise
    * gcc.dg/tree-ssa/vrp09.c: likewise
    * gcc.dg/tree-ssa/vrp10.c: likewise
    * gcc.dg/tree-ssa/vrp11.c: likewise
    * gcc.dg/tree-ssa/vrp12.c: likewise
    * gcc.dg/tree-ssa/vrp13.c (int foo_div): likewise
    (int foo_mult): likewise
    * gcc.dg/tree-ssa/vrp14.c: likewise
    * gcc.dg/tree-ssa/vrp16.c: likewise
    * gcc.dg/tree-ssa/vrp17.c (gimplify_for_stmt): likewise
    * gcc.dg/tree-ssa/vrp23.c: likewise
    * gcc.dg/tree-ssa/vrp24.c (void sss): likewise
    * gcc.dg/tree-ssa/vrp25.c: likewise
    * gcc.dg/tree-ssa/vrp27.c (void alpha_expand_prologue): likewise
    * gcc.dg/tree-ssa/vrp40.c: likewise
    * gcc.dg/tree-ssa/vrp49.c: likewise
    * gcc.dg/tree-ssa/vrp55.c (void fu): likewise
    * gcc.dg/tree-ssa/vrp56.c: likewise
    * gcc.dg/tree-ssa/vrp68.c: likewise
    * gcc.dg/tree-ssa/vrp69.c: likewise
    * gcc.dg/tree-ssa/wholeprogram-1.c: likewise
    * gcc.dg/tree-ssa/writeonly.c: likewise
    * gcc.dg/two-types-4.c: likewise
    * gcc.dg/unused-3.c: likewise
    * gcc.dg/utf-dflt.c: likewise
    * gcc.dg/utf-dflt2.c: likewise
    * gcc.dg/varpool-1.c (int simplify_after_inline): likewise
    * gcc.dg/vect/O3-pr49087.c (struct S0): likewise
    * gcc.dg/vect/fast-math-vect-pow-2.c: likewise
    * gcc.dg/vect/no-scevccp-noreassoc-outer-1.c: likewise
    * gcc.dg/vect/no-scevccp-noreassoc-outer-3.c: likewise
    * gcc.dg/vect/no-scevccp-noreassoc-outer-5.c: likewise
    * gcc.dg/vect/no-scevccp-outer-10.c: likewise
    * gcc.dg/vect/no-scevccp-outer-10a.c: likewise
    * gcc.dg/vect/no-scevccp-outer-10b.c: likewise
    * gcc.dg/vect/no-scevccp-outer-11.c: likewise
    * gcc.dg/vect/no-scevccp-outer-12.c: likewise
    * gcc.dg/vect/no-scevccp-outer-15.c: likewise
    * gcc.dg/vect/no-scevccp-outer-18.c: likewise
    * gcc.dg/vect/no-scevccp-outer-19.c: likewise
    * gcc.dg/vect/no-scevccp-outer-20.c: likewise
    * gcc.dg/vect/no-scevccp-outer-22.c: likewise
    * gcc.dg/vect/no-scevccp-outer-3.c: likewise
    * gcc.dg/vect/no-scevccp-outer-4.c: likewise
    * gcc.dg/vect/no-scevccp-outer-5.c: likewise
    * gcc.dg/vect/no-scevccp-outer-8.c: likewise
    * gcc.dg/vect/no-scevccp-outer-9.c: likewise
    * gcc.dg/vect/no-scevccp-outer-9a.c: likewise
    * gcc.dg/vect/no-scevccp-outer-9b.c: likewise
    * gcc.dg/vect/no-tree-dom-vect-bug.c (main1): likewise
    * gcc.dg/vect/no-tree-fre-pr50039.c: likewise
    * gcc.dg/vect/pr24049.c (int DES_CBCUpdate): likewise
    * gcc.dg/vect/pr26359.c: likewise
    * gcc.dg/vect/pr28952.c (void send_spaceship_info): likewise
    * gcc.dg/vect/pr30784.c: likewise
    * gcc.dg/vect/pr31041.c (void utrie_open_3_4): likewise
    * gcc.dg/vect/pr32216.c (void SetSoundVariables): likewise
    * gcc.dg/vect/pr32224.c (void gmpz_export): likewise
    * gcc.dg/vect/pr32230.c: likewise
    * gcc.dg/vect/pr32366.c (void stream_test): likewise
    * gcc.dg/vect/pr32421.c: likewise
    * gcc.dg/vect/pr42709.c: likewise
    * gcc.dg/vect/pr43430-2.c (int vsad16_c): likewise
    * gcc.dg/vect/pr43842.c (void int161): likewise
    (int int81): likewise
    * gcc.dg/vect/pr45902.c: likewise
    * gcc.dg/vect/pr46052.c (static inline char bar1): likewise
    * gcc.dg/vect/pr46126.c: likewise
    * gcc.dg/vect/slp-23.c: likewise
    * gcc.dg/vect/slp-35.c: likewise
    * gcc.dg/vect/slp-37.c (foo1): likewise
    * gcc.dg/vect/slp-9.c: likewise
    * gcc.dg/vect/slp-widen-mult-s16.c: likewise
    * gcc.dg/vect/slp-widen-mult-u8.c: likewise
    * gcc.dg/vect/trapv-vect-reduc-4.c: likewise
    * gcc.dg/vect/vect-1-big-array.c: likewise
    * gcc.dg/vect/vect-1.c: likewise
    * gcc.dg/vect/vect-121.c (test): likewise
    * gcc.dg/vect/vect-122.c (f2): likewise
    (f4): likewise
    * gcc.dg/vect/vect-93.c: likewise
    * gcc.dg/vect/vect-multitypes-10.c (foo2): likewise
    * gcc.dg/vect/vect-multitypes-11.c: likewise
    * gcc.dg/vect/vect-multitypes-12.c: likewise
    * gcc.dg/vect/vect-multitypes-13.c: likewise
    * gcc.dg/vect/vect-multitypes-14.c: likewise
    * gcc.dg/vect/vect-multitypes-16.c: likewise
    * gcc.dg/vect/vect-multitypes-17.c: likewise
    * gcc.dg/vect/vect-multitypes-8.c: likewise
    * gcc.dg/vect/vect-multitypes-9.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap2-big-array.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: likewise
    * gcc.dg/vect/vect-strided-u32-i8.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap2-big-array.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap2.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap4.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap7.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8.c: likewise
    * gcc.dg/vect/vect-widen-mult-s16.c: likewise
    * gcc.dg/vect/vect-widen-mult-s8.c: likewise
    * gcc.dg/vect/vect-widen-mult-u16.c: likewise
    * gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: likewise
    * gcc.dg/vect/vect-widen-mult-u8-u32.c: likewise
    * gcc.dg/vect/vect-widen-mult-u8.c: likewise
    * gcc.dg/visibility-14.c: likewise
    * gcc.dg/visibility-8.c (fputs_unlocked): likewise
    * gcc.dg/vla-22.c: likewise
    * gcc.dg/webizer.c (void configure2): likewise
    * gcc.dg/winline-3.c (inline int q): likewise
    * gcc.dg/winline-5.c: likewise
    * gcc.dg/winline-6.c: likewise
    * gcc.dg/winline-9.c (int aa): likewise
    (int bb): likewise
    * gcc.dg/wtr-func-def-1.c: likewise
    * gcc.misc-tests/gcov-6.c: likewise
    * gcc.misc-tests/gcov-7.c (passed): likewise
    * gcc.target/i386/20040112-1.c (void ftn): likewise
    * gcc.target/i386/avx512cd-vpbroadcastmb2q-2.c: likewise
    * gcc.target/i386/avxfp-1.c: likewise
    * gcc.target/i386/avxfp-2.c (void q1): likewise
    * gcc.target/i386/cadd.c: likewise
    * gcc.target/i386/call-1.c: likewise
    * gcc.target/i386/cmov2.c: likewise
    * gcc.target/i386/cmov3.c: likewise
    * gcc.target/i386/cmov4.c: likewise
    * gcc.target/i386/cold-attribute-1.c (void my_cold_memset): likewise
    * gcc.target/i386/cold-attribute-2.c: likewise
    * gcc.target/i386/combine-mul.c: likewise
    * gcc.target/i386/cvt-1.c: likewise
    * gcc.target/i386/fpcvt-1.c: likewise
    * gcc.target/i386/fpcvt-2.c: likewise
    * gcc.target/i386/fpcvt-3.c: likewise
    * gcc.target/i386/local.c: likewise
    * gcc.target/i386/memcpy-2.c: likewise
    * gcc.target/i386/memcpy-3.c: likewise
    * gcc.target/i386/memset-1.c: likewise
    * gcc.target/i386/minmax-1.c: likewise
    * gcc.target/i386/minmax-2.c: likewise
    * gcc.target/i386/pr36786.c (void __floattisf): likewise
    * gcc.target/i386/pr44223.c: likewise
    * gcc.target/i386/pr44546.c: likewise
    * gcc.target/i386/pr45352-2.c (static void slice_xvmc_init): likewise
    * gcc.target/i386/pr47315.c: likewise
    * gcc.target/i386/pr55775.c: likewise
    * gcc.target/i386/pr56022.c: likewise
    * gcc.target/i386/pr57003.c: likewise
    * gcc.target/i386/pr60902.c: likewise
    * gcc.target/i386/sse-14.c: likewise
    * gcc.target/i386/sse-19.c: likewise
    * gcc.target/i386/sse-22.c: likewise
    * gcc.target/i386/sse-22a.c: likewise
    * gcc.target/i386/sse4a-extract.c (int static chk): likewise
    * gcc.target/i386/sse4a-insert.c (static int chk): likewise
    * gcc.target/i386/ssefp-1.c: likewise
    * gcc.target/i386/ssefp-2.c: likewise
    * gcc.target/i386/stackalign/return-4.c: likewise
    * gcc.target/i386/stackalign/return-5.c: likewise
    * gcc.target/i386/stackalign/return-6.c: likewise
    * gcc.target/i386/testimm-10.c: likewise
    * gcc.target/i386/vect-cond-1.c: likewise
    * gcc.target/i386/vect-div-1.c: likewise
    * gcc.target/i386/vectorize1.c (int set_names): likewise
    * gcc.target/i386/vectorize4-avx.c (void calc_freq): likewise
    * gcc.target/i386/xop-haddX.c (check_sbyte2word): likewise
    (check_sword2dword): likewise
    (check_dword2qword): likewise
    * gcc.target/i386/xop-hadduX.c (check_byte2word): likewise
    (check_word2dword): likewise
    * gcc.target/i386/xop-hsubX.c: likewise
    * gcc.target/x86_64/abi/callabi/pr38891.c: likewise
    * gfortran.dg/allocate_alloc_opt_13.f90: likewise
    * gfortran.dg/array_function_3.f90: likewise
    * gfortran.dg/associate_12.f90: likewise
    * gfortran.dg/assumed_rank_12.f90: likewise
    * gfortran.dg/binding_label_tests_26a.f90: likewise
    * gfortran.dg/block_11.f90: likewise
    * gfortran.dg/bounds_check_strlen_8.f90: likewise
    * gfortran.dg/class_13.f03: likewise
    * gfortran.dg/class_15.f03: likewise
    * gfortran.dg/class_16.f03: likewise
    * gfortran.dg/class_23.f03: likewise
    * gfortran.dg/class_32.f90: likewise
    * gfortran.dg/class_41.f03: likewise
    * gfortran.dg/class_result_2.f90: likewise
    * gfortran.dg/constructor_1.f90: likewise
    * gfortran.dg/constructor_5.f90: likewise
    * gfortran.dg/deferred_type_param_3.f90: likewise
    * gfortran.dg/defined_assignment_1.f90: likewise
    * gfortran.dg/defined_assignment_6.f90: likewise
    * gfortran.dg/defined_assignment_7.f90: likewise
    * gfortran.dg/dynamic_dispatch_6.f03: likewise
    * gfortran.dg/empty_function_1.f90: likewise
    * gfortran.dg/extends_13.f03: likewise
    * gfortran.dg/finalize_23.f90: likewise
    * gfortran.dg/generic_24.f90: likewise
    * gfortran.dg/graphite/id-2.f90: likewise
    * gfortran.dg/graphite/id-3.f90: likewise
    * gfortran.dg/graphite/pr37980.f90: likewise
    * gfortran.dg/intrinsic_shadow_1.f03: likewise
    * gfortran.dg/intrinsic_shadow_2.f03: likewise
    * gfortran.dg/intrinsic_shadow_3.f03: likewise
    * gfortran.dg/lto/20091028-1_1.c (int int_gen_ti_header_c_): likewise
    * gfortran.dg/lto/20091028-2_1.c: likewise
    * gfortran.dg/module_write_1.f90: likewise
    * gfortran.dg/operator_c1202.f90: likewise
    * gfortran.dg/pointer_check_6.f90: likewise
    * gfortran.dg/pr36680.f90: likewise
    * gfortran.dg/pr40999.f: likewise
    * gfortran.dg/pr42051.f03: likewise
    * gfortran.dg/pr61209.f90: likewise
    * gfortran.dg/pr61921.f90: likewise
    * gfortran.dg/private_type_11.f90: likewise
    * gfortran.dg/proc_decl_27.f90: likewise
    * gfortran.dg/proc_ptr_11.f90: likewise
    * gfortran.dg/proc_ptr_13.f90: likewise
    * gfortran.dg/proc_ptr_32.f90: likewise
    * gfortran.dg/proc_ptr_33.f90: likewise
    * gfortran.dg/proc_ptr_41.f90: likewise
    * gfortran.dg/proc_ptr_comp_4.f90: likewise
    * gfortran.dg/proc_ptr_result_1.f90: likewise
    * gfortran.dg/proc_ptr_result_7.f90: likewise
    * gfortran.dg/public_private_module_3.f90: likewise
    * gfortran.dg/public_private_module_5.f90: likewise
    * gfortran.dg/realloc_on_assign_14.f90: likewise
    * gfortran.dg/recursive_interface_1.f90: likewise
    * gfortran.dg/recursive_interface_2.f90: likewise
    * gfortran.dg/typebound_call_14.f03: likewise
    * gfortran.dg/typebound_call_16.f03: likewise
    * gfortran.dg/typebound_generic_8.f03: likewise
    * gfortran.dg/typebound_operator_18.f90: likewise
    * gfortran.dg/typebound_operator_19.f90: likewise
    * gfortran.dg/typebound_operator_9.f03: likewise
    * gfortran.dg/typebound_proc_14.f03: likewise
    * gfortran.dg/typebound_proc_17.f03: likewise
    * gfortran.dg/typebound_proc_18.f03: likewise
    * gfortran.dg/typebound_proc_24.f03: likewise
    * gfortran.dg/typebound_proc_31.f90: likewise
    * gfortran.dg/typebound_proc_32.f90: likewise
    * gfortran.dg/typebound_proc_33.f90: likewise
    * gfortran.dg/unresolved_fixup_1.f90: likewise
    * gfortran.dg/unresolved_fixup_2.f90: likewise
    * gfortran.dg/use_22.f90: likewise
    * gfortran.dg/use_23.f90: likewise
    * gfortran.dg/use_only_5.f90: likewise
    * gfortran.dg/vect/no-fre-no-copy-prop-O3-pr51704.f90: likewise
    * gfortran.dg/vect/pr46213.f90: likewise
    * gfortran.dg/whole_file_11.f90: likewise
    * lib/target-supports.exp: likewise
    * objc.dg/bad-receiver-type-2.m: likewise
    * objc.dg/comp-types-7.m: likewise
    * objc.dg/naming-3.m: likewise
    * objc.dg/property/dotsyntax-14.m: likewise
    * objc.dg/property/dotsyntax-15.m: likewise
    * objc.dg/proto-hier-2.m: likewise
    * objc.dg/special/load-category-1a.m: likewise
    * objc.dg/special/load-category-2a.m: likewise
    * objc.dg/special/load-category-3a.m: likewise
    * objc.dg/stabs-1.m: likewise
    * objc.dg/super-class-2.m: likewise

libstdc++-v3/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * testsuite/20_util/exchange/1.cc:
        Update the test with -Wreturn-type by default and -Wmissing-return
    * testsuite/23_containers/vector/debug/move_assign_neg.cc: likewise


--------------------------------------------------------------------------------------------------------

gcc/c-family/ChangeLog:

2014-08-14  Sylvestre Ledru  <sylvestre@debian.org>

    * c.opt: Enable -Wimplicit-int by default




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-20 21:42     ` Sylvestre Ledru
@ 2014-08-20 21:58       ` Joseph S. Myers
  0 siblings, 0 replies; 29+ messages in thread
From: Joseph S. Myers @ 2014-08-20 21:58 UTC (permalink / raw)
  To: Sylvestre Ledru
  Cc: Manuel López-Ibáñez, Gcc Patch List, Jason Merrill

On Wed, 20 Aug 2014, Sylvestre Ledru wrote:

> On 20/08/2014 00:02, Joseph S. Myers wrote:
> > On Fri, 15 Aug 2014, Sylvestre Ledru wrote:
> >
> >> It is indeed useless. I removed it. Thanks
> >> http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch
> > I don't think most of the testsuite changes in this patch should be 
> > needed, and we should be conservative about changing existing testcases 
> > because of the risk that it affects what they test.  Most of the changes 
> > seem like they would only have been relevant for the previous version that 
> > enabled -Wmissing-return warnings by default.
> >
> > The change to gcc.dg/c90-impl-int-1.c is simply wrong - the specific point 
> > of that testcase is to test various cases of implicit int, so you can't 
> > add explicit int return types to it.
> >
> > You need, obviously, the new tests for how -W(no-)missing-return and 
> > -W(no-)return-type work and what the defaults are.  Existing tests should 
> > only need to be changed if they do in fact fail with the compiler patch 
> > applied.
> >
> Thanks for the feedback.
> I updated the patch (including the gcc.dg/c90-impl-int-1.c change):
> http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch
> 
> For information, the number of files modified by this commit dropped
> from 1298 to 818.

Are you sure that's the right patch?

* It seems to be missing the new testcases, which are a necessary part of 
the patch.

* The first few testcase changes I looked at in the patch still don't make 
sense to me.  They are changing int return types to void, or adding 
"return 0;", which should not be needed with the defaults as I understand 
them - the warnings for those should be the "control reaches end of 
non-void function" which I thought was being left off by default.  If 
those are getting warnings (for C) without the changes, there's something 
I still don't understand about what this patch is doing and why it's meant 
to be safe.

Could you clarify - in terms of source code constructs, not option names - 
which cases your patch would or would not cause to receive warnings by 
default for C?

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-19 22:03   ` Joseph S. Myers
@ 2014-08-20 21:42     ` Sylvestre Ledru
  2014-08-20 21:58       ` Joseph S. Myers
  0 siblings, 1 reply; 29+ messages in thread
From: Sylvestre Ledru @ 2014-08-20 21:42 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: Manuel López-Ibáñez, Gcc Patch List, Jason Merrill

On 20/08/2014 00:02, Joseph S. Myers wrote:
> On Fri, 15 Aug 2014, Sylvestre Ledru wrote:
>
>> It is indeed useless. I removed it. Thanks
>> http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch
> I don't think most of the testsuite changes in this patch should be 
> needed, and we should be conservative about changing existing testcases 
> because of the risk that it affects what they test.  Most of the changes 
> seem like they would only have been relevant for the previous version that 
> enabled -Wmissing-return warnings by default.
>
> The change to gcc.dg/c90-impl-int-1.c is simply wrong - the specific point 
> of that testcase is to test various cases of implicit int, so you can't 
> add explicit int return types to it.
>
> You need, obviously, the new tests for how -W(no-)missing-return and 
> -W(no-)return-type work and what the defaults are.  Existing tests should 
> only need to be changed if they do in fact fail with the compiler patch 
> applied.
>
Thanks for the feedback.
I updated the patch (including the gcc.dg/c90-impl-int-1.c change):
http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch

For information, the number of files modified by this commit dropped
from 1298 to 818.

Thanks,
Sylvestre

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-15 16:28 ` Sylvestre Ledru
@ 2014-08-19 22:03   ` Joseph S. Myers
  2014-08-20 21:42     ` Sylvestre Ledru
  0 siblings, 1 reply; 29+ messages in thread
From: Joseph S. Myers @ 2014-08-19 22:03 UTC (permalink / raw)
  To: Sylvestre Ledru
  Cc: Manuel López-Ibáñez, Gcc Patch List, Jason Merrill

On Fri, 15 Aug 2014, Sylvestre Ledru wrote:

> It is indeed useless. I removed it. Thanks
> http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch

I don't think most of the testsuite changes in this patch should be 
needed, and we should be conservative about changing existing testcases 
because of the risk that it affects what they test.  Most of the changes 
seem like they would only have been relevant for the previous version that 
enabled -Wmissing-return warnings by default.

The change to gcc.dg/c90-impl-int-1.c is simply wrong - the specific point 
of that testcase is to test various cases of implicit int, so you can't 
add explicit int return types to it.

You need, obviously, the new tests for how -W(no-)missing-return and 
-W(no-)return-type work and what the defaults are.  Existing tests should 
only need to be changed if they do in fact fail with the compiler patch 
applied.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-08-14 18:49 Manuel López-Ibáñez
@ 2014-08-15 16:28 ` Sylvestre Ledru
  2014-08-19 22:03   ` Joseph S. Myers
  0 siblings, 1 reply; 29+ messages in thread
From: Sylvestre Ledru @ 2014-08-15 16:28 UTC (permalink / raw)
  To: Manuel López-Ibáñez, Gcc Patch List
  Cc: Jason Merrill, Joseph S. Myers

On 14/08/2014 20:48, Manuel López-Ibáñez wrote:
> --- a/gcc/fortran/options.c
> +++ b/gcc/fortran/options.c
> @@ -693,6 +693,10 @@ gfc_handle_option (size_t scode, const char *arg,
> int value,
>        gfc_option.warn_line_truncation = value;
>        break;
>
> +    case OPT_Wmissing_return:
> +      warn_missing_return = value;
> +      break;
> +
>      case OPT_Wrealloc_lhs:
>        gfc_option.warn_realloc_lhs = value;
>        break;
>
> The entry in c.opt says this is a C/C++ option, why you need this?
>
>
It is indeed useless. I removed it. Thanks
http://sylvestre.ledru.info/0001-Enable-warning-Wreturn-type-by-default.patch


>
> --- a/gcc/c-family/c.opt
> +++ b/gcc/c-family/c.opt
> @@ -472,7 +472,7 @@ C ObjC Var(warn_implicit_function_declaration)
> Init(-1) Warning LangEnabledBy(C
>  Warn about implicit function declarations
>
>  Wimplicit-int
> -C ObjC Var(warn_implicit_int) Warning LangEnabledBy(C ObjC,Wimplicit)
> +C ObjC Var(warn_implicit_int) Warning
>  Warn when a declaration does not specify a type
>
>  Wimport
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 5ae910c..3f2019a 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -3615,7 +3615,7 @@ This warning is enabled by @option{-Wall} in C++.
>  @opindex Wimplicit-int
>  @opindex Wno-implicit-int
>  Warn when a declaration does not specify a type.
> -This warning is enabled by @option{-Wall}.
> +This warning is enabled by default.
>
>  @item -Wimplicit-function-declaration @r{(C and Objective-C only)}
>  @opindex Wimplicit-function-declaration
>
>
> Does this patch actually enables -Wimplicit-int by default? The
> default without Init() should be zero!
>
> And according to this: https://gcc.gnu.org/ml/gcc-patches/2014-06/msg01367.html
>
> we still want -Wno-implicit to disable -Wimplicit-int (and
> -Werror=implicit to set -Werror=implicit-int), so the LangEnabledBy()
> should stay. The documentation could say: "This warning is enabled by
> default and it is also controlled by -Wimplicit."
>
OK. I will go back on this once the first patch is committed.

Thanks,
Sylvestre
Full changelog:
gcc/c-family/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * c.opt: Enable -Wreturn-type by default
        Add -Wmissing-return:
        Warn whenever control may reach end of non-void function

gcc/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * doc/invoke.texi: Document new flag -Wmissing-return
        Update -Wreturn-type
    * tree-cfg.c (pass_warn_function_return::execute):
        Introduce -Wreturn-type management

libgomp/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * testsuite/libgomp.c++/loop-2.C: Update the test with -Wreturn-type by
        default and -Wmissing-return
    * testsuite/libgomp.c++/loop-4.C: likewise
    * testsuite/libgomp.c++/parallel-1.C: likewise
    * testsuite/libgomp.c++/shared-1.C: likewise
    * testsuite/libgomp.c++/single-1.C: likewise
    * testsuite/libgomp.c++/single-2.C: likewise
    * testsuite/libgomp.c/omp-loop02.c: likewise
    * testsuite/libgomp.c/omp-parallel-for.c: likewise
    * testsuite/libgomp.c/omp-parallel-if.c: likewise
    * testsuite/libgomp.c/omp-single-1.c: likewise
    * testsuite/libgomp.c/omp-single-2.c: likewise
    * testsuite/libgomp.c/omp_matvec.c: likewise
    * testsuite/libgomp.c/omp_workshare3.c: likewise
    * testsuite/libgomp.c/omp_workshare4.c: likewise
    * testsuite/libgomp.c/pr30494.c (check): likewise
    * testsuite/libgomp.c/shared-1.c: likewise

gcc/testsuite/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * gcc.dg/Wmissing-return1.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return2.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return3.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return4.c: New test which tests the new behavior
    * gcc.dg/Wmissing-return5.c: New test which tests the new behavior
    * c-c++-common/asan/no-redundant-instrumentation-2.c (main):
        Update the test with -Wreturn-type by default and -Wmissing-return
    * c-c++-common/cilk-plus/AN/decl-ptr-colon.c (int main): likewise
    * c-c++-common/cilk-plus/AN/parser_errors.c: likewise
    * c-c++-common/cilk-plus/AN/parser_errors2.c: likewise
    * c-c++-common/cilk-plus/AN/parser_errors3.c: likewise
    * c-c++-common/cilk-plus/AN/pr57457-2.c: likewise
    * c-c++-common/cilk-plus/AN/pr57541-2.c (void foo1): likewise
    (void foo2): likewise
    * c-c++-common/cilk-plus/AN/pr57541.c (int foo): likewise
    (int foo1): likewise
    * c-c++-common/cilk-plus/CK/pr60197.c: likewise
    * c-c++-common/cilk-plus/CK/spawn_in_return.c: likewise
    * c-c++-common/convert-vec-1.c: likewise
    * c-c++-common/dfp/call-by-value.c (int foo32): likewise
    (int foo64): likewise
    (int foo128): likewise
    * c-c++-common/pr36513-2.c (int main2): likewise
    * c-c++-common/pr36513.c (int main1): likewise
    * c-c++-common/pr43772.c: likewise
    * c-c++-common/pr49706-2.c (same): likewise
    * c-c++-common/raw-string-3.c: likewise
    * c-c++-common/tm/pr54893.c: likewise
    * c-c++-common/tm/trxn-expr-2.c: likewise
    * c-c++-common/tsan/fd_pipe_race.c: likewise
    * c-c++-common/tsan/tls_race.c: likewise
    * c-c++-common/vector-1.c (int f): likewise
    * c-c++-common/vector-2.c (void f): likewise
    * g++.dg/abi/covariant2.C (struct c3): likewise
    (struct c7): likewise
    * g++.dg/abi/covariant3.C: likewise
    * g++.dg/abi/key2.C (int sub): likewise
    * g++.dg/abi/mangle7.C: likewise
    * g++.dg/bprob/g++-bprob-1.C (call_for): likewise
    * g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc: likewise
    * g++.dg/conversion/op1.C (class C): likewise
    (int fn): likewise
    * g++.dg/conversion/op6.C: likewise
    * g++.dg/cpp0x/access01.C: likewise
    * g++.dg/cpp0x/alias-decl-19.C: likewise
    * g++.dg/cpp0x/auto2.C (struct A): likewise
    * g++.dg/cpp0x/constexpr-defarg2.C: likewise
    * g++.dg/cpp0x/constexpr-memfn1.C: likewise
    * g++.dg/cpp0x/dc1.C (struct D): likewise
    * g++.dg/cpp0x/dc3.C: likewise
    * g++.dg/cpp0x/decltype12.C: likewise
    * g++.dg/cpp0x/decltype17.C (decltype): likewise
    * g++.dg/cpp0x/decltype3.C: likewise
    * g++.dg/cpp0x/decltype41.C (struct C): likewise
    * g++.dg/cpp0x/defaulted28.C: likewise
    * g++.dg/cpp0x/gen-attrs-4.C (five): likewise
    * g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C: likewise
    * g++.dg/cpp0x/lambda/lambda-defarg3.C: likewise
    * g++.dg/cpp0x/lambda/lambda-field-names.C: likewise
    * g++.dg/cpp0x/lambda/lambda-ice3.C (bool Klass: likewise:
likewisedostuff): likewise
    * g++.dg/cpp0x/lambda/lambda-ice5.C (template int foo): likewise
    * g++.dg/cpp0x/lambda/lambda-nested2.C (void f1): likewise
    * g++.dg/cpp0x/lambda/lambda-template.C: likewise
    * g++.dg/cpp0x/lambda/lambda-template12.C (class X): likewise
    * g++.dg/cpp0x/lambda/lambda-template2.C (struct T): likewise
    * g++.dg/cpp0x/lambda/lambda-this12.C: likewise
    * g++.dg/cpp0x/noexcept16.C: likewise
    * g++.dg/cpp0x/nolinkage1.C: likewise
    * g++.dg/cpp0x/nolinkage1a.cc: likewise
    * g++.dg/cpp0x/nsdmi-template5.C: likewise
    * g++.dg/cpp0x/parse1.C: likewise
    * g++.dg/cpp0x/pr34054.C: likewise
    * g++.dg/cpp0x/pr38795.C: likewise
    * g++.dg/cpp0x/pr47416.C: likewise
    * g++.dg/cpp0x/pr58781.C (f): likewise
    * g++.dg/cpp0x/range-for13.C (template int *begin): likewise
    (template int *end): likewise
    * g++.dg/cpp0x/range-for14.C: likewise
    * g++.dg/cpp0x/range-for6.C: likewise
    * g++.dg/cpp0x/rv-trivial-bug.C (int test2): likewise
    * g++.dg/cpp0x/rv2n.C: likewise
    * g++.dg/cpp0x/rv3n.C: likewise
    * g++.dg/cpp0x/static_assert10.C (template bool foo): likewise
    * g++.dg/cpp0x/static_assert11.C: likewise
    * g++.dg/cpp0x/trailing1.C (auto f): likewise
    * g++.dg/cpp0x/trailing5.C: likewise
    * g++.dg/cpp0x/udlit-template.C (test1): likewise
    * g++.dg/cpp0x/variadic-throw.C: likewise
    * g++.dg/cpp0x/variadic114.C: likewise
    * g++.dg/cpp0x/variadic57.C: likewise
    * g++.dg/cpp0x/variadic65.C: likewise
    * g++.dg/cpp0x/variadic66.C: likewise
    * g++.dg/cpp0x/variadic77.C: likewise
    * g++.dg/cpp0x/variadic97.C: likewise
    * g++.dg/cpp0x/variadic98.C: likewise
    * g++.dg/cpp0x/vt-35023.C: likewise
    * g++.dg/cpp0x/vt-35024.C: likewise
    * g++.dg/cpp1y/lambda-init7.C: likewise
    * g++.dg/debug/dwarf-eh-personality-1.C (int foobar): likewise
    * g++.dg/debug/dwarf2/dwarf4-typedef.C: likewise
    * g++.dg/debug/dwarf2/icf.C (test2): likewise
    * g++.dg/debug/dwarf2/pr61433.C: likewise
    * g++.dg/debug/pr16792.C: likewise
    * g++.dg/debug/pr46241.C: likewise
    * g++.dg/debug/pr46338.C (struct S): likewise
    * g++.dg/debug/pr47106.C (baz): likewise
    (bar): likewise
    (foo): likewise
    * g++.dg/debug/pr53466.C: likewise
    * g++.dg/dfp/44473-1.C: likewise
    * g++.dg/dfp/44473-2.C: likewise
    * g++.dg/eh/builtin1.C: likewise
    * g++.dg/eh/builtin2.C: likewise
    * g++.dg/eh/builtin3.C: likewise
    * g++.dg/eh/pr45569.C (float j): likewise
    * g++.dg/eh/sighandle.C: likewise
    * g++.dg/eh/unwind2.C: likewise
    * g++.dg/expr/bitfield11.C: likewise
    * g++.dg/expr/cond12.C: likewise
    * g++.dg/expr/cond2.C: likewise
    * g++.dg/expr/static_cast7.C: likewise
    * g++.dg/ext/builtin-object-size3.C: likewise
    * g++.dg/ext/has_nothrow_assign_odr.C: likewise
    * g++.dg/ext/java-1.C: likewise
    * g++.dg/ext/label7.C: likewise
    * g++.dg/ext/label8.C: likewise
    * g++.dg/ext/tmplattr7.C: likewise
    * g++.dg/ext/vector14.C: likewise
    * g++.dg/ext/vector8.C: likewise
    * g++.dg/ext/visibility/anon1.C: likewise
    * g++.dg/ext/visibility/anon2.C: likewise
    * g++.dg/ext/visibility/namespace1.C (namespace foo __attribute):
likewise
    * g++.dg/gcov/gcov-1.C: likewise
    * g++.dg/gomp/block-8.C: likewise
    * g++.dg/gomp/declare-simd-1.C: likewise
    * g++.dg/gomp/pr37189.C: likewise
    * g++.dg/gomp/pr39495-1.C: likewise
    * g++.dg/gomp/pr39495-2.C: likewise
    * g++.dg/gomp/pr41429.C: likewise
    * g++.dg/graphite/pr41305.C: likewise
    * g++.dg/graphite/pr41562.C (int Siren7_EncodeFrame): likewise
    * g++.dg/graphite/pr42930.C: likewise
    * g++.dg/inherit/covariant10.C: likewise
    * g++.dg/inherit/covariant11.C: likewise
    * g++.dg/inherit/crash4.C: likewise
    * g++.dg/inherit/virtual2.C: likewise
    * g++.dg/inherit/virtual3.C: likewise
    * g++.dg/init/const4.C (bool foo): likewise
    * g++.dg/init/ctor8.C: likewise
    * g++.dg/init/inline1.C: likewise
    * g++.dg/init/new18.C: likewise
    * g++.dg/init/new37.C: likewise
    * g++.dg/init/ref8.C: likewise
    * g++.dg/init/reference2.C: likewise
    * g++.dg/init/reference3.C: likewise
    * g++.dg/init/switch1.C: likewise
    * g++.dg/ipa/devirt-10.C (struct wxDCBase): likewise
    * g++.dg/ipa/devirt-13.C: likewise
    * g++.dg/ipa/devirt-14.C: likewise
    * g++.dg/ipa/devirt-15.C: likewise
    * g++.dg/ipa/devirt-16.C: likewise
    * g++.dg/ipa/devirt-17.C: likewise
    * g++.dg/ipa/devirt-18.C: likewise
    * g++.dg/ipa/devirt-19.C: likewise
    * g++.dg/ipa/devirt-21.C: likewise
    * g++.dg/ipa/devirt-23.C: likewise
    * g++.dg/ipa/devirt-34.C (t): likewise
    * g++.dg/ipa/pr43812.C: likewise
    * g++.dg/ipa/pr44372.C: likewise
    * g++.dg/ipa/pr45572-1.C: likewise
    * g++.dg/ipa/pr58371.C: likewise
    * g++.dg/ipa/pr59176.C: likewise
    * g++.dg/ipa/pr60640-1.C (class ASN1Object): likewise
    * g++.dg/ipa/pr61540.C: likewise
    * g++.dg/ipa/remref-1.C: likewise
    * g++.dg/ipa/remref-2.C: likewise
    * g++.dg/lookup/builtin2.C: likewise
    * g++.dg/lookup/conv-1.C: likewise
    * g++.dg/lookup/crash3.C (int crash): likewise
    * g++.dg/lookup/hidden-class15.C: likewise
    * g++.dg/lookup/hidden-class16.C: likewise
    * g++.dg/lookup/hidden-var1.C (struct Outer): likewise
    * g++.dg/lookup/scoped8.C: likewise
    * g++.dg/lookup/struct2.C: likewise
    * g++.dg/lookup/suggestions1.C: likewise
    * g++.dg/lto/20080907_0.C: likewise
    * g++.dg/lto/20080915_0.C: likewise
    * g++.dg/lto/20080916_0.C: likewise
    * g++.dg/lto/20100603-1_1.c: likewise
    * g++.dg/lto/20101010-1_0.C: likewise
    * g++.dg/lto/20101010-2_0.C: likewise
    * g++.dg/lto/pr54625-1_0.c (void speex_resampler_init_frac): likewise
    * g++.dg/lto/pr54625-2_0.c (double update_filter): likewise
    * g++.dg/opt/combine.C: likewise
    * g++.dg/opt/complex3.C: likewise
    * g++.dg/opt/const3.C: likewise
    * g++.dg/opt/covariant1.C: likewise
    * g++.dg/opt/dump1.C: likewise
    * g++.dg/opt/inline15.C: likewise
    * g++.dg/opt/local1.C: likewise
    * g++.dg/opt/memcpy1.C: likewise
    * g++.dg/opt/new1.C: likewise
    * g++.dg/opt/nrv8.C: likewise
    * g++.dg/opt/pr23299.C (E: likewise: likewisec): likewise
    * g++.dg/opt/pr27826.C (struct Geometry): likewise
    * g++.dg/opt/pr44919.C: likewise
    * g++.dg/opt/pr46640.C (struct QBasicAtomicInt): likewise
    (bool makeDir): likewise
    * g++.dg/opt/pr47615.C: likewise
    * g++.dg/opt/pr55329.C: likewise
    * g++.dg/opt/pr61456.C (static int Set): likewise
    * g++.dg/other/array3.C (bool reserve): likewise
    * g++.dg/other/assign1.C: likewise
    * g++.dg/other/copy2.C: likewise
    * g++.dg/other/crash-5.C: likewise
    * g++.dg/other/crash-8.C: likewise
    * g++.dg/other/error34.C: likewise
    * g++.dg/other/i386-8.C: likewise
    * g++.dg/other/pr22003.C (struct c1): likewise
    * g++.dg/other/pr24623.C (class ReferenceCounted): likewise
    * g++.dg/other/pr29610.C (struct __normal_iterator): likewise
    * g++.dg/other/pr42645-1.C: likewise
    * g++.dg/other/pr42645-2.C (f3): likewise
    * g++.dg/other/pr52048.C: likewise
    * g++.dg/other/ptrmem11.C: likewise
    * g++.dg/other/typedef3.C (struct XalanCProcessor): likewise
    * g++.dg/overload/addr1.C: likewise
    * g++.dg/overload/copy1.C: likewise
    * g++.dg/overload/defarg4.C (class foo): likewise
    * g++.dg/overload/operator5.C: likewise
    * g++.dg/overload/ref-conv1.C: likewise
    * g++.dg/overload/template5.C (int test): likewise
    * g++.dg/parse/crash37.C: likewise
    * g++.dg/parse/crash40.C: likewise
    * g++.dg/parse/crash61.C: likewise
    * g++.dg/parse/ctor5.C: likewise
    * g++.dg/parse/defarg4.C: likewise
    * g++.dg/parse/defarg6.C: likewise
    * g++.dg/parse/error41.C: likewise
    * g++.dg/parse/error42.C: likewise
    * g++.dg/parse/error43.C: likewise
    * g++.dg/parse/error44.C: likewise
    * g++.dg/parse/error5.C: likewise
    * g++.dg/parse/error6.C: likewise
    * g++.dg/parse/expr2.C: likewise
    * g++.dg/parse/friend7.C: likewise
    * g++.dg/parse/limits-initializer1.C: likewise
    * g++.dg/parse/namespace1.C: likewise
    * g++.dg/parse/namespace9.C (int g): likewise
    * g++.dg/parse/non-dependent2.C: likewise
    * g++.dg/parse/ret-type2.C: likewise
    * g++.dg/parse/typedef8.C: likewise
    * g++.dg/pch/static-1.C (int LocalStaticTest): likewise
    * g++.dg/plugin/dumb-plugin-test-1.C (int func): likewise
    * g++.dg/plugin/self-assign-test-1.C: likewise
    * g++.dg/plugin/self-assign-test-2.C: likewise
    * g++.dg/plugin/self-assign-test-3.C: likewise
    * g++.dg/pr45330.C: likewise
    * g++.dg/pr45788.C: likewise
    * g++.dg/pr48484.C: likewise
    * g++.dg/pr49847.C: likewise
    * g++.dg/pr55513.C: likewise
    * g++.dg/pr55604.C: likewise
    * g++.dg/pr57662.C: likewise
    * g++.dg/pr58389.C: likewise
    * g++.dg/pr58438.C (static int fn1): likewise
    * g++.dg/pr59445.C: likewise
    * g++.dg/pr59510.C: likewise
    * g++.dg/tc1/dr152.C: likewise
    * g++.dg/template/aggr-init1.C: likewise
    * g++.dg/template/anon1.C: likewise
    * g++.dg/template/array7.C (int bar): likewise
    * g++.dg/template/canon-type-8.C: likewise
    * g++.dg/template/conv1.C: likewise
    * g++.dg/template/crash107.C: likewise
    * g++.dg/template/crash23.C: likewise
    * g++.dg/template/crash72.C: likewise
    * g++.dg/template/crash8.C: likewise
    * g++.dg/template/defarg4.C: likewise
    * g++.dg/template/error10.C: likewise
    * g++.dg/template/friend32.C: likewise
    * g++.dg/template/init6.C: likewise
    * g++.dg/template/instantiate3.C: likewise
    * g++.dg/template/local6.C: likewise
    * g++.dg/template/memfriend7.C: likewise
    * g++.dg/template/new10.C: likewise
    * g++.dg/template/nontype12.C: likewise
    * g++.dg/template/overload12.C: likewise
    * g++.dg/template/overload5.C: likewise
    * g++.dg/template/overload8.C: likewise
    * g++.dg/template/partial10.C: likewise
    * g++.dg/template/partial9.C: likewise
    * g++.dg/template/qual1.C: likewise
    * g++.dg/template/recurse.C: likewise
    * g++.dg/template/sizeof8.C: likewise
    * g++.dg/template/sizeof9.C: likewise
    * g++.dg/template/spec22.C: likewise
    * g++.dg/template/spec23.C (struct Foo): likewise
    * g++.dg/template/spec6.C: likewise
    * g++.dg/template/spec7.C (int h): likewise
    * g++.dg/template/typedef8.C: likewise
    * g++.dg/template/using20.C: likewise
    * g++.dg/template/vla1.C (static int label): likewise
    * g++.dg/tls/thread_local3.C: likewise
    * g++.dg/tls/thread_local3g.C: likewise
    * g++.dg/tls/thread_local5.C: likewise
    * g++.dg/tls/thread_local5g.C: likewise
    * g++.dg/tls/thread_local6.C: likewise
    * g++.dg/tls/thread_local6g.C: likewise
    * g++.dg/tm/cgraph_edge.C: likewise
    * g++.dg/tm/pr46646.C: likewise
    * g++.dg/tm/pr47554.C (class list): likewise
    * g++.dg/tm/pr47573.C (int getStringHeight): likewise
    * g++.dg/tm/pr58635-2.C: likewise
    * g++.dg/tm/pr60004.C: likewise
    * g++.dg/torture/20070621-1.C: likewise
    * g++.dg/torture/20090329-1.C: likewise
    * g++.dg/torture/pr33134.C: likewise
    * g++.dg/torture/pr33340.C: likewise
    * g++.dg/torture/pr33627.C: likewise
    * g++.dg/torture/pr34222.C: likewise
    * g++.dg/torture/pr34241.C (inline void *operator  new): likewise
    * g++.dg/torture/pr34641.C: likewise
    * g++.dg/torture/pr34850.C: likewise
    * g++.dg/torture/pr35164-1.C: likewise
    * g++.dg/torture/pr36745.C: likewise
    * g++.dg/torture/pr38705.C (S: likewise: likewisebar): likewise
    * g++.dg/torture/pr38811.C: likewise
    * g++.dg/torture/pr39362.C: likewise
    * g++.dg/torture/pr39732.C: likewise
    * g++.dg/torture/pr41775.C: likewise
    * g++.dg/torture/pr42183.C: likewise
    * g++.dg/torture/pr42450.C: likewise
    * g++.dg/torture/pr42704.C: likewise
    * g++.dg/torture/pr42760.C: likewise
    * g++.dg/torture/pr42773.C: likewise
    * g++.dg/torture/pr42883.C: likewise
    * g++.dg/torture/pr43257.C: likewise
    * g++.dg/torture/pr43905.C: likewise
    * g++.dg/torture/pr44148.C: likewise
    * g++.dg/torture/pr44295.C: likewise
    * g++.dg/torture/pr44357.C: likewise
    * g++.dg/torture/pr44813.C: likewise
    * g++.dg/torture/pr45580.C: likewise
    * g++.dg/torture/pr45874.C: likewise
    * g++.dg/torture/pr45877.C (namespace std __attribute__): likewise
    * g++.dg/torture/pr46383.C: likewise
    * g++.dg/torture/pr46469.C (int identifierByPthreadHandle): likewise
    * g++.dg/torture/pr47313.C: likewise
    * g++.dg/torture/pr48271.C: likewise
    * g++.dg/torture/pr49615.C: likewise
    * g++.dg/torture/pr49628.C: likewise
    * g++.dg/torture/pr49938.C: likewise
    * g++.dg/torture/pr51436.C: likewise
    * g++.dg/torture/pr51482.C: likewise
    * g++.dg/torture/pr51737.C: likewise
    * g++.dg/torture/pr51959.C: likewise
    * g++.dg/torture/pr52772.C: likewise
    * g++.dg/torture/pr52918-2.C: likewise
    * g++.dg/torture/pr53011.C: likewise
    * g++.dg/torture/pr53752.C: likewise
    * g++.dg/torture/pr54684.C: likewise
    * g++.dg/torture/pr54838.C (struct bidirectional_iterator_tag): likewise
    * g++.dg/torture/pr54902.C: likewise
    * g++.dg/torture/pr55740.C (bool IsValidPath): likewise
    * g++.dg/torture/pr56029.C: likewise
    * g++.dg/torture/pr56694.C: likewise
    * g++.dg/torture/pr57107.C: likewise
    * g++.dg/torture/pr57140.C: likewise
    * g++.dg/torture/pr57235.C: likewise
    * g++.dg/torture/pr58252.C: likewise
    * g++.dg/torture/pr58369.C: likewise
    * g++.dg/torture/pr58555.C: likewise
    * g++.dg/torture/pr59208.C: likewise
    * g++.dg/torture/pr60438-1.C: likewise
    * g++.dg/torture/pr60438-2.C: likewise
    * g++.dg/torture/pr60648.C (enum component): likewise
    * g++.dg/torture/pr60746.C (Two: likewise: likewiserun): likewise
    * g++.dg/torture/predcom-1.C (bool Baz): likewise
    * g++.dg/tree-ssa/copyprop.C: likewise
    * g++.dg/tree-ssa/pr22444.C: likewise
    * g++.dg/tree-ssa/pr23948.C (int make_scheduler_request): likewise
    * g++.dg/tree-ssa/pr24172.C (inline int* dummy): likewise
    * g++.dg/tree-ssa/pr24351-3.C: likewise
    * g++.dg/tree-ssa/pr27283.C: likewise
    * g++.dg/tree-ssa/pr27291.C: likewise
    * g++.dg/tree-ssa/pr27548.C: likewise
    * g++.dg/tree-ssa/pr33604.C (struct Value): likewise
    * g++.dg/tree-ssa/pr34355.C (double Parse_Float): likewise
    * g++.dg/tree-ssa/pr42337.C: likewise
    * g++.dg/vect/pr60836.cc: likewise
    * g++.dg/warn/Wconversion-null-2.C (int warn_for___null): likewise
    * g++.dg/warn/Wnull-conversion-2.C: likewise
    * g++.dg/warn/Wparentheses-10.C: likewise
    * g++.dg/warn/Wparentheses-11.C: likewise
    * g++.dg/warn/Wparentheses-12.C: likewise
    * g++.dg/warn/Wparentheses-25.C: likewise
    * g++.dg/warn/Wparentheses-6.C: likewise
    * g++.dg/warn/Wparentheses-7.C: likewise
    * g++.dg/warn/Wparentheses-8.C: likewise
    * g++.dg/warn/Wparentheses-9.C: likewise
    * g++.dg/warn/Wshadow-5.C: likewise
    * g++.dg/warn/Wtype-limits-Wextra.C: likewise
    * g++.dg/warn/Wtype-limits-no.C: likewise
    * g++.dg/warn/Wtype-limits.C: likewise
    * g++.dg/warn/Wunused-local-typedefs.C: likewise
    * g++.dg/warn/Wzero-as-null-pointer-constant-5.C (struct foo): likewise
    * g++.dg/warn/pmf1.C (a: likewise: likewisef): likewise
    * g++.dg/warn/string1.C: likewise
    * g++.old-deja/g++.benjamin/p13417.C: likewise
    * g++.old-deja/g++.brendan/crash24.C: likewise
    * g++.old-deja/g++.brendan/scope1.C: likewise
    * g++.old-deja/g++.eh/catch13.C: likewise
    * g++.old-deja/g++.eh/crash1.C: likewise
    * g++.old-deja/g++.ext/arrnew.C: likewise
    * g++.old-deja/g++.ext/constructor.C: likewise
    * g++.old-deja/g++.ext/namedret1.C: likewise
    * g++.old-deja/g++.ext/namedret2.C: likewise
    * g++.old-deja/g++.ext/namedret3.C: likewise
    * g++.old-deja/g++.ext/return1.C: likewise
    * g++.old-deja/g++.jason/anon4.C: likewise
    * g++.old-deja/g++.jason/enum6.C: likewise
    * g++.old-deja/g++.jason/lineno2.C: likewise
    * g++.old-deja/g++.jason/lineno3.C: likewise
    * g++.old-deja/g++.jason/lineno4.C: likewise
    * g++.old-deja/g++.jason/member.C (struct Y): likewise
    * g++.old-deja/g++.jason/new2.C: likewise
    * g++.old-deja/g++.jason/new4.C: likewise
    * g++.old-deja/g++.jason/report.C: likewise
    * g++.old-deja/g++.jason/shadow1.C: likewise
    * g++.old-deja/g++.jason/tempcons.C: likewise
    * g++.old-deja/g++.jason/thunk2.C: likewise
    * g++.old-deja/g++.law/builtin1.C: likewise
    * g++.old-deja/g++.law/enum9.C: likewise
    * g++.old-deja/g++.law/except3.C: likewise
    * g++.old-deja/g++.law/init6.C: likewise
    * g++.old-deja/g++.law/profile1.C: likewise
    * g++.old-deja/g++.law/shadow2.C: likewise
    * g++.old-deja/g++.law/temps4.C: likewise
    * g++.old-deja/g++.law/typeck1.C: likewise
    * g++.old-deja/g++.law/visibility13.C: likewise
    * g++.old-deja/g++.law/weak.C: likewise
    * g++.old-deja/g++.mike/bool2.C: likewise
    * g++.old-deja/g++.mike/eh1.C: likewise
    * g++.old-deja/g++.mike/eh10.C: likewise
    * g++.old-deja/g++.mike/eh13.C: likewise
    * g++.old-deja/g++.mike/eh16.C: likewise
    * g++.old-deja/g++.mike/eh17.C: likewise
    * g++.old-deja/g++.mike/eh2.C: likewise
    * g++.old-deja/g++.mike/eh23.C: likewise
    * g++.old-deja/g++.mike/eh24.C: likewise
    * g++.old-deja/g++.mike/eh25.C: likewise
    * g++.old-deja/g++.mike/eh26.C: likewise
    * g++.old-deja/g++.mike/eh27.C: likewise
    * g++.old-deja/g++.mike/eh28.C: likewise
    * g++.old-deja/g++.mike/eh29.C: likewise
    * g++.old-deja/g++.mike/eh30.C: likewise
    * g++.old-deja/g++.mike/eh31.C: likewise
    * g++.old-deja/g++.mike/eh35.C: likewise
    * g++.old-deja/g++.mike/eh36.C: likewise
    * g++.old-deja/g++.mike/eh37.C: likewise
    * g++.old-deja/g++.mike/eh38.C: likewise
    * g++.old-deja/g++.mike/eh39.C: likewise
    * g++.old-deja/g++.mike/eh40.C: likewise
    * g++.old-deja/g++.mike/eh47.C: likewise
    * g++.old-deja/g++.mike/eh50.C: likewise
    * g++.old-deja/g++.mike/eh51.C: likewise
    * g++.old-deja/g++.mike/eh7.C: likewise
    * g++.old-deja/g++.mike/eh8.C: likewise
    * g++.old-deja/g++.mike/eh9.C: likewise
    * g++.old-deja/g++.mike/explicit2.C: likewise
    * g++.old-deja/g++.mike/mangle1.C: likewise
    * g++.old-deja/g++.mike/p11110.C: likewise
    * g++.old-deja/g++.mike/p5958.C: likewise
    * g++.old-deja/g++.mike/p6004.C: likewise
    * g++.old-deja/g++.mike/p700.C: likewise
    * g++.old-deja/g++.mike/p7912.C: likewise
    * g++.old-deja/g++.mike/p811.C: likewise
    * g++.old-deja/g++.mike/p9732c.C: likewise
    * g++.old-deja/g++.mike/virt4.C: likewise
    * g++.old-deja/g++.oliva/nameret1.C: likewise
    * g++.old-deja/g++.oliva/nameret2.C: likewise
    * g++.old-deja/g++.other/builtins5.C: likewise
    * g++.old-deja/g++.other/decl1.C: likewise
    * g++.old-deja/g++.other/expr1.C: likewise
    * g++.old-deja/g++.other/inline8.C: likewise
    * g++.old-deja/g++.other/loop1.C: likewise
    * g++.old-deja/g++.other/return1.C: likewise
    * g++.old-deja/g++.other/syntax1.C: likewise
    * g++.old-deja/g++.pt/call2.C: likewise
    * g++.old-deja/g++.pt/crash36.C: likewise
    * g++.old-deja/g++.pt/overload14.C: likewise
    * g++.old-deja/g++.pt/repo3.C: likewise
    * g++.old-deja/g++.pt/t24.C: likewise
    * g++.old-deja/g++.pt/ttp10.C: likewise
    * g++.old-deja/g++.robertl/eb22.C: likewise
    * g++.old-deja/g++.robertl/eb27.C: likewise
    * g++.old-deja/g++.robertl/eb83.C: likewise
    * gcc.c-torture/compile/20090721-1.c: likewise
    * gcc.c-torture/compile/pr25483.c (decode_init): likewise
    * gcc.c-torture/compile/pr44686.c (memcpy): likewise
    * gcc.c-torture/compile/pr56571.c: likewise
    * gcc.c-torture/compile/pr60655-1.c (short mp_compare): likewise
    (int upton_modmult): likewise
    * gcc.dg/20001012-1.c: likewise
    * gcc.dg/20001012-2.c: likewise
    * gcc.dg/20001108-1.c: likewise
    * gcc.dg/20010516-1.c (void foo): likewise
    * gcc.dg/20011008-2.c: likewise
    * gcc.dg/20020201-1.c: likewise
    * gcc.dg/20020415-1.c: likewise
    * gcc.dg/20020607-2.c (void test1): likewise
    (void test1f): likewise
    (void test2): likewise
    (void test2f): likewise
    * gcc.dg/20030331-2.c: likewise
    * gcc.dg/20030612-1.c: likewise
    * gcc.dg/20040219-1.c: likewise
    * gcc.dg/20040622-2.c: likewise
    * gcc.dg/20040920-1.c: likewise
    * gcc.dg/20041213-1.c: likewise
    * gcc.dg/20050603-2.c: likewise
    * gcc.dg/20051201-1.c: likewise
    * gcc.dg/20061026.c: likewise
    * gcc.dg/990506-0.c (void x): likewise
    * gcc.dg/Wcxx-compat-8.c (struct s1): likewise
    * gcc.dg/Wjump-misses-init-1.c (f1): likewise
    * gcc.dg/Wno-pointer-sign.c: likewise
    * gcc.dg/Wparentheses-1.c: likewise
    * gcc.dg/Wparentheses-10.c: likewise
    * gcc.dg/Wparentheses-11.c: likewise
    * gcc.dg/Wparentheses-2.c: likewise
    * gcc.dg/Wparentheses-3.c: likewise
    * gcc.dg/Wparentheses-4.c: likewise
    * gcc.dg/Wparentheses-5.c: likewise
    * gcc.dg/Wparentheses-6.c: likewise
    * gcc.dg/Wparentheses-7.c: likewise
    * gcc.dg/Wparentheses-8.c: likewise
    * gcc.dg/Wparentheses-9.c: likewise
    * gcc.dg/Wreturn-type2.c: likewise
    * gcc.dg/anon-struct-13.c: likewise
    * gcc.dg/anon-struct-14.c: likewise
    * gcc.dg/asm-4.c: likewise
    * gcc.dg/assign-warn-1.c: likewise
    * gcc.dg/assign-warn-2.c: likewise
    * gcc.dg/atomic-invalid.c: likewise
    * gcc.dg/atomic-param.c: likewise
    * gcc.dg/attr-alias-3.c: likewise
    * gcc.dg/attr-externally-visible-1.c: likewise
    * gcc.dg/builtin-bswap-6.c: likewise
    * gcc.dg/builtin-bswap-7.c: likewise
    * gcc.dg/builtins-43.c: likewise
    * gcc.dg/builtins-44.c: likewise
    * gcc.dg/builtins-45.c: likewise
    * gcc.dg/c90-impl-int-1.c: likewise
    * gcc.dg/c90-return-1.c: likewise
    * gcc.dg/c99-impl-int-1.c: likewise
    * gcc.dg/cast-qual-3.c: likewise
    * gcc.dg/charset/asm4.c: likewise
    * gcc.dg/compound-literal-1.c: likewise
    * gcc.dg/conv-2.c: likewise
    * gcc.dg/cpp/_Pragma3.c: likewise
    * gcc.dg/cpp/pragma-1.c: likewise
    * gcc.dg/cpp/pragma-2.c: likewise
    * gcc.dg/ctor1.c: likewise
    * gcc.dg/debug/20020224-1.c: likewise
    * gcc.dg/debug/dwarf2-2.c: likewise
    * gcc.dg/debug/dwarf2-3.c: likewise
    * gcc.dg/debug/dwarf2/dwarf-die1.c (inline int t): likewise
    * gcc.dg/debug/dwarf2/dwarf-die2.c (static inline int t): likewise
    * gcc.dg/debug/dwarf2/dwarf-die3.c (extern inline int t): likewise
    (int t): likewise
    * gcc.dg/debug/dwarf2/dwarf-die5.c (int q): likewise
    * gcc.dg/debug/dwarf2/dwarf-die6.c: likewise
    * gcc.dg/debug/dwarf2/dwarf-die7.c (static int t): likewise
    * gcc.dg/debug/dwarf2/inline1.c: likewise
    * gcc.dg/debug/dwarf2/ipa-cp1.c (void main): likewise
    * gcc.dg/debug/pr26881.c: likewise
    * gcc.dg/debug/pr42767.c (void _bfd_link_section_stabs): likewise
    * gcc.dg/debug/vta-2.c: likewise
    * gcc.dg/decl-6.c (int foo2): likewise
    * gcc.dg/decl-9.c (int f1): likewise
    * gcc.dg/declspec-18.c (int f5): likewise
    * gcc.dg/dfp/keywords-reserved.c: likewise
    * gcc.dg/dll-10a.c: likewise
    * gcc.dg/dll-11a.c: likewise
    * gcc.dg/dll-12a.c: likewise
    * gcc.dg/dll-6a.c: likewise
    * gcc.dg/dll-7a.c: likewise
    * gcc.dg/dll-9a.c: likewise
    * gcc.dg/dse.c: likewise
    * gcc.dg/enum-incomplete-1.c: likewise
    * gcc.dg/fastmath-1.c: likewise
    * gcc.dg/fold-eqandshift-3.c: likewise
    * gcc.dg/fork-instrumentation.c: likewise
    * gcc.dg/format/few-1.c: likewise
    * gcc.dg/funcdef-var-1.c: likewise
    * gcc.dg/funcorder.c: likewise
    * gcc.dg/fwrapv-1.c: likewise
    * gcc.dg/fwrapv-2.c: likewise
    * gcc.dg/gomp/block-8.c: likewise
    * gcc.dg/gomp/combined-1.c: likewise
    * gcc.dg/gomp/complex-1.c: likewise
    * gcc.dg/gomp/empty.c: likewise
    * gcc.dg/gomp/omp-parallel-if.c: likewise
    * gcc.dg/gomp/parallel-4.c: likewise
    * gcc.dg/gomp/pr39495-1.c: likewise
    * gcc.dg/gomp/pr39495-2.c: likewise
    * gcc.dg/gomp/pr48716.c: likewise
    * gcc.dg/gomp/pr57412.c: likewise
    * gcc.dg/gomp/sections-3.c: likewise
    * gcc.dg/gomp/sharing-3.c: likewise
    * gcc.dg/graphite/id-1.c (void lambda_vector_add_mc): likewise
    (void lambda_matrix_add_mc): likewise
    * gcc.dg/graphite/id-2.c (void matmul_c4): likewise
    * gcc.dg/graphite/id-25.c (int writeMotionVector8x8): likewise
    * gcc.dg/graphite/id-26.c (int find_sad_16x16): likewise
    * gcc.dg/graphite/id-3.c (void mmaxloc0_4_i1): likewise
    * gcc.dg/graphite/id-4.c (void g): likewise
    * gcc.dg/graphite/id-8.c: likewise
    * gcc.dg/graphite/id-pr43351.c: likewise
    * gcc.dg/graphite/id-pr43464.c (void Perl_re_intuit_start): likewise
    (void Perl_regexec_flags): likewise
    (int S_regtry): likewise
    * gcc.dg/graphite/id-pr45230-1.c: likewise
    * gcc.dg/graphite/id-pr45230.c: likewise
    * gcc.dg/graphite/interchange-4.c: likewise
    * gcc.dg/graphite/pr20041110-1.c: likewise
    * gcc.dg/graphite/pr37684.c: likewise
    * gcc.dg/graphite/pr37928.c (int gate1): likewise
    * gcc.dg/graphite/pr37943.c: likewise
    * gcc.dg/graphite/pr38073.c (int test_seg): likewise
    * gcc.dg/graphite/pr38125.c (void Perl_av_fill): likewise
    * gcc.dg/graphite/pr38409.c (int Chv_copyEntriesToVector): likewise
    * gcc.dg/graphite/pr38510.c (int pymol_rg_): likewise
    * gcc.dg/graphite/pr38559.c: likewise
    * gcc.dg/graphite/pr38786.c (void dummy_slice_too_big): likewise
    * gcc.dg/graphite/pr39260.c (void VBR_encode_frame): likewise
    * gcc.dg/graphite/pr39335.c (int devn_unpack_row): likewise
    * gcc.dg/graphite/pr42284.c (huft_build): likewise
    (inflate_fixed): likewise
    * gcc.dg/graphite/pr42914.c: likewise
    * gcc.dg/graphite/pr43083.c (static inline int bar): likewise
    * gcc.dg/graphite/pr46185.c: likewise
    * gcc.dg/graphite/pr46404-1.c: likewise
    * gcc.dg/graphite/run-id-5.c: likewise
    * gcc.dg/graphite/run-id-6.c: likewise
    * gcc.dg/graphite/scop-16.c: likewise
    * gcc.dg/graphite/scop-17.c: likewise
    * gcc.dg/graphite/scop-19.c (int d_growable_string_resize): likewise
    (void d_growable_string_append_buffer): likewise
    * gcc.dg/guality/vla-2.c: likewise
    * gcc.dg/inline-33.c: likewise
    * gcc.dg/ipa/inline-4.c: likewise
    * gcc.dg/ipa/inline-6.c (static void t): likewise
    * gcc.dg/ipa/inlinehint-1.c (void test): likewise
    (void m): likewise
    * gcc.dg/ipa/inlinehint-2.c (void t): likewise
    * gcc.dg/ipa/inlinehint-3.c (scc_next): likewise
    * gcc.dg/ipa/ipa-1.c: likewise
    * gcc.dg/ipa/ipa-2.c: likewise
    * gcc.dg/ipa/ipa-3.c (static int f): likewise
    * gcc.dg/ipa/ipa-4.c: likewise
    * gcc.dg/ipa/ipa-5.c: likewise
    * gcc.dg/ipa/ipa-6.c: likewise
    * gcc.dg/ipa/ipa-7.c: likewise
    * gcc.dg/ipa/ipa-8.c (static int g): likewise
    * gcc.dg/ipa/ipacost-1.c (i_can_be_propagated_fully): likewise
    (i_can_be_propagated_fully2): likewise
    (i_can_not_be_propagated_fully): likewise
    (i_can_not_be_propagated_fully2): likewise
    * gcc.dg/ipa/ipacost-2.c: likewise
    * gcc.dg/ipa/ipcp-1.c: likewise
    * gcc.dg/ipa/ipcp-2.c (bah): likewise
    * gcc.dg/ipa/ipcp-4.c (h): likewise
    (g1): likewise
    (g2): likewise
    * gcc.dg/ipa/noclone-1.c (__attribute__): likewise
    * gcc.dg/ipa/pr57539.c (cmpitem): likewise
    (distX): likewise
    (intersectY0): likewise
    (intersectY): likewise
    (mkNConstraintG): likewise
    (mkConstraintG): likewise
    * gcc.dg/ipa/pr58106.c (replace_label): likewise
    (for_each_rtx_1): likewise
    * gcc.dg/ipa/pure-const-1.c (int i_am_const3): likewise
    (void explode_badly): likewise
    (int i_am_pure4): likewise
    * gcc.dg/large-size-array-3.c: likewise
    * gcc.dg/large-size-array.c: likewise
    * gcc.dg/loop-3.c (modlookup): likewise
    * gcc.dg/lto/20080924_0.c: likewise
    * gcc.dg/lto/20081115_0.c: likewise
    * gcc.dg/lto/20081118_0.c: likewise
    * gcc.dg/lto/20081120-1_0.c: likewise
    * gcc.dg/lto/20081120-1_1.c: likewise
    * gcc.dg/lto/20081201-1_0.c: likewise
    * gcc.dg/lto/20090213_0.c: likewise
    * gcc.dg/lto/20090218-2_1.c: likewise
    * gcc.dg/lto/20090312_0.c: likewise
    * gcc.dg/lto/20090706-2_0.c: likewise
    * gcc.dg/lto/20090914-2_0.c: likewise
    * gcc.dg/lto/20091020-3_0.c (void * C_alloca): likewise
    * gcc.dg/lto/20100103-1_0.c: likewise
    * gcc.dg/lto/20100423-2_0.c (int fill_inbuf): likewise
    * gcc.dg/lto/20100423-2_1.c (int get_method): likewise
    * gcc.dg/lto/20100426_0.c: likewise
    * gcc.dg/lto/attr-weakref-1_0.c: likewise
    * gcc.dg/lto/attr-weakref-1_1.c (void b): likewise
    * gcc.dg/lto/attr-weakref-1_2.c (void c): likewise
    * gcc.dg/lto/ipareference2_0.c: likewise
    * gcc.dg/lto/ipareference2_1.c: likewise
    * gcc.dg/lto/ipareference_0.c: likewise
    * gcc.dg/lto/ipareference_1.c (int set_val): likewise
    (int get_val): likewise
    (void do_nothing): likewise
    * gcc.dg/lto/materialize-1_0.c (inline int inline_me): likewise
    * gcc.dg/lto/materialize-1_1.c: likewise
    * gcc.dg/lto/pr34989-1_0.c (int syslogd_main): likewise
    * gcc.dg/lto/pr34989-1_1.c: likewise
    * gcc.dg/lto/pr47924_0.c: likewise
    * gcc.dg/lto/pr48622_0.c: likewise
    * gcc.dg/lto/pr51572-1_0.c: likewise
    * gcc.dg/lto/pr52634_0.c: likewise
    * gcc.dg/lto/pr52634_1.c: likewise
    * gcc.dg/lto/pr53470_0.c: likewise
    * gcc.dg/lto/pr55703_0.c: likewise
    * gcc.dg/lto/resolutions_0.c (int link_error): likewise
    * gcc.dg/lto/trans-mem-3_0.c: likewise
    * gcc.dg/lto/trans-mem-3_1.c: likewise
    * gcc.dg/memmove-1.c: likewise
    * gcc.dg/nofixed-point-2.c: likewise
    * gcc.dg/non-local-goto-1.c (static void foo): likewise
    (static void bar): likewise
    * gcc.dg/non-local-goto-2.c: likewise
    * gcc.dg/noncompile/20040203-1.c: likewise
    * gcc.dg/noncompile/20040203-2.c: likewise
    * gcc.dg/noncompile/20040203-3.c: likewise
    * gcc.dg/noncompile/920616-2.c: likewise
    * gcc.dg/noncompile/920923-1.c: likewise
    * gcc.dg/noncompile/930301-1.c: likewise
    * gcc.dg/noncompile/930622-1.c: likewise
    * gcc.dg/noncompile/930622-2.c: likewise
    * gcc.dg/noncompile/931203-1.c: likewise
    * gcc.dg/noncompile/950825-1.c: likewise
    * gcc.dg/noncompile/incomplete-3.c: likewise
    * gcc.dg/noncompile/invalid_asm.c (void asm_invalid_register_name):
likewise
    * gcc.dg/noncompile/pr35447-1.c: likewise
    * gcc.dg/noncompile/scope.c: likewise
    * gcc.dg/noncompile/va-arg-1.c: likewise
    * gcc.dg/noreturn-7.c (int k): likewise
    * gcc.dg/noreturn-8.c (detect_noreturn): likewise
    * gcc.dg/packed-vla.c: likewise
    * gcc.dg/parser-pr28152-2.c: likewise
    * gcc.dg/parser-pr28152.c: likewise
    * gcc.dg/pch/inline-3.c (unsigned bar): likewise
    * gcc.dg/plugin/self-assign-test-1.c: likewise
    * gcc.dg/plugin/self-assign-test-2.c: likewise
    * gcc.dg/pr15443-1.c: likewise
    * gcc.dg/pr15698-1.c: likewise
    * gcc.dg/pr15698-4.c: likewise
    * gcc.dg/pr15698-5.c: likewise
    * gcc.dg/pr15698-8.c: likewise
    * gcc.dg/pr17301-1.c (write_format): likewise
    * gcc.dg/pr17319.c (int try_combine): likewise
    * gcc.dg/pr18596-1.c (int m): likewise
    * gcc.dg/pr18596-2.c: likewise
    * gcc.dg/pr19633.c: likewise
    * gcc.dg/pr20100.c (func_loop): likewise
    * gcc.dg/pr20368-1.c: likewise
    * gcc.dg/pr20368-2.c: likewise
    * gcc.dg/pr20368-3.c: likewise
    * gcc.dg/pr20672-1.c: likewise
    * gcc.dg/pr23075.c: likewise
    * gcc.dg/pr23470-1.c: likewise
    * gcc.dg/pr24561.c (static int debug_hook): likewise
    * gcc.dg/pr25795-1.c: likewise
    * gcc.dg/pr25795.c: likewise
    * gcc.dg/pr26004.c (void wack_struct_3): likewise
    * gcc.dg/pr27150-1.c: likewise
    * gcc.dg/pr27531-1.c: likewise
    * gcc.dg/pr27861-1.c (void do_dror): likewise
    * gcc.dg/pr28121.c: likewise
    * gcc.dg/pr28574.c: likewise
    * gcc.dg/pr28888.c (void Allocate__WriteStats): likewise
    * gcc.dg/pr28935.c (int extend_options): likewise
    * gcc.dg/pr29254.c (list_compare): likewise
    * gcc.dg/pr29299.c: likewise
    * gcc.dg/pr29467.c: likewise
    * gcc.dg/pr30904.c: likewise
    * gcc.dg/pr31490.c: likewise
    * gcc.dg/pr31507-2.c: likewise
    * gcc.dg/pr31529-1.c (int getline): likewise
    * gcc.dg/pr31529-2.c (void getline): likewise
    * gcc.dg/pr32135.c (ParsePhase): likewise
    * gcc.dg/pr32721.c: likewise
    * gcc.dg/pr33670.c: likewise
    * gcc.dg/pr33692.c (int pcm_shm_cmd): likewise
    * gcc.dg/pr33923.c (int brl_readCommand): likewise
    * gcc.dg/pr34263.c: likewise
    * gcc.dg/pr34457-1.c: likewise
    * gcc.dg/pr35065.c: likewise
    * gcc.dg/pr36194.c: likewise
    * gcc.dg/pr36997.c: likewise
    * gcc.dg/pr41783.c: likewise
    * gcc.dg/pr42245-2.c (strictly_smaller_name): likewise
    * gcc.dg/pr42246.c (Quiesce): likewise
    * gcc.dg/pr42249.c: likewise
    * gcc.dg/pr42389.c (try_route): likewise
    * gcc.dg/pr43564.c (unsigned __clz): likewise
    * gcc.dg/pr44545.c (DrawChunk): likewise
    * gcc.dg/pr44699.c: likewise
    * gcc.dg/pr45107.c: likewise
    * gcc.dg/pr45415.c: likewise
    * gcc.dg/pr46217.c: likewise
    * gcc.dg/pr46878-1.c (get_ice): likewise
    * gcc.dg/pr47443.c: likewise
    * gcc.dg/pr47763.c: likewise
    * gcc.dg/pr47899.c: likewise
    * gcc.dg/pr48235.c (GetRotatedTileFromOffset): likewise
    (GetHangarNum): likewise
    * gcc.dg/pr49000.c: likewise
    * gcc.dg/pr49705.c (check_image_width): likewise
    * gcc.dg/pr49994-2.c: likewise
    * gcc.dg/pr50908-2.c: likewise
    * gcc.dg/pr51321.c: likewise
    * gcc.dg/pr52549.c (void _mark): likewise
    (void __extension__ _mark): likewise
    * gcc.dg/pr52808.c: likewise
    * gcc.dg/pr55150-1.c: likewise
    * gcc.dg/pr56992.c: likewise
    * gcc.dg/pr59827.c: likewise
    * gcc.dg/pr59940.c (y): likewise
    * gcc.dg/pr60647-1.c (struct _wincore): likewise
    * gcc.dg/pragma-align.c: likewise
    * gcc.dg/pragma-diag-1.c: likewise
    * gcc.dg/pragma-re-3.c: likewise
    * gcc.dg/readonly-loc.c: likewise
    * gcc.dg/return-type-1.c: likewise
    * gcc.dg/return-type-3.c: likewise
    * gcc.dg/simulate-thread/atomic-load-int.c: likewise
    * gcc.dg/simulate-thread/atomic-load-int128.c: likewise
    * gcc.dg/simulate-thread/atomic-load-longlong.c: likewise
    * gcc.dg/simulate-thread/atomic-load-short.c: likewise
    * gcc.dg/simulate-thread/atomic-other-int.c: likewise
    * gcc.dg/sms-3.c: likewise
    * gcc.dg/spill-1.c: likewise
    * gcc.dg/switch-2.c: likewise
    * gcc.dg/tls/asm-1.c: likewise
    * gcc.dg/tls/opt-10.c: likewise
    * gcc.dg/tls/pr45870.c: likewise
    * gcc.dg/tm/20091013.c: likewise
    * gcc.dg/tm/20091221.c: likewise
    * gcc.dg/tm/debug-1.c: likewise
    * gcc.dg/tm/irrevocable-1.c: likewise
    * gcc.dg/tm/irrevocable-2.c: likewise
    * gcc.dg/tm/irrevocable-3.c: likewise
    * gcc.dg/tm/irrevocable-4.c: likewise
    * gcc.dg/tm/irrevocable-7.c: likewise
    * gcc.dg/tm/memopt-1.c: likewise
    * gcc.dg/tm/pr47520.c: likewise
    * gcc.dg/tm/pr47905.c: likewise
    * gcc.dg/tm/pr52173-1.c: likewise
    * gcc.dg/tm/props-1.c: likewise
    * gcc.dg/tm/props-2.c: likewise
    * gcc.dg/tm/props-3.c: likewise
    * gcc.dg/torture/pr24626-4.c: likewise
    * gcc.dg/torture/pr25183.c (int error): likewise
    * gcc.dg/torture/pr28814.c (void f9887): likewise
    * gcc.dg/torture/pr28900.c (int synths_): likewise
    * gcc.dg/torture/pr31254.c (void afs_inode_map_status): likewise
    * gcc.dg/torture/pr35227.c (int mandel): likewise
    * gcc.dg/torture/pr38948.c (append_simple): likewise
    * gcc.dg/torture/pr44807.c (print_job): likewise
    * gcc.dg/torture/pr45830.c: likewise
    * gcc.dg/torture/pr48822.c: likewise
    * gcc.dg/torture/pr50333.c (ncwrs_urow): likewise
    * gcc.dg/torture/pr50838.c (init_memory): likewise
    * gcc.dg/torture/pr51949.c: likewise
    * gcc.dg/torture/pr52720.c (int check_and_set_bank_swizzle): likewise
    * gcc.dg/torture/pr54409.c: likewise
    * gcc.dg/torture/pr55238.c (gzbuffer): likewise
    * gcc.dg/torture/pr55888.c (uint32_pack): likewise
    * gcc.dg/torture/pr55890-1.c: likewise
    * gcc.dg/torture/pr55890-2.c: likewise
    * gcc.dg/torture/pr56661.c: likewise
    * gcc.dg/torture/pr57036-1.c: likewise
    * gcc.dg/torture/pr57147-3.c: likewise
    * gcc.dg/torture/pr57251.c: likewise
    * gcc.dg/torture/pr57393-2.c: likewise
    * gcc.dg/torture/pr57584.c: likewise
    * gcc.dg/torture/pr59993.c: likewise
    * gcc.dg/torture/stackalign/nested-6.c: likewise
    * gcc.dg/tree-prof/crossmodule-indircall-1.c: likewise
    * gcc.dg/tree-prof/crossmodule-indircall-1a.c: likewise
    * gcc.dg/tree-prof/inliner-1.c: likewise
    * gcc.dg/tree-prof/merge_block.c: likewise
    * gcc.dg/tree-prof/peel-1.c: likewise
    * gcc.dg/tree-prof/stringop-1.c: likewise
    * gcc.dg/tree-prof/stringop-2.c: likewise
    * gcc.dg/tree-prof/unroll-1.c: likewise
    * gcc.dg/tree-prof/update-cunroll-2.c: likewise
    * gcc.dg/tree-prof/val-prof-1.c: likewise
    * gcc.dg/tree-prof/val-prof-2.c: likewise
    * gcc.dg/tree-prof/val-prof-3.c: likewise
    * gcc.dg/tree-prof/val-prof-4.c: likewise
    * gcc.dg/tree-prof/val-prof-5.c: likewise
    * gcc.dg/tree-prof/val-prof-6.c: likewise
    * gcc.dg/tree-prof/wcoverage-mismatch.c (int __attribute__): likewise
    * gcc.dg/tree-ssa/20030611-1.c (int shit): likewise
    * gcc.dg/tree-ssa/20030703-1.c: likewise
    * gcc.dg/tree-ssa/20030703-2.c: likewise
    * gcc.dg/tree-ssa/20030708-1.c (nonlocal_mentioned_p): likewise
    * gcc.dg/tree-ssa/20030709-1.c: likewise
    * gcc.dg/tree-ssa/20030711-2.c: likewise
    * gcc.dg/tree-ssa/20030711-3.c: likewise
    * gcc.dg/tree-ssa/20030714-1.c: likewise
    * gcc.dg/tree-ssa/20030714-2.c: likewise
    * gcc.dg/tree-ssa/20030729-1.c: likewise
    * gcc.dg/tree-ssa/20030731-1.c: likewise
    * gcc.dg/tree-ssa/20030807-11.c: likewise
    * gcc.dg/tree-ssa/20030807-2.c (void oof): likewise
    * gcc.dg/tree-ssa/20030807-3.c: likewise
    * gcc.dg/tree-ssa/20030807-5.c: likewise
    * gcc.dg/tree-ssa/20030807-8.c: likewise
    * gcc.dg/tree-ssa/20030814-1.c (int com): likewise
    * gcc.dg/tree-ssa/20030917-3.c: likewise
    * gcc.dg/tree-ssa/20030918-1.c: likewise
    * gcc.dg/tree-ssa/20030922-1.c: likewise
    * gcc.dg/tree-ssa/20030922-2.c: likewise
    * gcc.dg/tree-ssa/20040121-1.c: likewise
    * gcc.dg/tree-ssa/20040211-1.c (com): likewise
    * gcc.dg/tree-ssa/20040216-1.c: likewise
    * gcc.dg/tree-ssa/20040302-1.c: likewise
    * gcc.dg/tree-ssa/20040319-1.c: likewise
    * gcc.dg/tree-ssa/20040326-1.c: likewise
    * gcc.dg/tree-ssa/20040326-2.c: likewise
    * gcc.dg/tree-ssa/20040408-1.c (static int asctoeg): likewise
    * gcc.dg/tree-ssa/20040729-1.c: likewise
    * gcc.dg/tree-ssa/20041008-1.c (void baz): likewise
    * gcc.dg/tree-ssa/20050719-1.c: likewise
    * gcc.dg/tree-ssa/20070302-1.c (float foo): likewise
    * gcc.dg/tree-ssa/alias-13.c: likewise
    * gcc.dg/tree-ssa/alias-16.c: likewise
    * gcc.dg/tree-ssa/assign-3.c: likewise
    * gcc.dg/tree-ssa/attr-alias-2.c: likewise
    * gcc.dg/tree-ssa/attr-alias.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-1.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-2.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-3.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-4.c: likewise
    * gcc.dg/tree-ssa/builtin-expect-5.c: likewise
    * gcc.dg/tree-ssa/coalesce-1.c: likewise
    * gcc.dg/tree-ssa/col-1.c (m): likewise
    * gcc.dg/tree-ssa/complex-5.c: likewise
    * gcc.dg/tree-ssa/cunroll-1.c: likewise
    * gcc.dg/tree-ssa/cunroll-10.c: likewise
    * gcc.dg/tree-ssa/cunroll-2.c: likewise
    * gcc.dg/tree-ssa/cunroll-3.c: likewise
    * gcc.dg/tree-ssa/cunroll-4.c: likewise
    * gcc.dg/tree-ssa/cunroll-5.c: likewise
    * gcc.dg/tree-ssa/cunroll-9.c: likewise
    * gcc.dg/tree-ssa/foldconst-2.c (void emit_support_tinfos): likewise
    * gcc.dg/tree-ssa/foldconst-3.c (void int_fits_type_p): likewise
    * gcc.dg/tree-ssa/foldconst-4.c: likewise
    * gcc.dg/tree-ssa/foldconst-5.c: likewise
    * gcc.dg/tree-ssa/forwprop-26.c: likewise
    * gcc.dg/tree-ssa/forwprop-28.c (void test_2): likewise
    (void test_3): likewise
    (void test_4): likewise
    (void test_5): likewise
    (void test_6): likewise
    (void test_7): likewise
    (void test_8): likewise
    * gcc.dg/tree-ssa/ifc-4.c (void create_iso_definition): likewise
    * gcc.dg/tree-ssa/ifc-6.c: likewise
    * gcc.dg/tree-ssa/inline-10.c (void do_something): likewise
    * gcc.dg/tree-ssa/inline-11.c: likewise
    * gcc.dg/tree-ssa/inline-5.c (void do_inc): likewise
    * gcc.dg/tree-ssa/inline-6.c: likewise
    * gcc.dg/tree-ssa/inline-9.c: likewise
    * gcc.dg/tree-ssa/ipa-cp-1.c (void blah): likewise
    * gcc.dg/tree-ssa/ipa-split-1.c: likewise
    * gcc.dg/tree-ssa/ipa-split-2.c (void split_me): likewise
    * gcc.dg/tree-ssa/ipa-split-5.c: likewise
    * gcc.dg/tree-ssa/ivopts-1.c: likewise
    * gcc.dg/tree-ssa/ivopts-2.c: likewise
    * gcc.dg/tree-ssa/loadpre8.c (struct tree_common): likewise
    * gcc.dg/tree-ssa/local-pure-const.c: likewise
    * gcc.dg/tree-ssa/loop-20.c: likewise
    * gcc.dg/tree-ssa/loop-37.c: likewise
    * gcc.dg/tree-ssa/loop-38.c: likewise
    * gcc.dg/tree-ssa/nonzero-1.c: likewise
    * gcc.dg/tree-ssa/pr18908.c: likewise
    * gcc.dg/tree-ssa/pr20739.c: likewise
    * gcc.dg/tree-ssa/pr20913.c: likewise
    * gcc.dg/tree-ssa/pr21458.c: likewise
    * gcc.dg/tree-ssa/pr21582.c: likewise
    * gcc.dg/tree-ssa/pr23086.c: likewise
    * gcc.dg/tree-ssa/pr23434.c (int cblas_csyr2k): likewise
    * gcc.dg/tree-ssa/pr24670.c (void float128_rem): likewise
    * gcc.dg/tree-ssa/pr27799.c (int foo_no): likewise
    * gcc.dg/tree-ssa/pr32367.c (double Evaluate_TPat): likewise
    * gcc.dg/tree-ssa/pr33922.c: likewise
    * gcc.dg/tree-ssa/pr44258.c: likewise
    * gcc.dg/tree-ssa/reassoc-1.c: likewise
    * gcc.dg/tree-ssa/reassoc-20.c: likewise
    * gcc.dg/tree-ssa/reassoc-4.c: likewise
    * gcc.dg/tree-ssa/reassoc-5.c: likewise
    * gcc.dg/tree-ssa/recip-1.c (float e): likewise
    * gcc.dg/tree-ssa/recip-3.c (float h): likewise
    * gcc.dg/tree-ssa/scev-3.c: likewise
    * gcc.dg/tree-ssa/scev-4.c: likewise
    * gcc.dg/tree-ssa/scev-5.c: likewise
    * gcc.dg/tree-ssa/slsr-4.c: likewise
    * gcc.dg/tree-ssa/sra-12.c: likewise
    * gcc.dg/tree-ssa/ssa-ccp-12.c: likewise
    * gcc.dg/tree-ssa/ssa-ccp-3.c: likewise
    * gcc.dg/tree-ssa/ssa-dce-1.c (void q): likewise
    * gcc.dg/tree-ssa/ssa-dse-4.c: likewise
    * gcc.dg/tree-ssa/ssa-dse-5.c: likewise
    * gcc.dg/tree-ssa/ssa-dse-9.c: likewise
    * gcc.dg/tree-ssa/ssa-fre-16.c: likewise
    * gcc.dg/tree-ssa/ssa-pre-1.c: likewise
    * gcc.dg/tree-ssa/ssa-sink-3.c: likewise
    * gcc.dg/tree-ssa/ssa-sink-4.c: likewise
    * gcc.dg/tree-ssa/structopt-1.c: likewise
    * gcc.dg/tree-ssa/structopt-2.c: likewise
    * gcc.dg/tree-ssa/tailcall-3.c: likewise
    * gcc.dg/tree-ssa/vrp01.c: likewise
    * gcc.dg/tree-ssa/vrp02.c: likewise
    * gcc.dg/tree-ssa/vrp03.c: likewise
    * gcc.dg/tree-ssa/vrp04.c: likewise
    * gcc.dg/tree-ssa/vrp05.c: likewise
    * gcc.dg/tree-ssa/vrp06.c: likewise
    * gcc.dg/tree-ssa/vrp07.c: likewise
    * gcc.dg/tree-ssa/vrp08.c: likewise
    * gcc.dg/tree-ssa/vrp09.c: likewise
    * gcc.dg/tree-ssa/vrp10.c: likewise
    * gcc.dg/tree-ssa/vrp11.c: likewise
    * gcc.dg/tree-ssa/vrp12.c: likewise
    * gcc.dg/tree-ssa/vrp13.c (int foo_div): likewise
    (int foo_mult): likewise
    * gcc.dg/tree-ssa/vrp14.c: likewise
    * gcc.dg/tree-ssa/vrp16.c: likewise
    * gcc.dg/tree-ssa/vrp17.c (gimplify_for_stmt): likewise
    * gcc.dg/tree-ssa/vrp23.c: likewise
    * gcc.dg/tree-ssa/vrp24.c (void sss): likewise
    * gcc.dg/tree-ssa/vrp25.c: likewise
    * gcc.dg/tree-ssa/vrp27.c (void alpha_expand_prologue): likewise
    * gcc.dg/tree-ssa/vrp40.c: likewise
    * gcc.dg/tree-ssa/vrp49.c: likewise
    * gcc.dg/tree-ssa/vrp55.c (void fu): likewise
    * gcc.dg/tree-ssa/vrp56.c: likewise
    * gcc.dg/tree-ssa/vrp68.c: likewise
    * gcc.dg/tree-ssa/vrp69.c: likewise
    * gcc.dg/tree-ssa/wholeprogram-1.c: likewise
    * gcc.dg/tree-ssa/writeonly.c: likewise
    * gcc.dg/two-types-4.c: likewise
    * gcc.dg/unused-3.c: likewise
    * gcc.dg/utf-dflt.c: likewise
    * gcc.dg/utf-dflt2.c: likewise
    * gcc.dg/varpool-1.c (int simplify_after_inline): likewise
    * gcc.dg/vect/O3-pr49087.c (struct S0): likewise
    * gcc.dg/vect/fast-math-vect-pow-2.c: likewise
    * gcc.dg/vect/no-scevccp-noreassoc-outer-1.c: likewise
    * gcc.dg/vect/no-scevccp-noreassoc-outer-3.c: likewise
    * gcc.dg/vect/no-scevccp-noreassoc-outer-5.c: likewise
    * gcc.dg/vect/no-scevccp-outer-10.c: likewise
    * gcc.dg/vect/no-scevccp-outer-10a.c: likewise
    * gcc.dg/vect/no-scevccp-outer-10b.c: likewise
    * gcc.dg/vect/no-scevccp-outer-11.c: likewise
    * gcc.dg/vect/no-scevccp-outer-12.c: likewise
    * gcc.dg/vect/no-scevccp-outer-15.c: likewise
    * gcc.dg/vect/no-scevccp-outer-18.c: likewise
    * gcc.dg/vect/no-scevccp-outer-19.c: likewise
    * gcc.dg/vect/no-scevccp-outer-20.c: likewise
    * gcc.dg/vect/no-scevccp-outer-22.c: likewise
    * gcc.dg/vect/no-scevccp-outer-3.c: likewise
    * gcc.dg/vect/no-scevccp-outer-4.c: likewise
    * gcc.dg/vect/no-scevccp-outer-5.c: likewise
    * gcc.dg/vect/no-scevccp-outer-8.c: likewise
    * gcc.dg/vect/no-scevccp-outer-9.c: likewise
    * gcc.dg/vect/no-scevccp-outer-9a.c: likewise
    * gcc.dg/vect/no-scevccp-outer-9b.c: likewise
    * gcc.dg/vect/no-tree-dom-vect-bug.c (main1): likewise
    * gcc.dg/vect/no-tree-fre-pr50039.c: likewise
    * gcc.dg/vect/pr24049.c (int DES_CBCUpdate): likewise
    * gcc.dg/vect/pr26359.c: likewise
    * gcc.dg/vect/pr28952.c (void send_spaceship_info): likewise
    * gcc.dg/vect/pr30784.c: likewise
    * gcc.dg/vect/pr31041.c (void utrie_open_3_4): likewise
    * gcc.dg/vect/pr32216.c (void SetSoundVariables): likewise
    * gcc.dg/vect/pr32224.c (void gmpz_export): likewise
    * gcc.dg/vect/pr32230.c: likewise
    * gcc.dg/vect/pr32366.c (void stream_test): likewise
    * gcc.dg/vect/pr32421.c: likewise
    * gcc.dg/vect/pr42709.c: likewise
    * gcc.dg/vect/pr43430-2.c (int vsad16_c): likewise
    * gcc.dg/vect/pr43842.c (void int161): likewise
    (int int81): likewise
    * gcc.dg/vect/pr45902.c: likewise
    * gcc.dg/vect/pr46052.c (static inline char bar1): likewise
    * gcc.dg/vect/pr46126.c: likewise
    * gcc.dg/vect/slp-23.c: likewise
    * gcc.dg/vect/slp-35.c: likewise
    * gcc.dg/vect/slp-37.c (foo1): likewise
    * gcc.dg/vect/slp-9.c: likewise
    * gcc.dg/vect/slp-widen-mult-s16.c: likewise
    * gcc.dg/vect/slp-widen-mult-u8.c: likewise
    * gcc.dg/vect/trapv-vect-reduc-4.c: likewise
    * gcc.dg/vect/vect-1-big-array.c: likewise
    * gcc.dg/vect/vect-1.c: likewise
    * gcc.dg/vect/vect-121.c (test): likewise
    * gcc.dg/vect/vect-122.c (f2): likewise
    (f4): likewise
    * gcc.dg/vect/vect-93.c: likewise
    * gcc.dg/vect/vect-multitypes-10.c (foo2): likewise
    * gcc.dg/vect/vect-multitypes-11.c: likewise
    * gcc.dg/vect/vect-multitypes-12.c: likewise
    * gcc.dg/vect/vect-multitypes-13.c: likewise
    * gcc.dg/vect/vect-multitypes-14.c: likewise
    * gcc.dg/vect/vect-multitypes-16.c: likewise
    * gcc.dg/vect/vect-multitypes-17.c: likewise
    * gcc.dg/vect/vect-multitypes-8.c: likewise
    * gcc.dg/vect/vect-multitypes-9.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap2-big-array.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c: likewise
    * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: likewise
    * gcc.dg/vect/vect-strided-u32-i8.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap2-big-array.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap2.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap4.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8-gap7.c: likewise
    * gcc.dg/vect/vect-strided-u8-i8.c: likewise
    * gcc.dg/vect/vect-widen-mult-s16.c: likewise
    * gcc.dg/vect/vect-widen-mult-s8.c: likewise
    * gcc.dg/vect/vect-widen-mult-u16.c: likewise
    * gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: likewise
    * gcc.dg/vect/vect-widen-mult-u8-u32.c: likewise
    * gcc.dg/vect/vect-widen-mult-u8.c: likewise
    * gcc.dg/visibility-14.c: likewise
    * gcc.dg/visibility-8.c (fputs_unlocked): likewise
    * gcc.dg/vla-22.c: likewise
    * gcc.dg/webizer.c (void configure2): likewise
    * gcc.dg/winline-3.c (inline int q): likewise
    * gcc.dg/winline-5.c: likewise
    * gcc.dg/winline-6.c: likewise
    * gcc.dg/winline-9.c (int aa): likewise
    (int bb): likewise
    * gcc.dg/wtr-func-def-1.c: likewise
    * gcc.misc-tests/gcov-6.c: likewise
    * gcc.misc-tests/gcov-7.c (passed): likewise
    * gcc.target/i386/20040112-1.c (void ftn): likewise
    * gcc.target/i386/avx512cd-vpbroadcastmb2q-2.c: likewise
    * gcc.target/i386/avxfp-1.c: likewise
    * gcc.target/i386/avxfp-2.c (void q1): likewise
    * gcc.target/i386/cadd.c: likewise
    * gcc.target/i386/call-1.c: likewise
    * gcc.target/i386/cmov2.c: likewise
    * gcc.target/i386/cmov3.c: likewise
    * gcc.target/i386/cmov4.c: likewise
    * gcc.target/i386/cold-attribute-1.c (void my_cold_memset): likewise
    * gcc.target/i386/cold-attribute-2.c: likewise
    * gcc.target/i386/combine-mul.c: likewise
    * gcc.target/i386/cvt-1.c: likewise
    * gcc.target/i386/fpcvt-1.c: likewise
    * gcc.target/i386/fpcvt-2.c: likewise
    * gcc.target/i386/fpcvt-3.c: likewise
    * gcc.target/i386/local.c: likewise
    * gcc.target/i386/memcpy-2.c: likewise
    * gcc.target/i386/memcpy-3.c: likewise
    * gcc.target/i386/memset-1.c: likewise
    * gcc.target/i386/minmax-1.c: likewise
    * gcc.target/i386/minmax-2.c: likewise
    * gcc.target/i386/pr36786.c (void __floattisf): likewise
    * gcc.target/i386/pr44223.c: likewise
    * gcc.target/i386/pr44546.c: likewise
    * gcc.target/i386/pr45352-2.c (static void slice_xvmc_init): likewise
    * gcc.target/i386/pr47315.c: likewise
    * gcc.target/i386/pr55775.c: likewise
    * gcc.target/i386/pr56022.c: likewise
    * gcc.target/i386/pr57003.c: likewise
    * gcc.target/i386/pr60902.c: likewise
    * gcc.target/i386/sse-14.c: likewise
    * gcc.target/i386/sse-19.c: likewise
    * gcc.target/i386/sse-22.c: likewise
    * gcc.target/i386/sse-22a.c: likewise
    * gcc.target/i386/sse4a-extract.c (int static chk): likewise
    * gcc.target/i386/sse4a-insert.c (static int chk): likewise
    * gcc.target/i386/ssefp-1.c: likewise
    * gcc.target/i386/ssefp-2.c: likewise
    * gcc.target/i386/stackalign/return-4.c: likewise
    * gcc.target/i386/stackalign/return-5.c: likewise
    * gcc.target/i386/stackalign/return-6.c: likewise
    * gcc.target/i386/testimm-10.c: likewise
    * gcc.target/i386/vect-cond-1.c: likewise
    * gcc.target/i386/vect-div-1.c: likewise
    * gcc.target/i386/vectorize1.c (int set_names): likewise
    * gcc.target/i386/vectorize4-avx.c (void calc_freq): likewise
    * gcc.target/i386/xop-haddX.c (check_sbyte2word): likewise
    (check_sword2dword): likewise
    (check_dword2qword): likewise
    * gcc.target/i386/xop-hadduX.c (check_byte2word): likewise
    (check_word2dword): likewise
    * gcc.target/i386/xop-hsubX.c: likewise
    * gcc.target/x86_64/abi/callabi/pr38891.c: likewise
    * gfortran.dg/allocate_alloc_opt_13.f90: likewise
    * gfortran.dg/array_function_3.f90: likewise
    * gfortran.dg/associate_12.f90: likewise
    * gfortran.dg/assumed_rank_12.f90: likewise
    * gfortran.dg/binding_label_tests_26a.f90: likewise
    * gfortran.dg/block_11.f90: likewise
    * gfortran.dg/bounds_check_strlen_8.f90: likewise
    * gfortran.dg/class_13.f03: likewise
    * gfortran.dg/class_15.f03: likewise
    * gfortran.dg/class_16.f03: likewise
    * gfortran.dg/class_23.f03: likewise
    * gfortran.dg/class_32.f90: likewise
    * gfortran.dg/class_41.f03: likewise
    * gfortran.dg/class_result_2.f90: likewise
    * gfortran.dg/constructor_1.f90: likewise
    * gfortran.dg/constructor_5.f90: likewise
    * gfortran.dg/deferred_type_param_3.f90: likewise
    * gfortran.dg/defined_assignment_1.f90: likewise
    * gfortran.dg/defined_assignment_6.f90: likewise
    * gfortran.dg/defined_assignment_7.f90: likewise
    * gfortran.dg/dynamic_dispatch_6.f03: likewise
    * gfortran.dg/empty_function_1.f90: likewise
    * gfortran.dg/extends_13.f03: likewise
    * gfortran.dg/finalize_23.f90: likewise
    * gfortran.dg/generic_24.f90: likewise
    * gfortran.dg/graphite/id-2.f90: likewise
    * gfortran.dg/graphite/id-3.f90: likewise
    * gfortran.dg/graphite/pr37980.f90: likewise
    * gfortran.dg/intrinsic_shadow_1.f03: likewise
    * gfortran.dg/intrinsic_shadow_2.f03: likewise
    * gfortran.dg/intrinsic_shadow_3.f03: likewise
    * gfortran.dg/lto/20091028-1_1.c (int int_gen_ti_header_c_): likewise
    * gfortran.dg/lto/20091028-2_1.c: likewise
    * gfortran.dg/module_write_1.f90: likewise
    * gfortran.dg/operator_c1202.f90: likewise
    * gfortran.dg/pointer_check_6.f90: likewise
    * gfortran.dg/pr36680.f90: likewise
    * gfortran.dg/pr40999.f: likewise
    * gfortran.dg/pr42051.f03: likewise
    * gfortran.dg/pr61209.f90: likewise
    * gfortran.dg/pr61921.f90: likewise
    * gfortran.dg/private_type_11.f90: likewise
    * gfortran.dg/proc_decl_27.f90: likewise
    * gfortran.dg/proc_ptr_11.f90: likewise
    * gfortran.dg/proc_ptr_13.f90: likewise
    * gfortran.dg/proc_ptr_32.f90: likewise
    * gfortran.dg/proc_ptr_33.f90: likewise
    * gfortran.dg/proc_ptr_41.f90: likewise
    * gfortran.dg/proc_ptr_comp_4.f90: likewise
    * gfortran.dg/proc_ptr_result_1.f90: likewise
    * gfortran.dg/proc_ptr_result_7.f90: likewise
    * gfortran.dg/public_private_module_3.f90: likewise
    * gfortran.dg/public_private_module_5.f90: likewise
    * gfortran.dg/realloc_on_assign_14.f90: likewise
    * gfortran.dg/recursive_interface_1.f90: likewise
    * gfortran.dg/recursive_interface_2.f90: likewise
    * gfortran.dg/typebound_call_14.f03: likewise
    * gfortran.dg/typebound_call_16.f03: likewise
    * gfortran.dg/typebound_generic_8.f03: likewise
    * gfortran.dg/typebound_operator_18.f90: likewise
    * gfortran.dg/typebound_operator_19.f90: likewise
    * gfortran.dg/typebound_operator_9.f03: likewise
    * gfortran.dg/typebound_proc_14.f03: likewise
    * gfortran.dg/typebound_proc_17.f03: likewise
    * gfortran.dg/typebound_proc_18.f03: likewise
    * gfortran.dg/typebound_proc_24.f03: likewise
    * gfortran.dg/typebound_proc_31.f90: likewise
    * gfortran.dg/typebound_proc_32.f90: likewise
    * gfortran.dg/typebound_proc_33.f90: likewise
    * gfortran.dg/unresolved_fixup_1.f90: likewise
    * gfortran.dg/unresolved_fixup_2.f90: likewise
    * gfortran.dg/use_22.f90: likewise
    * gfortran.dg/use_23.f90: likewise
    * gfortran.dg/use_only_5.f90: likewise
    * gfortran.dg/vect/no-fre-no-copy-prop-O3-pr51704.f90: likewise
    * gfortran.dg/vect/pr46213.f90: likewise
    * gfortran.dg/whole_file_11.f90: likewise
    * lib/target-supports.exp: likewise
    * objc.dg/bad-receiver-type-2.m: likewise
    * objc.dg/comp-types-7.m: likewise
    * objc.dg/naming-3.m: likewise
    * objc.dg/property/dotsyntax-14.m: likewise
    * objc.dg/property/dotsyntax-15.m: likewise
    * objc.dg/proto-hier-2.m: likewise
    * objc.dg/special/load-category-1a.m: likewise
    * objc.dg/special/load-category-2a.m: likewise
    * objc.dg/special/load-category-3a.m: likewise
    * objc.dg/stabs-1.m: likewise
    * objc.dg/super-class-2.m: likewise

libstdc++-v3/ChangeLog:

2014-08-13  Sylvestre Ledru  <sylvestre@debian.org>

    * testsuite/20_util/exchange/1.cc:
        Update the test with -Wreturn-type by default and -Wmissing-return
    * testsuite/23_containers/vector/debug/move_assign_neg.cc: likewise



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
@ 2014-08-14 18:49 Manuel López-Ibáñez
  2014-08-15 16:28 ` Sylvestre Ledru
  0 siblings, 1 reply; 29+ messages in thread
From: Manuel López-Ibáñez @ 2014-08-14 18:49 UTC (permalink / raw)
  To: Gcc Patch List; +Cc: Jason Merrill, Joseph S. Myers, Sylvestre Ledru

--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -693,6 +693,10 @@ gfc_handle_option (size_t scode, const char *arg,
int value,
       gfc_option.warn_line_truncation = value;
       break;

+    case OPT_Wmissing_return:
+      warn_missing_return = value;
+      break;
+
     case OPT_Wrealloc_lhs:
       gfc_option.warn_realloc_lhs = value;
       break;

The entry in c.opt says this is a C/C++ option, why you need this?

+Wmissing-return
+C ObjC C++ ObjC++ Var(warn_missing_return) LangEnabledBy(C ObjC C++
ObjC++,Wreturn-type)
+Warn whenever control may reach end of non-void function

This should prevent that using -Wreturn-type in Fortran tries to
enable -Wmissing-return, if not that is a bug.

In any case, the work-around should be adding Wmissing-return to
fortran/lang.opt with a ??? comment, not there.


--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -472,7 +472,7 @@ C ObjC Var(warn_implicit_function_declaration)
Init(-1) Warning LangEnabledBy(C
 Warn about implicit function declarations

 Wimplicit-int
-C ObjC Var(warn_implicit_int) Warning LangEnabledBy(C ObjC,Wimplicit)
+C ObjC Var(warn_implicit_int) Warning
 Warn when a declaration does not specify a type

 Wimport
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 5ae910c..3f2019a 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3615,7 +3615,7 @@ This warning is enabled by @option{-Wall} in C++.
 @opindex Wimplicit-int
 @opindex Wno-implicit-int
 Warn when a declaration does not specify a type.
-This warning is enabled by @option{-Wall}.
+This warning is enabled by default.

 @item -Wimplicit-function-declaration @r{(C and Objective-C only)}
 @opindex Wimplicit-function-declaration


Does this patch actually enables -Wimplicit-int by default? The
default without Init() should be zero!

And according to this: https://gcc.gnu.org/ml/gcc-patches/2014-06/msg01367.html

we still want -Wno-implicit to disable -Wimplicit-int (and
-Werror=implicit to set -Werror=implicit-int), so the LangEnabledBy()
should stay. The documentation could say: "This warning is enabled by
default and it is also controlled by -Wimplicit."

Cheers,

Manuel.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-01-23 18:48   ` Jason Merrill
@ 2014-01-23 18:57     ` Sylvestre Ledru
  0 siblings, 0 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-01-23 18:57 UTC (permalink / raw)
  To: gcc-patches

On 23/01/2014 10:48, Jason Merrill wrote:
> On 01/16/2014 02:44 PM, Jason Merrill wrote:
>> To avoid spurious warnings on code with infinite loops we could add a
>> simple check for infinite loops and suppress the warning in that case.
>> Basically, if we see a loop with an always-true condition and no breaks.
>
> Like so:
>
> Tested x86_64-pc-linux-gnu, applying to trunk.
>
Thanks for that!

S

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-01-16 19:44 ` Jason Merrill
  2014-01-23  6:44   ` Sylvestre Ledru
@ 2014-01-23 18:48   ` Jason Merrill
  2014-01-23 18:57     ` Sylvestre Ledru
  1 sibling, 1 reply; 29+ messages in thread
From: Jason Merrill @ 2014-01-23 18:48 UTC (permalink / raw)
  To: Sylvestre Ledru, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 324 bytes --]

On 01/16/2014 02:44 PM, Jason Merrill wrote:
> To avoid spurious warnings on code with infinite loops we could add a
> simple check for infinite loops and suppress the warning in that case.
> Basically, if we see a loop with an always-true condition and no breaks.

Like so:

Tested x86_64-pc-linux-gnu, applying to trunk.


[-- Attachment #2: 55189-loop.patch --]
[-- Type: text/x-patch, Size: 9871 bytes --]

commit 9e1ee1aae068265870982c7b615c9e18136ab38a
Author: Jason Merrill <jason@redhat.com>
Date:   Thu Jan 16 16:39:58 2014 -0500

    	PR c++/55189
    	* cp-tree.h (struct language_function): Add infinite_loop and
    	infinite_loops.
    	(current_function_infinite_loop): New.
    	* semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
    	(break_maybe_infinite_loop): New.
    	(finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
    	(finish_do_stmt, finish_for_cond, finish_for_stmt)
    	(begin_range_for_stmt): Use them.
    	* decl.c (finish_function): Don't warn about missing return
    	if current_function_infinite_loop.
    	* pt.c (instantiate_decl): Copy current_function_infinite_loop.
    	* parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.

diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 96af562f..ab75db8 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -1127,6 +1127,7 @@ struct GTY(()) language_function {
   BOOL_BITFIELD returns_value : 1;
   BOOL_BITFIELD returns_null : 1;
   BOOL_BITFIELD returns_abnormally : 1;
+  BOOL_BITFIELD infinite_loop: 1;
   BOOL_BITFIELD x_in_function_try_handler : 1;
   BOOL_BITFIELD x_in_base_initializer : 1;
 
@@ -1136,6 +1137,9 @@ struct GTY(()) language_function {
   htab_t GTY((param_is(struct named_label_entry))) x_named_labels;
   cp_binding_level *bindings;
   vec<tree, va_gc> *x_local_names;
+  /* Tracking possibly infinite loops.  This is a vec<tree> only because
+     vec<bool> doesn't work with gtype.  */
+  vec<tree, va_gc> *infinite_loops;
   htab_t GTY((param_is (struct cxx_int_tree_map))) extern_decl_map;
 };
 
@@ -1194,6 +1198,12 @@ struct GTY(()) language_function {
 #define current_function_returns_abnormally \
   cp_function_chain->returns_abnormally
 
+/* Set to 0 at beginning of a function definition, set to 1 if we see an
+   obvious infinite loop.  This can have false positives and false
+   negatives, so it should only be used as a heuristic.  */
+
+#define current_function_infinite_loop cp_function_chain->infinite_loop
+
 /* Nonzero if we are processing a base initializer.  Zero elsewhere.  */
 #define in_base_initializer cp_function_chain->x_in_base_initializer
 
@@ -5671,6 +5681,7 @@ extern bool perform_or_defer_access_check	(tree, tree, tree,
 extern int stmts_are_full_exprs_p		(void);
 extern void init_cp_semantics			(void);
 extern tree do_poplevel				(tree);
+extern void break_maybe_infinite_loop		(void);
 extern void add_decl_expr			(tree);
 extern tree maybe_cleanup_point_expr_void	(tree);
 extern tree finish_expr_stmt			(tree);
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 5906653..bfe1daf 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -14000,6 +14000,8 @@ finish_function (int flags)
       && !current_function_returns_value && !current_function_returns_null
       /* Don't complain if we abort or throw.  */
       && !current_function_returns_abnormally
+      /* Don't complain if there's an infinite loop.  */
+      && !current_function_infinite_loop
       /* Don't complain if we are declared noreturn.  */
       && !TREE_THIS_VOLATILE (fndecl)
       && !DECL_NAME (DECL_RESULT (fndecl))
@@ -14064,6 +14066,7 @@ finish_function (int flags)
       f->x_return_value = NULL;
       f->bindings = NULL;
       f->extern_decl_map = NULL;
+      f->infinite_loops = NULL;
     }
   /* Clear out the bits we don't need.  */
   local_names = NULL;
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 3bc943b..9440df6 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -10636,6 +10636,8 @@ cp_parser_jump_statement (cp_parser* parser)
 	  gcc_assert ((in_statement & IN_SWITCH_STMT)
 		      || in_statement == IN_ITERATION_STMT);
 	  statement = finish_break_stmt ();
+	  if (in_statement == IN_ITERATION_STMT)
+	    break_maybe_infinite_loop ();
 	  break;
 	case IN_OMP_BLOCK:
 	  error_at (token->location, "invalid exit from OpenMP structured block");
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 2e7cf60..400a143 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -19670,6 +19670,10 @@ instantiate_decl (tree d, int defer_ok,
 	     so that finish_function knows where we are.  */
 	  input_location
 	    = DECL_STRUCT_FUNCTION (code_pattern)->function_end_locus;
+
+	  /* Remember if we saw an infinite loop in the template.  */
+	  current_function_infinite_loop
+	    = DECL_STRUCT_FUNCTION (code_pattern)->language->infinite_loop;
 	}
 
       /* We don't need the local specializations any more.  */
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index eb04266..d911cd5 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -486,6 +486,62 @@ push_cleanup (tree decl, tree cleanup, bool eh_only)
   CLEANUP_BODY (stmt) = push_stmt_list ();
 }
 
+/* Simple infinite loop tracking for -Wreturn-type.  We keep a stack of all
+   the current loops, represented by 'NULL_TREE' if we've seen a possible
+   exit, and 'error_mark_node' if not.  This is currently used only to
+   suppress the warning about a function with no return statements, and
+   therefore we don't bother noting returns as possible exits.  We also
+   don't bother with gotos.  */
+
+static void
+begin_maybe_infinite_loop (tree cond)
+{
+  /* Only track this while parsing a function, not during instantiation.  */
+  if (!cfun || (DECL_TEMPLATE_INSTANTIATION (current_function_decl)
+		&& !processing_template_decl))
+    return;
+  bool maybe_infinite = true;
+  if (cond)
+    {
+      cond = fold_non_dependent_expr (cond);
+      cond = maybe_constant_value (cond);
+      maybe_infinite = integer_nonzerop (cond);
+    }
+  vec_safe_push (cp_function_chain->infinite_loops,
+		 maybe_infinite ? error_mark_node : NULL_TREE);
+
+}
+
+/* A break is a possible exit for the current loop.  */
+
+void
+break_maybe_infinite_loop (void)
+{
+  if (!cfun)
+    return;
+  cp_function_chain->infinite_loops->last() = NULL_TREE;
+}
+
+/* If we reach the end of the loop without seeing a possible exit, we have
+   an infinite loop.  */
+
+static void
+end_maybe_infinite_loop (tree cond)
+{
+  if (!cfun || (DECL_TEMPLATE_INSTANTIATION (current_function_decl)
+		&& !processing_template_decl))
+    return;
+  tree current = cp_function_chain->infinite_loops->pop();
+  if (current != NULL_TREE)
+    {
+      cond = fold_non_dependent_expr (cond);
+      cond = maybe_constant_value (cond);
+      if (integer_nonzerop (cond))
+	current_function_infinite_loop = 1;
+    }
+}
+
+
 /* Begin a conditional that might contain a declaration.  When generating
    normal code, we want the declaration to appear before the statement
    containing the conditional.  When generating template code, we want the
@@ -732,7 +788,9 @@ begin_while_stmt (void)
 void
 finish_while_stmt_cond (tree cond, tree while_stmt, bool ivdep)
 {
-  finish_cond (&WHILE_COND (while_stmt), maybe_convert_cond (cond));
+  cond = maybe_convert_cond (cond);
+  finish_cond (&WHILE_COND (while_stmt), cond);
+  begin_maybe_infinite_loop (cond);
   if (ivdep && cond != error_mark_node)
     WHILE_COND (while_stmt) = build2 (ANNOTATE_EXPR,
 				      TREE_TYPE (WHILE_COND (while_stmt)),
@@ -747,6 +805,7 @@ finish_while_stmt_cond (tree cond, tree while_stmt, bool ivdep)
 void
 finish_while_stmt (tree while_stmt)
 {
+  end_maybe_infinite_loop (boolean_true_node);
   WHILE_BODY (while_stmt) = do_poplevel (WHILE_BODY (while_stmt));
 }
 
@@ -757,6 +816,7 @@ tree
 begin_do_stmt (void)
 {
   tree r = build_stmt (input_location, DO_STMT, NULL_TREE, NULL_TREE);
+  begin_maybe_infinite_loop (boolean_true_node);
   add_stmt (r);
   DO_BODY (r) = push_stmt_list ();
   return r;
@@ -784,6 +844,7 @@ void
 finish_do_stmt (tree cond, tree do_stmt, bool ivdep)
 {
   cond = maybe_convert_cond (cond);
+  end_maybe_infinite_loop (cond);
   if (ivdep && cond != error_mark_node)
     cond = build2 (ANNOTATE_EXPR, TREE_TYPE (cond), cond,
 		   build_int_cst (integer_type_node, annot_expr_ivdep_kind));
@@ -891,7 +952,9 @@ finish_for_init_stmt (tree for_stmt)
 void
 finish_for_cond (tree cond, tree for_stmt, bool ivdep)
 {
-  finish_cond (&FOR_COND (for_stmt), maybe_convert_cond (cond));
+  cond = maybe_convert_cond (cond);
+  finish_cond (&FOR_COND (for_stmt), cond);
+  begin_maybe_infinite_loop (cond);
   if (ivdep && cond != error_mark_node)
     FOR_COND (for_stmt) = build2 (ANNOTATE_EXPR,
 				  TREE_TYPE (FOR_COND (for_stmt)),
@@ -940,6 +1003,8 @@ finish_for_expr (tree expr, tree for_stmt)
 void
 finish_for_stmt (tree for_stmt)
 {
+  end_maybe_infinite_loop (boolean_true_node);
+
   if (TREE_CODE (for_stmt) == RANGE_FOR_STMT)
     RANGE_FOR_BODY (for_stmt) = do_poplevel (RANGE_FOR_BODY (for_stmt));
   else
@@ -968,6 +1033,8 @@ begin_range_for_stmt (tree scope, tree init)
 {
   tree r;
 
+  begin_maybe_infinite_loop (boolean_false_node);
+
   r = build_stmt (input_location, RANGE_FOR_STMT,
 		  NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE);
 
diff --git a/gcc/testsuite/g++.dg/warn/Wreturn-type-9.C b/gcc/testsuite/g++.dg/warn/Wreturn-type-9.C
new file mode 100644
index 0000000..1c4d5b8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wreturn-type-9.C
@@ -0,0 +1,60 @@
+// related to PR c++/55189
+// { dg-options "-Wreturn-type" }
+
+int f1()
+{
+  while (true) { }
+}
+int f2()
+{
+  while (true) { break; }
+} // { dg-warning "no return statement" }
+
+int f3()
+{
+  for (;;) {}
+}
+int f4()
+{
+  for (;;) {break;}
+} // { dg-warning "no return statement" }
+
+int f5()
+{
+  do {} while(true);
+}
+int f6()
+{
+  do {break;} while(true);
+} // { dg-warning "no return statement" }
+
+int f7()
+{
+  for(;;)
+    while (true) {break;}
+}
+
+int f8()
+{
+  for(;;)
+    {
+      while (true) {}
+      break;
+    }
+}
+
+template <class T>
+T f9()
+{
+  for(;;) { }
+}
+
+template int f9();
+
+template <class T>
+T f10()
+{
+  for(;;) { break; }
+} // { dg-warning "no return statement" }
+
+template int f10();

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2014-01-16 19:44 ` Jason Merrill
@ 2014-01-23  6:44   ` Sylvestre Ledru
  2014-01-23 18:48   ` Jason Merrill
  1 sibling, 0 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-01-23  6:44 UTC (permalink / raw)
  To: gcc-patches

On 16/01/2014 11:44, Jason Merrill wrote:
> My preference would be to turn -Wreturn-type on by default, but not
> create the separate -Wmissing-return flag.  As I argued in 2002, there
> should only be one flag.
I don't have any opinion on the subject. The separate option or not is
fine with me. I am just following an advice received :)

Sylvestre

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2013-12-20 17:54 Sylvestre Ledru
  2013-12-27  5:26 ` Chung-Ju Wu
@ 2014-01-16 19:44 ` Jason Merrill
  2014-01-23  6:44   ` Sylvestre Ledru
  2014-01-23 18:48   ` Jason Merrill
  1 sibling, 2 replies; 29+ messages in thread
From: Jason Merrill @ 2014-01-16 19:44 UTC (permalink / raw)
  To: Sylvestre Ledru, gcc-patches

My preference would be to turn -Wreturn-type on by default, but not 
create the separate -Wmissing-return flag.  As I argued in 2002, there 
should only be one flag.

To avoid spurious warnings on code with infinite loops we could add a 
simple check for infinite loops and suppress the warning in that case. 
Basically, if we see a loop with an always-true condition and no breaks.

Jason

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2013-12-27  5:32   ` Yury Gribov
@ 2014-01-14 17:49     ` Sylvestre Ledru
  0 siblings, 0 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2014-01-14 17:49 UTC (permalink / raw)
  To: gcc patches; +Cc: Chung-Ju Wu, Yury Gribov

[-- Attachment #1: Type: text/plain, Size: 4611 bytes --]

On 2013-12-27 06:32, Yury Gribov wrote:
> Chung-Wu wrote:
>> But I notice your ChangeLog formatting is not correct.
>>
>> You can refer to other entries in ChangeLog to refine yours,
>> and then resubmit the patch for review. :)
>
> Or - use contrib/mklog to autogenerate template ChangeLog for you.
>
> -Y
>
Thanks!
Just a small question, I am modifing almost 800 tests. Should I do the 
same?

Thanks,
Here it is:

gcc/c-family/ChangeLog:

2014-01-14  Sylvestre Ledru  <sylvestre@debian.org>

     * c.opt: -Wreturn-type enabled by default
         Introduce back the option -Wmissing-return (enabled by -Wall)
         It was included by default with -Wreturn-type

gcc/fortran/ChangeLog:

2014-01-14  Sylvestre Ledru  <sylvestre@debian.org>

     * options.c: Introduce back the option -Wmissing-return support

gcc/ChangeLog:

2014-01-14  Sylvestre Ledru  <sylvestre@debian.org>

     * doc/invoke.texi: Update of the documentation (-Wreturn-type 
enabled
         by default and -WMissing-return back)
     * tree-cfg.c: Likewise

Index: gcc/c-family/c.opt
===================================================================
--- gcc/c-family/c.opt    (révision 206218)
+++ gcc/c-family/c.opt    (copie de travail)
@@ -673,9 +673,13 @@
  Warn about returning a pointer/reference to a local or temporary 
variable.
   Wreturn-type
-C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC
C++ ObjC++,Wall)
+C ObjC C++ ObjC++ Var(warn_return_type) Init(1) Warning
  Warn whenever a function's return type defaults to \"int\" (C), or
about inconsistent return types (C++)
  +Wmissing-return
+C ObjC C++ ObjC++ Var(warn_missing_return) Warning LangEnabledBy(C 
ObjC
C++ ObjC++,Wall)
+Warn whenever control may reach end of non-void function
+
  Wselector
  ObjC ObjC++ Var(warn_selector) Warning
  Warn if a selector has multiple methods
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi    (révision 206218)
+++ gcc/doc/invoke.texi    (copie de travail)
@@ -261,7 +261,7 @@
  -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
  -Wpointer-arith  -Wno-pointer-to-int-cast @gol
  -Wredundant-decls  -Wno-return-local-addr @gol
--Wreturn-type  -Wsequence-point  -Wshadow @gol
+-Wreturn-type -Wmissing-return  -Wsequence-point  -Wshadow @gol
  -Wsign-compare  -Wsign-conversion -Wfloat-conversion @gol
  -Wsizeof-pointer-memaccess @gol
  -Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol
@@ -3339,6 +3339,7 @@
  -Wpointer-sign  @gol
  -Wreorder   @gol
  -Wreturn-type  @gol
+-Wmissing-return  @gol
  -Wsequence-point  @gol
  -Wsign-compare @r{(only in C++)}  @gol
  -Wstrict-aliasing  @gol
@@ -3795,8 +3796,14 @@
  message, even when @option{-Wno-return-type} is specified.  The only
  exceptions are @samp{main} and functions defined in system headers.
  -This warning is enabled by @option{-Wall}.
+@item -Wmissing-return
+@opindex Wmissing-return
+@opindex Wno-missing-return
+Warn whenever falling off the end of the function body (I.e. without
+any return).
  +This warning is enabled by @option{-Wall} for C and C++.
+
  @item -Wswitch
  @opindex Wswitch
  @opindex Wno-switch
Index: gcc/fortran/options.c
===================================================================
--- gcc/fortran/options.c    (révision 206218)
+++ gcc/fortran/options.c    (copie de travail)
@@ -717,6 +717,10 @@
        warn_return_type = value;
        break;
  +    case OPT_Wmissing_return:
+      warn_missing_return = value;
+      break;
+
      case OPT_Wsurprising:
        gfc_option.warn_surprising = value;
        break;
Index: gcc/tree-cfg.c
===================================================================
--- gcc/tree-cfg.c    (révision 206218)
+++ gcc/tree-cfg.c    (copie de travail)
@@ -8098,7 +8098,7 @@
     /* If we see "return;" in some basic block, then we do reach the 
end
       without returning a value.  */
-  else if (warn_return_type
+  else if (warn_missing_return
         && !TREE_NO_WARNING (cfun->decl)
         && EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds) > 0
         && !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (cfun->decl))))
@@ -8113,7 +8113,7 @@
            location = gimple_location (last);
            if (location == UNKNOWN_LOCATION)
            location = cfun->function_end_locus;
-          warning_at (location, OPT_Wreturn_type, "control reaches end
of non-void function");
+          warning_at (location, OPT_Wmissing_return, "control reaches
end of non-void function");
            TREE_NO_WARNING (cfun->decl) = 1;
            break;
          }


[-- Attachment #2: return-type-by-default-and-missing-return-test-suite.diff.gz --]
[-- Type: application/octet-stream, Size: 50774 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2013-12-27  5:26 ` Chung-Ju Wu
@ 2013-12-27  5:32   ` Yury Gribov
  2014-01-14 17:49     ` Sylvestre Ledru
  0 siblings, 1 reply; 29+ messages in thread
From: Yury Gribov @ 2013-12-27  5:32 UTC (permalink / raw)
  To: Chung-Ju Wu, Sylvestre Ledru; +Cc: gcc patches

Chung-Wu wrote:
 > But I notice your ChangeLog formatting is not correct.
 >
 > You can refer to other entries in ChangeLog to refine yours,
 > and then resubmit the patch for review. :)

Or - use contrib/mklog to autogenerate template ChangeLog for you.

-Y

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Patch] PR55189 enable -Wreturn-type by default
  2013-12-20 17:54 Sylvestre Ledru
@ 2013-12-27  5:26 ` Chung-Ju Wu
  2013-12-27  5:32   ` Yury Gribov
  2014-01-16 19:44 ` Jason Merrill
  1 sibling, 1 reply; 29+ messages in thread
From: Chung-Ju Wu @ 2013-12-27  5:26 UTC (permalink / raw)
  To: Sylvestre Ledru; +Cc: gcc patches

2013/12/21 Sylvestre Ledru <sylvestre@debian.org>:
> Hello
>
> Following this thread http://gcc.gnu.org/ml/gcc/2013-11/msg00260.html
> and this bug,
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55189
>
> I would like to propose the two following patches:
>
> I am activating -Wreturn-type by defaut and add the option -Wmissing-return
>
[snip]
>
> Index: gcc/ChangeLog
> ===================================================================
> --- gcc/ChangeLog       (révision 206154)
> +++ gcc/ChangeLog       (copie de travail)
> @@ -1,3 +1,11 @@
> +2013-12-20  Sylvestre Ledru  <sylvestre@debian.org>
> +
> +        PR target/55189
> +        * -Wreturn-type enabled by default.
> +       * Introduce back the option -Wmissing-return (enabled by -Wall)
> +       It was included by default with -Wreturn-type
> +       * Update all tests failing because of these changes.
> +
>  2013-12-20  Eric Botcazou  <ebotcazou@adacore.com>
>         * config/arm/arm.c (arm_expand_prologue): In a nested APCS frame with

Hi, Sylvestre,

Sorry I have no right to approve this patch.
But I notice your ChangeLog formatting is not correct.

You can refer to other entries in ChangeLog to refine yours,
and then resubmit the patch for review. :)


Best regards,
jasonwucj

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [Patch] PR55189 enable -Wreturn-type by default
@ 2013-12-20 17:54 Sylvestre Ledru
  2013-12-27  5:26 ` Chung-Ju Wu
  2014-01-16 19:44 ` Jason Merrill
  0 siblings, 2 replies; 29+ messages in thread
From: Sylvestre Ledru @ 2013-12-20 17:54 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 5047 bytes --]

Hello

Following this thread http://gcc.gnu.org/ml/gcc/2013-11/msg00260.html
and this bug,
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55189

I would like to propose the two following patches:

I am activating -Wreturn-type by defaut and add the option -Wmissing-return

In Wreturn-type-by-default-testsuite.diff.gz (as a gziped attachment,
too big for this ML), I am updating all the tests (792). I understand
why nobody did it before, it is a few days of work and not really
fascinating. ;)

Basically, there were several cases:
1) Add return 0; (or return true;)
to make sure that the function returns something

2) Add -Wno-return-type to dg-options / dg-lto-options when it is too
hard to construct the type to return

3) explicit declaration of the function like:
-t()
+void t()

4) idem with main
-main() {
+int main() {

If there is a consensus on the fact that these patches can be applied, I
don't have any issue with signing the copyright assignment.

Thanks,
Sylvestre


Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog	(révision 206154)
+++ gcc/ChangeLog	(copie de travail)
@@ -1,3 +1,11 @@
+2013-12-20  Sylvestre Ledru  <sylvestre@debian.org>
+
+        PR target/55189
+        * -Wreturn-type enabled by default.
+	* Introduce back the option -Wmissing-return (enabled by -Wall)
+	It was included by default with -Wreturn-type
+	* Update all tests failing because of these changes.
+
 2013-12-20  Eric Botcazou  <ebotcazou@adacore.com>
  	* config/arm/arm.c (arm_expand_prologue): In a nested APCS frame with
Index: gcc/c-family/c.opt
===================================================================
--- gcc/c-family/c.opt	(révision 206154)
+++ gcc/c-family/c.opt	(copie de travail)
@@ -673,9 +673,13 @@
 Warn about returning a pointer/reference to a local or temporary variable.
  Wreturn-type
-C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC
C++ ObjC++,Wall)
+C ObjC C++ ObjC++ Var(warn_return_type) Init(1) Warning
 Warn whenever a function's return type defaults to \"int\" (C), or
about inconsistent return types (C++)
 +Wmissing-return
+C ObjC C++ ObjC++ Var(warn_missing_return) Warning LangEnabledBy(C ObjC
C++ ObjC++,Wall)
+Warn whenever control may reach end of non-void function
+
 Wselector
 ObjC ObjC++ Var(warn_selector) Warning
 Warn if a selector has multiple methods
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(révision 206154)
+++ gcc/doc/invoke.texi	(copie de travail)
@@ -261,7 +261,7 @@
 -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
 -Wpointer-arith  -Wno-pointer-to-int-cast @gol
 -Wredundant-decls  -Wno-return-local-addr @gol
--Wreturn-type  -Wsequence-point  -Wshadow @gol
+-Wreturn-type -Wmissing-return  -Wsequence-point  -Wshadow @gol
 -Wsign-compare  -Wsign-conversion -Wfloat-conversion @gol
 -Wsizeof-pointer-memaccess @gol
 -Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol
@@ -3339,6 +3339,7 @@
 -Wpointer-sign  @gol
 -Wreorder   @gol
 -Wreturn-type  @gol
+-Wmissing-return  @gol
 -Wsequence-point  @gol
 -Wsign-compare @r{(only in C++)}  @gol
 -Wstrict-aliasing  @gol
@@ -3795,8 +3796,14 @@
 message, even when @option{-Wno-return-type} is specified.  The only
 exceptions are @samp{main} and functions defined in system headers.
 -This warning is enabled by @option{-Wall}.
+@item -Wmissing-return
+@opindex Wmissing-return
+@opindex Wno-missing-return
+Warn whenever falling off the end of the function body (I.e. without
+any return).
 +This warning is enabled by @option{-Wall} for C and C++.
+
 @item -Wswitch
 @opindex Wswitch
 @opindex Wno-switch
Index: gcc/fortran/options.c
===================================================================
--- gcc/fortran/options.c	(révision 206154)
+++ gcc/fortran/options.c	(copie de travail)
@@ -717,6 +717,10 @@
       warn_return_type = value;
       break;
 +    case OPT_Wmissing_return:
+      warn_missing_return = value;
+      break;
+
     case OPT_Wsurprising:
       gfc_option.warn_surprising = value;
       break;
Index: gcc/tree-cfg.c
===================================================================
--- gcc/tree-cfg.c	(révision 206154)
+++ gcc/tree-cfg.c	(copie de travail)
@@ -8098,7 +8098,7 @@
    /* If we see "return;" in some basic block, then we do reach the end
      without returning a value.  */
-  else if (warn_return_type
+  else if (warn_missing_return
 	   && !TREE_NO_WARNING (cfun->decl)
 	   && EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds) > 0
 	   && !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (cfun->decl))))
@@ -8113,7 +8113,7 @@
 	      location = gimple_location (last);
 	      if (location == UNKNOWN_LOCATION)
 		  location = cfun->function_end_locus;
-	      warning_at (location, OPT_Wreturn_type, "control reaches end of
non-void function");
+	      warning_at (location, OPT_Wmissing_return, "control reaches end
of non-void function");
 	      TREE_NO_WARNING (cfun->decl) = 1;
 	      break;
 	    }





[-- Attachment #2: return-type-by-default-and-missing-return-test-suite.diff.gz --]
[-- Type: application/gzip, Size: 51266 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2014-08-20 21:58 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-04 19:49 [Patch] PR55189 enable -Wreturn-type by default Sylvestre Ledru
2014-06-04 22:35 ` Mike Stump
2014-06-04 23:31 ` Joseph S. Myers
2014-06-05  9:33   ` Sylvestre Ledru
2014-06-05 18:01     ` Joseph S. Myers
2014-06-17 16:52       ` Sylvestre Ledru
2014-06-17 17:15         ` Joseph S. Myers
2014-06-17 17:37           ` Sylvestre Ledru
2014-06-17 17:41             ` Joseph S. Myers
2014-07-07 17:18               ` Sylvestre Ledru
2014-07-20 19:20                 ` Sylvestre Ledru
2014-07-30 22:10                 ` Joseph S. Myers
2014-08-11  7:44                   ` Sylvestre Ledru
2014-08-12 17:49                     ` Joseph S. Myers
2014-08-12 17:53                       ` Sylvestre Ledru
2014-08-14 17:01                       ` Sylvestre Ledru
  -- strict thread matches above, loose matches on Subject: below --
2014-08-14 18:49 Manuel López-Ibáñez
2014-08-15 16:28 ` Sylvestre Ledru
2014-08-19 22:03   ` Joseph S. Myers
2014-08-20 21:42     ` Sylvestre Ledru
2014-08-20 21:58       ` Joseph S. Myers
2013-12-20 17:54 Sylvestre Ledru
2013-12-27  5:26 ` Chung-Ju Wu
2013-12-27  5:32   ` Yury Gribov
2014-01-14 17:49     ` Sylvestre Ledru
2014-01-16 19:44 ` Jason Merrill
2014-01-23  6:44   ` Sylvestre Ledru
2014-01-23 18:48   ` Jason Merrill
2014-01-23 18:57     ` Sylvestre Ledru

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).