diff options
author | Jason Merrill <jason@redhat.com> | 2011-11-09 12:53:53 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-11-09 12:53:53 -0500 |
commit | e399136a6ae3137747eecb5d433c63c1540d86d5 (patch) | |
tree | ef66da2f881f42b9e287ef9512b9c7730f71d5b6 /gcc/testsuite/g++.old-deja | |
parent | 754ca64333dc22cb5225f9d0e6b618ddea8ff378 (diff) | |
download | gcc-e399136a6ae3137747eecb5d433c63c1540d86d5.zip gcc-e399136a6ae3137747eecb5d433c63c1540d86d5.tar.gz gcc-e399136a6ae3137747eecb5d433c63c1540d86d5.tar.bz2 |
Run most tests in both C++98 and C++11 modes.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_c++11): New.
(check_effective_target_c++98): New.
* lib/g++-dg.exp (g++-dg-runtest): New.
* [various.exp]: Use g++-dg-runtest.
* [various.C]: Fix for C++11 mode.
gcc/cp/
* Make-lang.in (check_g++_parallelize): Add dg-torture.exp.
(check-c++0x): Obsolete.
/
* Makefile.def (language=c++): Remove check-c++0x.
* Makefile.in (check-gcc-c++): Regenerate.
From-SVN: r181222
Diffstat (limited to 'gcc/testsuite/g++.old-deja')
22 files changed, 33 insertions, 43 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C b/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C index d3e121e..d41c26b 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } // prms-id: 12475 #include <limits.h> diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C index 3c98692..5fd31a6a 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } // GROUPS passed old-abort typedef __SIZE_TYPE__ size_t; typedef void (*RF_Ptr)(void *); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C index 1327f5a..544d59b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C @@ -5,7 +5,7 @@ class Thing { public: - typedef enum { GOOD_THING, BAD_THING, } ThingType ; // { dg-error "" } comma + typedef enum { GOOD_THING, BAD_THING, } ThingType ; // { dg-error "" "comma" { target c++98 } } Thing (ThingType type) : thingType (type) { } ~Thing () { } private: @@ -15,7 +15,7 @@ private: class Group { public: - typedef enum { THIS_GROUP, THAT_GROUP, } GroupType ; // { dg-error "" } comma + typedef enum { THIS_GROUP, THAT_GROUP, } GroupType ; // { dg-error "" "comma" { target c++98 } } Group (GroupType type) : groupType (type), groupCount (0) { } ~Group () { } void append (Thing* const &entry) { groupCount ++ ; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C index 009333a..9c10560 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C @@ -6,7 +6,7 @@ class X { oneMask = 0x0000FFFF, twoMask = 0x000F0000, - thiMask = 0xFFF00000, // { dg-error "comma at end" } + thiMask = 0xFFF00000, // { dg-error "comma at end" "" { target c++98 } } }; unsigned int foo; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C index ecf6fbf..bbdda4b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C @@ -6,7 +6,7 @@ class foo1 enum foo1_enum { ENUM1, - ENUM2, // { dg-error "comma at end" } + ENUM2, // { dg-error "comma at end" "" { target c++98 } } }; }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C index 88ecc73..d8a7d1b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C @@ -2,7 +2,7 @@ // GROUPS passed enums enum fig { figgy, - pudding, // { dg-error "comma at end" } + pudding, // { dg-error "comma at end" "" { target c++98 } } }; class X { diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C b/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C index ecd85b4..209ea8c 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C @@ -5,7 +5,7 @@ class B { friend class A; enum { - bEnum = 1, // { dg-error "comma at end" } + bEnum = 1, // { dg-error "comma at end" "" { target c++98 } } }; int bArray[ bEnum ]; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init2.C b/gcc/testsuite/g++.old-deja/g++.brendan/init2.C index 0bf0aba..1b376dc 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init2.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/init2.C @@ -2,4 +2,4 @@ // GROUPS passed initialization // this should give an error in require_required_type about not // being allowed to have an initializer list in an argument list. -int f(int a = {1});// { dg-error "" } .* +int f(int a = {1});// { dg-error "" "" { target c++98 } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init4.C b/gcc/testsuite/g++.old-deja/g++.brendan/init4.C index aa2bfb6..d3d1ffd 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init4.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/init4.C @@ -2,4 +2,4 @@ // GROUPS passed initialization struct CharList { int i; }; -const CharList& terminals = { 1 }; // { dg-error "initializer lists" } c++0x +const CharList& terminals = { 1 }; // { dg-error "initializer lists" "" { target c++98 } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C index 09242a4..d2e4909 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C @@ -4,7 +4,7 @@ class X { public: enum e { New // { dg-error "conflicts with previous" } - , // { dg-error "comma at end" } + , // { dg-error "comma at end" "" { target c++98 } } }; static int New(int); // { dg-error "declaration of" } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cond.C b/gcc/testsuite/g++.old-deja/g++.jason/cond.C index a6e5ba0..b1e692e 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/cond.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/cond.C @@ -52,7 +52,7 @@ int main() // { dg-error "is initialized like a variable" "var" { target *-*-* } 51 } ; - if (int a[2] = {1, 2}) // { dg-error "extended init" } + if (int a[2] = {1, 2}) // { dg-error "extended init" "" { target c++98 } } ; } diff --git a/gcc/testsuite/g++.old-deja/g++.law/init1.C b/gcc/testsuite/g++.old-deja/g++.law/init1.C index 1727e38..3cce388 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/init1.C +++ b/gcc/testsuite/g++.old-deja/g++.law/init1.C @@ -9,12 +9,12 @@ public: class bar { public: - foo f[3] = { 1, 2, 3 }; // works: f[0] = 1, f[1] = 2, f[2] = 3 // { dg-error "" } ANSI C++ forbids initialization of member f; + foo f[3] = { 1, 2, 3 }; // works: f[0] = 1, f[1] = 2, f[2] = 3 // { dg-error "" "" { target c++98 } } ANSI C++ forbids initialization of member f; }; class bar2 { public: - foo f[3] = { foo(1), foo(2), foo(3) }; // { dg-error "" } ANSI C++ forbids initialization of member f; + foo f[3] = { foo(1), foo(2), foo(3) }; // { dg-error "" "" { target c++98 } } ANSI C++ forbids initialization of member f; // does not compile -- error: field initializer is not constant }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators32.C b/gcc/testsuite/g++.old-deja/g++.law/operators32.C index 20d148d..9e1a356 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/operators32.C +++ b/gcc/testsuite/g++.old-deja/g++.law/operators32.C @@ -7,7 +7,7 @@ // template <class T> -void ffree(long rows, T** array) // { dg-message "note" } +void ffree(long rows, T** array) { for( long i = 0; i < rows; i++ ) delete [] array[i]; // delete row @@ -21,7 +21,7 @@ return array = new T[size]; } template <class T> -T** allocate2d(long d1, long d2, T**& array) // { dg-message "note" } +T** allocate2d(long d1, long d2, T**& array) { if( allocate1d(d1, array) != 0 ) { @@ -49,9 +49,7 @@ foo() {std::cout << "foo created" << std::endl; } }; foo **f2; -allocate2d(d1, d2, f2);// { dg-error "" } type.*// ERROR - trying to.* -// { dg-message "candidate" "candidate note" { target *-*-* } 52 } -ffree(d1, f2);// { dg-error "" } type.*// ERROR - trying to.* -// { dg-message "candidate" "candidate note" { target *-*-* } 54 } +allocate2d(d1, d2, f2);// { dg-error "" "" { target c++98 } } +ffree(d1, f2);// { dg-error "" "" { target c++98 } } } diff --git a/gcc/testsuite/g++.old-deja/g++.other/anon9.C b/gcc/testsuite/g++.old-deja/g++.other/anon9.C index a364db8..d458b6b 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/anon9.C +++ b/gcc/testsuite/g++.old-deja/g++.other/anon9.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } // Test that we properly diagnose an attempt to use an anonymous class // in declaring an external function. diff --git a/gcc/testsuite/g++.old-deja/g++.other/linkage1.C b/gcc/testsuite/g++.old-deja/g++.other/linkage1.C index 556ef97..2fa2dec 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/linkage1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/linkage1.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } typedef struct { int i; } *p; diff --git a/gcc/testsuite/g++.old-deja/g++.other/linkage2.C b/gcc/testsuite/g++.old-deja/g++.other/linkage2.C index 2385b22..974cd63 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/linkage2.C +++ b/gcc/testsuite/g++.old-deja/g++.other/linkage2.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } // From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> extern "C" { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum6.C b/gcc/testsuite/g++.old-deja/g++.pt/enum6.C index 254b48b..48bdbb0 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum6.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/enum6.C @@ -8,7 +8,7 @@ void fn(T) { enum tern { H, L, X, U }; - vector<tern> ternvec; // { dg-error "" } composed from a local type + vector<tern> ternvec; // { dg-error "" "" { target c++98 } } composed from a local type } template void fn(int); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C index dc9c6c9..1f53a75 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C @@ -18,7 +18,7 @@ template int S<int>::t; // { dg-error "duplicate explicit instantiation" } template class S<double>; template class S<double>; // { dg-error "duplicate explicit instantiation" } -extern template void f(double); // { dg-error "extern" } extern not allowed +extern template void f(double); // { dg-error "extern" "" { target c++98 } } inline template class S<float>; // { dg-error "inline" } inline not allowed template <class T> diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C index 8802e98..19f1591 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C @@ -13,30 +13,22 @@ public: }; template <void (A::*)() > -void g() {} // { dg-message "void g" } +void g() {} template <int A::*> -void h() {} // { dg-message "void h" } +void h() {} int main() { g<&A::f>(); h<&A::i>(); g<&B::f>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 24 } h<&B::j>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 26 } - g<(void (A::*)()) &A::f>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 28 } - h<(int A::*) &A::i>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 30 } + g<(void (A::*)()) &A::f>(); // { dg-error "" "" { xfail c++11 } } + h<(int A::*) &A::i>(); // { dg-error "" "" { xfail c++11 } } g<(void (A::*)()) &B::f>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 32 } h<(int A::*) &B::j>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 34 } - g<(void (A::*)()) 0>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 36 } - h<(int A::*) 0>(); // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 38 } + g<(void (A::*)()) 0>(); // { dg-error "" "" { target c++98 } } + h<(int A::*) 0>(); // { dg-error "" "" { target c++98 } } return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t29.C b/gcc/testsuite/g++.old-deja/g++.pt/t29.C index bcc94a3..f664f54 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/t29.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/t29.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } template <class X, int n> X f (auto X (*x)[n]) { return (*x)[n/2]; } extern int i[30]; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t30.C b/gcc/testsuite/g++.old-deja/g++.pt/t30.C index 45da04c..b0c4f2f 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/t30.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/t30.C @@ -1,4 +1,4 @@ -// { dg-do assemble } +// { dg-do assemble { target c++98 } } template <class X, int n> X f (auto X (*x)[n]) { return (*x)[n/2]; } extern int i[30], i2[33]; diff --git a/gcc/testsuite/g++.old-deja/old-deja.exp b/gcc/testsuite/g++.old-deja/old-deja.exp index ce53b5f..c941f40 100644 --- a/gcc/testsuite/g++.old-deja/old-deja.exp +++ b/gcc/testsuite/g++.old-deja/old-deja.exp @@ -21,7 +21,7 @@ load_lib g++-dg.exp # If a testcase doesn't have special options, use these. global DEFAULT_CXXFLAGS if ![info exists DEFAULT_CXXFLAGS] then { - set DEFAULT_CXXFLAGS " -ansi -pedantic-errors -Wno-long-long" + set DEFAULT_CXXFLAGS " -pedantic-errors -Wno-long-long" } # Initialize `dg'. @@ -32,7 +32,7 @@ dg-init set tests [lsort [find $srcdir/$subdir *.C]] # Main loop. -dg-runtest $tests "" $DEFAULT_CXXFLAGS +g++-dg-runtest $tests $DEFAULT_CXXFLAGS # All done. dg-finish |