Gabriel Dos Reis <g...@integrable-solutions.net> writes:

> OK.

Thank you.

While bootstrapping the tree again, it appeared that an output
regression of the objc test objc.dg/foreach-7.m flew below my radar.

It's one of those typical cases where the first location pointed to by
the diagnostics points into the definition of a macro, instead of
pointing to its expansion point.  I have just forced that unique test to
run without -ftrack-macro-expansion.

This looks fairly obvious to me, but I am CC-ing Mike Stump, just in
case.

I have updated this patch to include the adjustment for
objc.dg/foreach-7.m.  All the other parts remained unchanged.

Tested on x86_64-unknown-linux-gnu against trunk, bootstrap still
underway.

gcc/testsuite/

        * objc.dg/foreach-7.m: Force the test case to run without
        -ftrack-macro-expansion.
        * c-c++-common/tm/attrib-1.c: Likewise.
        * 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 +++---
 gcc/testsuite/objc.dg/foreach-7.m                  |    9 ++++++---
 libstdc++-v3/scripts/testsuite_flags.in            |    2 +-
 29 files changed, 48 insertions(+), 41 deletions(-)

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 <j...@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 <j...@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 <jos...@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 <jos...@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/gcc/testsuite/objc.dg/foreach-7.m 
b/gcc/testsuite/objc.dg/foreach-7.m
index c565211..a828692 100644
--- a/gcc/testsuite/objc.dg/foreach-7.m
+++ b/gcc/testsuite/objc.dg/foreach-7.m
@@ -1,5 +1,8 @@
 /* Test basic Objective-C foreach syntax.  This tests warnings and errors.  */
-/* { dg-do compile } */
+/* 
+   { dg-options "-ftrack-macro-expansion=0" }
+   { dg-do compile } 
+*/
 
 #import "../objc-obj-c++-shared/TestsuiteObject.h"
 #import <objc/objc.h>
@@ -37,10 +40,10 @@ int main (void)
   id object = nil;
 
   for (typedef int my_typedef in array) /* { dg-error "declaration of 
non-variable" } */
-    ;                                   /* { dg-error "iterating variable in 
fast enumeration is not an object" "" { target *-*-* } 39 } */
+    ;                                   /* { dg-error "iterating variable in 
fast enumeration is not an object" "" { target *-*-* } 42 } */
 
   for (function () in nil) /* { dg-error "invalid iterating variable in fast 
enumeration" } */
-    ;                      /* { dg-error "iterating variable in fast 
enumeration is not an object" "" { target *-*-* } 42 } */
+    ;                      /* { dg-error "iterating variable in fast 
enumeration is not an object" "" { target *-*-* } 45 } */
 
   for (object_function () in nil) /* { dg-error "invalid iterating variable in 
fast enumeration" } */
     ;
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}
       ;;
-- 
                Dodji

Reply via email to