diff mbox

[12/13] Adjust relevant test cases wrt -ftrack-macro-expansion=[0|2]

Message ID m3d36vq4kt.fsf@redhat.com
State New
Headers show

Commit Message

Dodji Seketeli April 25, 2012, 2:16 p.m. UTC
Even after all the patches I have already submitted for this
-ftrack-macro-expansion business, some test cases where errors happens
on tokens that are defined in macros see their output change in an
incompatible way, when you run them with or without
-ftrack-macro-expansion.

I think this is expected, because the (spelling) locus inside the
definition of the macro pointed to with -ftrack-macro-expansion is
different from the locus of the expansion point of the macro pointed
to without -ftrack-macro-expansion.

In those cases this patch either adjusts the test case and forces it
be run either with -ftrack-macro-expansion, or it just forces it to be
run without -ftrack-macro-expansion.

There are so many libstdc++ tests that were failing because of that
benign issue that I preferred to just run them with
-ftrack-macro-expansion diabled, after inspecting each of them to be
sure there was nothing more serious underneath.  I believe we can latter
turn on -ftrack-macro-expansion there on a case by case basis.

Boostrapped on x86_64-unknown-linux-gnu against trunk with and without
-ftrack-macro-expansion turned on.

gcc/testsuite/

	* c-c++-common/tm/attrib-1.c: Force the test case to run without
	-ftrack-macro-expansion.
	* c-c++-common/warn-ommitted-condop.c: Likewise.
	* gcc.dg/assign-warn-1.c: Likewise.
	* gcc.dg/assign-warn-2.c: Likewise.
	* gcc.dg/attr-alloc_size.c: Likewise.
	* gcc.dg/builtin-stringop-chk-1.c: Likewise.
	* gcc.dg/builtin-stringop-chk-2.c: Likewise.
	* gcc.dg/builtin-strncat-chk-1.c: Likewise.
	* gcc.dg/c90-const-expr-9.c: Likewise.
	* gcc.dg/c99-const-expr-9.c: Likewise.
	* gcc.dg/cpp/direct2.c: Likewise.  Adjust.
	* gcc.dg/cpp/direct2s.c: Likewise.
	* gcc/testsuite/gcc.dg/cpp/pr28709.c: Likewise.
	* gcc.dg/cpp/pragma-diagnostic-1.c: Likewise.
	* gcc.dg/dfp/composite-type.c: Likewise.
	* gcc.dg/uninit-6-O0.c: Adjust the test case and force it to run
	with -ftrack-macro-expansion
	* g++.dg/cpp0x/constexpr-ex3.C: Likewise.
	* g++.dg/cpp0x/constexpr-overflow.C: Likewise.
	* g++.dg/ext/cleanup-1.C: Likewise.
	* g++.dg/ext/gnu-inline-global-reject.C: Likewise.
	* g++.dg/template/sfinae10.C: Likewise.
	* g++.dg/tm/wrap-2.C: Likewise.
	* g++.dg/warn/Wconversion-real-integer.C: Likewise.
	* g++.dg/warn/Wsign-conversion.C: Likewise.
	* g++.dg/warn/multiple-overflow-warn-1.C: Likewise.
	* g++.old-deja/g++.mike/p10769b.C: Likewise.
	* g++.dg/warn/Wdouble-promotion.C: Adjust the test case and force
	it to run with -ftrack-macro-expansion.
	* libstdc++-v3/scripts/testsuite_flags.in: By default, run the
	test cases without -ftrack-macro-expansion.
---
 gcc/testsuite/c-c++-common/tm/attrib-1.c           |    2 +-
 gcc/testsuite/c-c++-common/warn-ommitted-condop.c  |    2 +-
 gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C         |    2 +-
 gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C    |    2 +-
 gcc/testsuite/g++.dg/ext/cleanup-1.C               |    2 +-
 .../g++.dg/ext/gnu-inline-global-reject.C          |    2 +-
 gcc/testsuite/g++.dg/template/sfinae10.C           |    2 +-
 gcc/testsuite/g++.dg/tm/wrap-2.C                   |    2 +-
 .../g++.dg/warn/Wconversion-real-integer.C         |    2 +-
 gcc/testsuite/g++.dg/warn/Wdouble-promotion.C      |    6 +++---
 gcc/testsuite/g++.dg/warn/Wsign-conversion.C       |    2 +-
 .../g++.dg/warn/multiple-overflow-warn-1.C         |    2 +-
 gcc/testsuite/g++.old-deja/g++.mike/p10769b.C      |    2 +-
 gcc/testsuite/gcc.dg/assign-warn-1.c               |    2 +-
 gcc/testsuite/gcc.dg/assign-warn-2.c               |    2 +-
 gcc/testsuite/gcc.dg/attr-alloc_size.c             |    2 +-
 gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c      |    2 +-
 gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c      |    2 +-
 gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c       |    2 +-
 gcc/testsuite/gcc.dg/c90-const-expr-9.c            |    2 +-
 gcc/testsuite/gcc.dg/c99-const-expr-9.c            |    2 +-
 gcc/testsuite/gcc.dg/cpp/direct2.c                 |   12 +++++++-----
 gcc/testsuite/gcc.dg/cpp/direct2s.c                |    2 +-
 gcc/testsuite/gcc.dg/cpp/pr28709.c                 |    8 +++++---
 gcc/testsuite/gcc.dg/cpp/pragma-diagnostic-1.c     |    2 +-
 gcc/testsuite/gcc.dg/dfp/composite-type.c          |    2 +-
 gcc/testsuite/gcc.dg/uninit-6-O0.c                 |    6 +++---
 libstdc++-v3/scripts/testsuite_flags.in            |    2 +-
 28 files changed, 42 insertions(+), 38 deletions(-)

Comments

Gabriel Dos Reis April 25, 2012, 3:25 p.m. UTC | #1
On Wed, Apr 25, 2012 at 9:16 AM, Dodji Seketeli <dodji@redhat.com> wrote:
> Even after all the patches I have already submitted for this
> -ftrack-macro-expansion business, some test cases where errors happens
> on tokens that are defined in macros see their output change in an
> incompatible way, when you run them with or without
> -ftrack-macro-expansion.
>
> I think this is expected, because the (spelling) locus inside the
> definition of the macro pointed to with -ftrack-macro-expansion is
> different from the locus of the expansion point of the macro pointed
> to without -ftrack-macro-expansion.
>
> In those cases this patch either adjusts the test case and forces it
> be run either with -ftrack-macro-expansion, or it just forces it to be
> run without -ftrack-macro-expansion.
>
> There are so many libstdc++ tests that were failing because of that
> benign issue that I preferred to just run them with
> -ftrack-macro-expansion diabled, after inspecting each of them to be
> sure there was nothing more serious underneath.  I believe we can latter
> turn on -ftrack-macro-expansion there on a case by case basis.
>
> Boostrapped on x86_64-unknown-linux-gnu against trunk with and without
> -ftrack-macro-expansion turned on.

OK.

-- Gaby
Benjamin Kosnik April 25, 2012, 10:57 p.m. UTC | #2
Hey hey! Looking good Dodji. Can't wait to use this stuff.

> There are so many libstdc++ tests that were failing because of that
> benign issue that I preferred to just run them with
> -ftrack-macro-expansion diabled, after inspecting each of them to be
> sure there was nothing more serious underneath.  I believe we can
> latter turn on -ftrack-macro-expansion there on a case by case basis.

Seems perfectly reasonable. I volunteer to look at the
libstdc++testsuite  changes once your patches are in checked in to
trunk. 

-benjamin
diff mbox

Patch

diff --git a/gcc/testsuite/c-c++-common/tm/attrib-1.c b/gcc/testsuite/c-c++-common/tm/attrib-1.c
index 536aeb3..534fa0e 100644
--- a/gcc/testsuite/c-c++-common/tm/attrib-1.c
+++ b/gcc/testsuite/c-c++-common/tm/attrib-1.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-fgnu-tm" } */
+/* { dg-options "-fgnu-tm -ftrack-macro-expansion=0" } */
 
 #define TC	__attribute__((transaction_callable))
 #define TU	__attribute__((transaction_unsafe))
diff --git a/gcc/testsuite/c-c++-common/warn-ommitted-condop.c b/gcc/testsuite/c-c++-common/warn-ommitted-condop.c
index de92b8f..0726f04 100644
--- a/gcc/testsuite/c-c++-common/warn-ommitted-condop.c
+++ b/gcc/testsuite/c-c++-common/warn-ommitted-condop.c
@@ -1,4 +1,4 @@ 
-/* { dg-options "-Wparentheses" } */
+/* { dg-options "-Wparentheses -ftrack-macro-expansion=0" } */
 
 extern void f2 (int);
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
index 08552cd..5c0b1e2 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
@@ -1,4 +1,4 @@ 
-// { dg-options "-std=c++0x" }
+// { dg-options "-std=c++0x -ftrack-macro-expansion=0" }
 
 #define SA(X) static_assert (X, #X)
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C
index 9b3b1fa..3eb27aa 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C
@@ -1,4 +1,4 @@ 
-// { dg-options "-std=c++0x -w" }
+// { dg-options "-std=c++0x -w -ftrack-macro-expansion=0" }
 
 #include <limits.h>
 extern constexpr int max_s = INT_MAX + 1;  // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/ext/cleanup-1.C b/gcc/testsuite/g++.dg/ext/cleanup-1.C
index 8e83537..7cf14c9 100644
--- a/gcc/testsuite/g++.dg/ext/cleanup-1.C
+++ b/gcc/testsuite/g++.dg/ext/cleanup-1.C
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-Wall" } */
+/* { dg-options "-Wall -ftrack-macro-expansion=0" } */
 /* Validate expected warnings and errors.  */
 
 #define U	__attribute__((unused))
diff --git a/gcc/testsuite/g++.dg/ext/gnu-inline-global-reject.C b/gcc/testsuite/g++.dg/ext/gnu-inline-global-reject.C
index d9e2660..fc7385d 100644
--- a/gcc/testsuite/g++.dg/ext/gnu-inline-global-reject.C
+++ b/gcc/testsuite/g++.dg/ext/gnu-inline-global-reject.C
@@ -4,7 +4,7 @@ 
 */
 
 /* { dg-do compile } */
-/* { dg-options " -ansi -Wno-long-long" } */
+/* { dg-options " -ansi -Wno-long-long -ftrack-macro-expansion=0" } */
 
 #include "gnu-inline-common.h"
 
diff --git a/gcc/testsuite/g++.dg/template/sfinae10.C b/gcc/testsuite/g++.dg/template/sfinae10.C
index c6cb12f..3b1d26b 100644
--- a/gcc/testsuite/g++.dg/template/sfinae10.C
+++ b/gcc/testsuite/g++.dg/template/sfinae10.C
@@ -1,7 +1,7 @@ 
 // DR 339
 //
 // Test of the use of various unary operators with SFINAE
-
+// { dg-options "-fmessage-length=0 -pedantic-errors -Wno-long-long -ftrack-macro-expansion=0 " }
 // Boilerplate helpers
 typedef char yes_type;
 struct no_type { char data[2]; };
diff --git a/gcc/testsuite/g++.dg/tm/wrap-2.C b/gcc/testsuite/g++.dg/tm/wrap-2.C
index 564fbf8..e2948c8 100644
--- a/gcc/testsuite/g++.dg/tm/wrap-2.C
+++ b/gcc/testsuite/g++.dg/tm/wrap-2.C
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-fgnu-tm" } */
+/* { dg-options "-fgnu-tm -ftrack-macro-expansion=0" } */
 
 #define W(X)	__attribute__((transaction_wrap(X)))
 void f1(void);
diff --git a/gcc/testsuite/g++.dg/warn/Wconversion-real-integer.C b/gcc/testsuite/g++.dg/warn/Wconversion-real-integer.C
index 282ac13..3b6d1f3 100644
--- a/gcc/testsuite/g++.dg/warn/Wconversion-real-integer.C
+++ b/gcc/testsuite/g++.dg/warn/Wconversion-real-integer.C
@@ -3,7 +3,7 @@ 
    gcc/testsuite/gcc.dg/Wconversion-real-integer.c */
 
 /* { dg-do compile }
-/* { dg-options "-Wconversion" } */
+/* { dg-options "-Wconversion -ftrack-macro-expansion=0" } */
 /* { dg-require-effective-target int32plus } */
 #include <limits.h>
 
diff --git a/gcc/testsuite/g++.dg/warn/Wdouble-promotion.C b/gcc/testsuite/g++.dg/warn/Wdouble-promotion.C
index 9b4044f..98d2eed 100644
--- a/gcc/testsuite/g++.dg/warn/Wdouble-promotion.C
+++ b/gcc/testsuite/g++.dg/warn/Wdouble-promotion.C
@@ -1,11 +1,11 @@ 
 /* { dg-do compile } */
-/* { dg-options "-Wdouble-promotion" } */
+/* { dg-options "-Wdouble-promotion -ftrack-macro-expansion=2" } */
 
 #include <stddef.h>
 
 /* Some targets do not provide <complex.h> so we define I ourselves.  */
 #define I 1.0iF
-#define ID ((_Complex double)I)
+#define ID ((_Complex double)I) // { dg-warning "implicit" }
 
 float f;
 double d;
@@ -36,7 +36,7 @@  usual_arithmetic_conversions(void)
 
   local_cf = cf + 1.0;       /* { dg-warning "implicit" } */
   local_cf = cf - d;         /* { dg-warning "implicit" } */
-  local_cf = cf + 1.0 * ID;  /* { dg-warning "implicit" } */
+  local_cf = cf + 1.0 * ID;  /* { dg-message "expanded from here" } */
   local_cf = cf - cd;        /* { dg-warning "implicit" } */
   
   local_f = i ? f : d;       /* { dg-warning "implicit" } */
diff --git a/gcc/testsuite/g++.dg/warn/Wsign-conversion.C b/gcc/testsuite/g++.dg/warn/Wsign-conversion.C
index 83fe2ed..f6a0ccc 100644
--- a/gcc/testsuite/g++.dg/warn/Wsign-conversion.C
+++ b/gcc/testsuite/g++.dg/warn/Wsign-conversion.C
@@ -3,7 +3,7 @@ 
    C++ equivalent of gcc/testsuite/gcc.dg/Wsign-conversion.c  */
 
 // { dg-do compile } 
-// { dg-options "-fsigned-char -Wsign-conversion" } 
+// { dg-options "-fsigned-char -Wsign-conversion -ftrack-macro-expansion=0" } 
 #include <limits.h>
 
 void fsc (signed char sc);
diff --git a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C
index 4899302..c941c13 100644
--- a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C
+++ b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C
@@ -1,6 +1,6 @@ 
 /* PR c/19978 : Test for duplicated warnings (unary operators).  */
 /* { dg-do compile } */
-/* { dg-options "-Woverflow" } */
+/* { dg-options "-Woverflow -ftrack-macro-expansion=0" } */
 
 #include <limits.h>
 
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
index 9210a45..9c2dd29 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
@@ -1,5 +1,5 @@ 
 // { dg-do assemble  }
-// { dg-options "" }
+// { dg-options "-ftrack-macro-expansion=0" }
 // prms-id: 10769
 
 #define PMF2PF(PMF) ((void (*)())(PMF))
diff --git a/gcc/testsuite/gcc.dg/assign-warn-1.c b/gcc/testsuite/gcc.dg/assign-warn-1.c
index ae70242..f26a544 100644
--- a/gcc/testsuite/gcc.dg/assign-warn-1.c
+++ b/gcc/testsuite/gcc.dg/assign-warn-1.c
@@ -1,7 +1,7 @@ 
 /* Test diagnostics for bad implicit type conversions.  */
 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
 /* { dg-do compile } */
-/* { dg-options "-pedantic" } */
+/* { dg-options "-pedantic -ftrack-macro-expansion=0" } */
 
 #define TESTARG(ID, TL, TR) void ID##F(TL); void ID##F2(TR x) { ID##F(x); } extern int dummy
 #define TESTARP(ID, TL, TR) struct { void (*x)(TL); } ID##Fp; void ID##F2(TR x) { ID##Fp.x(x); } extern int dummy
diff --git a/gcc/testsuite/gcc.dg/assign-warn-2.c b/gcc/testsuite/gcc.dg/assign-warn-2.c
index 7813b72..1e5eb1c 100644
--- a/gcc/testsuite/gcc.dg/assign-warn-2.c
+++ b/gcc/testsuite/gcc.dg/assign-warn-2.c
@@ -2,7 +2,7 @@ 
    -pedantic-errors test.  */
 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
 /* { dg-do compile } */
-/* { dg-options "-pedantic-errors" } */
+/* { dg-options "-pedantic-errors -ftrack-macro-expansion=0" } */
 
 #define TESTARG(ID, TL, TR) void ID##F(TL); void ID##F2(TR x) { ID##F(x); } extern int dummy
 #define TESTARP(ID, TL, TR) struct { void (*x)(TL); } ID##Fp; void ID##F2(TR x) { ID##Fp.x(x); } extern int dummy
diff --git a/gcc/testsuite/gcc.dg/attr-alloc_size.c b/gcc/testsuite/gcc.dg/attr-alloc_size.c
index 47d7c00..e8129ce 100644
--- a/gcc/testsuite/gcc.dg/attr-alloc_size.c
+++ b/gcc/testsuite/gcc.dg/attr-alloc_size.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -Wall" } */
+/* { dg-options "-O2 -Wall -ftrack-macro-expansion=0" } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
index e9fb7db..beecab6 100644
--- a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
+++ b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
@@ -1,7 +1,7 @@ 
 /* Test whether buffer overflow warnings for __*_chk builtins
    are emitted properly.  */
 /* { dg-do compile } */
-/* { dg-options "-O2 -std=gnu99" } */
+/* { dg-options "-O2 -std=gnu99 -ftrack-macro-expansion=0" } */
 /* { dg-options "-mstructure-size-boundary=8 -O2 -std=gnu99" { target arm*-*-* } } */
 
 extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c b/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
index adccd0f..7c2bb60 100644
--- a/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
+++ b/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
@@ -3,7 +3,7 @@ 
    incorrectly determined to be 0 while it should be (size_t) -1
    (== unknown).  */
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -ftrack-macro-expansion=0" } */
 
 #include "../gcc.c-torture/execute/builtins/chk.h"
    
diff --git a/gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c b/gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c
index 80d7b9d..44677f1 100644
--- a/gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c
+++ b/gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c
@@ -1,7 +1,7 @@ 
 /* Test whether buffer overflow warnings for __strncat_chk builtin
    are emitted properly.  */
 /* { dg-do compile } */
-/* { dg-options "-O2 -std=gnu99" } */
+/* { dg-options "-O2 -std=gnu99 -ftrack-macro-expansion=0" } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.dg/c90-const-expr-9.c b/gcc/testsuite/gcc.dg/c90-const-expr-9.c
index 0d5d8c1..4793a14 100644
--- a/gcc/testsuite/gcc.dg/c90-const-expr-9.c
+++ b/gcc/testsuite/gcc.dg/c90-const-expr-9.c
@@ -3,7 +3,7 @@ 
    expansion.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors -ftrack-macro-expansion=0" } */
 
 struct s {
   int a;
diff --git a/gcc/testsuite/gcc.dg/c99-const-expr-9.c b/gcc/testsuite/gcc.dg/c99-const-expr-9.c
index a0a6a96..11e0b2c 100644
--- a/gcc/testsuite/gcc.dg/c99-const-expr-9.c
+++ b/gcc/testsuite/gcc.dg/c99-const-expr-9.c
@@ -3,7 +3,7 @@ 
    expansion.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors -ftrack-macro-expansion=0" } */
 
 struct s {
   int a;
diff --git a/gcc/testsuite/gcc.dg/cpp/direct2.c b/gcc/testsuite/gcc.dg/cpp/direct2.c
index 858dec7..1ce40bf 100644
--- a/gcc/testsuite/gcc.dg/cpp/direct2.c
+++ b/gcc/testsuite/gcc.dg/cpp/direct2.c
@@ -4,18 +4,20 @@ 
 /* Test of prohibition on directives which result from macro expansion.
    See also direct2s.c */
 
-/* { dg-do compile } */
+/* 
+   { dg-options "-ftrack-macro-expansion=0" }
+   { dg-do compile } */
 
 #define HASH #
 #define HASHDEFINE #define
 #define HASHINCLUDE #include
 
 HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
-/*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 13 }*/
-int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } 13 }*/
+/*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 15 }*/
+int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } 15 }*/
 
 HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
-/*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 17 }*/
+/*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 19 }*/
 int resync_parser_2;
 
 void g1 ()
@@ -43,4 +45,4 @@  void f ()
 #define starslash *##/
 
 slashstar starslash /* { dg-error "parse error|syntax error|expected" "not a comment" } */
-/* { dg-error "does not give" "paste warning(s)" { target *-*-* } 45 } */
+/* { dg-error "does not give" "paste warning(s)" { target *-*-* } 47 } */
diff --git a/gcc/testsuite/gcc.dg/cpp/direct2s.c b/gcc/testsuite/gcc.dg/cpp/direct2s.c
index 9d0cc01..5923214 100644
--- a/gcc/testsuite/gcc.dg/cpp/direct2s.c
+++ b/gcc/testsuite/gcc.dg/cpp/direct2s.c
@@ -6,7 +6,7 @@ 
    should be identical.  */
 
 /* { dg-do compile } */
-/* { dg-options "-save-temps -ansi -pedantic-errors" } */
+/* { dg-options "-save-temps -ansi -pedantic-errors -ftrack-macro-expansion=0" } */
 
 #define HASH #
 #define HASHDEFINE #define
diff --git a/gcc/testsuite/gcc.dg/cpp/pr28709.c b/gcc/testsuite/gcc.dg/cpp/pr28709.c
index 11cccbe..cb1755a 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr28709.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr28709.c
@@ -1,8 +1,10 @@ 
 /* Copyright (C) 2006 Free Software Foundation, Inc.  */
 /* PR preprocessor/28709 */
 
-/* { dg-do compile } */
+/* { dg-options "-ftrack-macro-expansion=0" }
+   { dg-do compile } */
+
 #define foo - ## >>
 foo;
-/* { dg-error "expected identifier.*'-'" "" { target *-*-* } 6 } */
-/* { dg-error pasting "" { target *-*-* } 6 } */
+/* { dg-error "expected identifier.*'-'" "" { target *-*-* } 8 } */
+/* { dg-error pasting "" { target *-*-* } 8 } */
diff --git a/gcc/testsuite/gcc.dg/cpp/pragma-diagnostic-1.c b/gcc/testsuite/gcc.dg/cpp/pragma-diagnostic-1.c
index 3a2f9da..add7360 100644
--- a/gcc/testsuite/gcc.dg/cpp/pragma-diagnostic-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/pragma-diagnostic-1.c
@@ -1,5 +1,5 @@ 
 /*
-  { dg-options "-Wuninitialized" }
+  { dg-options "-Wuninitialized -ftrack-macro-expansion=0" }
   { dg-do compile }
 */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/composite-type.c b/gcc/testsuite/gcc.dg/dfp/composite-type.c
index 69ecb14..6bf35f5 100644
--- a/gcc/testsuite/gcc.dg/dfp/composite-type.c
+++ b/gcc/testsuite/gcc.dg/dfp/composite-type.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O -Wall" } */
+/* { dg-options "-O -Wall -ftrack-macro-expansion=0" } */
 
 /* C99 6.2.7: Compatible type and composite type.  */
 
diff --git a/gcc/testsuite/gcc.dg/uninit-6-O0.c b/gcc/testsuite/gcc.dg/uninit-6-O0.c
index e3fefe5..fe9815e 100644
--- a/gcc/testsuite/gcc.dg/uninit-6-O0.c
+++ b/gcc/testsuite/gcc.dg/uninit-6-O0.c
@@ -2,7 +2,7 @@ 
    This one inspired by java/class.c:build_utf8_ref.  */
 
 /* { dg-do compile } */
-/* { dg-options "-Wuninitialized" } */
+/* { dg-options "-Wuninitialized -ftrack-macro-expansion=2" } */
 
 #include <stddef.h>
 
@@ -24,7 +24,7 @@  do {								\
      tmp->car = 0; tmp->cdr = 0; tmp->type = TYPE;		\
      tmp->data = VALUE;						\
      if (TREE->car)						\
-	 LAST->cdr = tmp;					\
+	 LAST->cdr = tmp;	  /* { dg-bogus "field" "uninitialized variable warning" { xfail *-*-* } } */				\
      else							\
 	 TREE->car = tmp;					\
      LAST = tmp;						\
@@ -39,7 +39,7 @@  make_something(int a, int b, int c)
     rv = malloc (sizeof (struct tree));
     rv->car = 0;
 
-    APPEND(rv, field, INTEGER_T, a);  /* { dg-bogus "field" "uninitialized variable warning" { xfail *-*-* } } */
+    APPEND(rv, field, INTEGER_T, a);
     APPEND(rv, field, PTR_T, b);
     APPEND(rv, field, INTEGER_T, c);
 
diff --git a/libstdc++-v3/scripts/testsuite_flags.in b/libstdc++-v3/scripts/testsuite_flags.in
index f77784b..7b16bb1 100755
--- a/libstdc++-v3/scripts/testsuite_flags.in
+++ b/libstdc++-v3/scripts/testsuite_flags.in
@@ -54,7 +54,7 @@  case ${query} in
       echo ${CC}
       ;;
     --cxxflags)
-      CXXFLAGS_default="-D_GLIBCXX_ASSERT -fmessage-length=0"
+      CXXFLAGS_default="-D_GLIBCXX_ASSERT -fmessage-length=0 -ftrack-macro-expansion=0"
       CXXFLAGS_config="@SECTION_FLAGS@ @CXXFLAGS@ @EXTRA_CXX_FLAGS@"
       echo ${CXXFLAGS_default} ${CXXFLAGS_config}
       ;;