diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 59b0e40b0004..782c674375d6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2010-04-06 Taras Glek <taras@mozilla.com> + Jason Merrill <jason@redhat.com> + + * parser.c (cp_parser_class_specifier): Set class location to that + of IDENTIFIER_NODE instead of '{' when possible. + * semantics.c (begin_class_definition): Do not overide locations + with less precise ones. + 2010-04-06 Jason Merrill <jason@redhat.com> PR c++/43648 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 8a1bb9f600ed..e25c280f4867 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -16395,6 +16395,9 @@ cp_parser_class_head (cp_parser* parser, end_specialization (); --parser->num_template_parameter_lists; } + + if (type) + DECL_SOURCE_LOCATION (TYPE_NAME (type)) = type_start_token->location; *attributes_p = attributes; return type; } diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 1c47ded84d00..5cf4b693f26e 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2409,9 +2409,6 @@ begin_class_definition (tree t, tree attributes) pushtag (make_anon_name (), t, /*tag_scope=*/ts_current); } - /* Update the location of the decl. */ - DECL_SOURCE_LOCATION (TYPE_NAME (t)) = input_location; - if (TYPE_BEING_DEFINED (t)) { t = make_class_type (TREE_CODE (t)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 31103d12fb53..c0b46185d61a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,45 @@ +2010-04-06 Jason Merrill <jason@redhat.com> + + * g++.dg/cpp0x/pr31437.C: Adjust error location. + * g++.dg/ext/attrib18.C: Likewise. + * g++.dg/ext/bitfield2.C: Likewise. + * g++.dg/ext/bitfield4.C: Likewise. + * g++.dg/ext/visibility/warn2.C: Likewise. + * g++.dg/ext/visibility/warn3.C: Likewise. + * g++.dg/gomp/pr26690-1.C: Likewise. + * g++.dg/inherit/covariant7.C: Likewise. + * g++.dg/init/synth2.C: Likewise. + * g++.dg/lookup/using7.C: Likewise. + * g++.dg/other/crash-4.C: Likewise. + * g++.dg/other/error13.C: Likewise. + * g++.dg/other/error20.C: Likewise. + * g++.dg/parse/crash31.C: Likewise. + * g++.dg/parse/error16.C: Likewise. + * g++.dg/parse/error19.C: Likewise. + * g++.dg/parse/error27.C: Likewise. + * g++.dg/parse/error28.C: Likewise. + * g++.dg/parse/fused-params1.C: Likewise. + * g++.dg/template/error2.C: Likewise. + * g++.dg/template/local6.C: Likewise. + * g++.dg/template/qualttp15.C: Likewise. + * g++.dg/warn/Wnvdtor-2.C: Likewise. + * g++.dg/warn/anonymous-namespace-3.C: Likewise. + * g++.old-deja/g++.benjamin/15309-1.C: Likewise. + * g++.old-deja/g++.brendan/crash29.C: Likewise. + * g++.old-deja/g++.eh/spec6.C: Likewise. + * g++.old-deja/g++.jason/crash3.C: Likewise. + * g++.old-deja/g++.jason/destruct2.C: Likewise. + * g++.old-deja/g++.law/ctors5.C: Likewise. + * g++.old-deja/g++.law/ctors9.C: Likewise. + * g++.old-deja/g++.mike/p3538a.C: Likewise. + * g++.old-deja/g++.mike/p3538b.C: Likewise. + * g++.old-deja/g++.other/struct1.C: Likewise. + * g++.old-deja/g++.other/volatile1.C: Likewise. + * g++.old-deja/g++.pt/crash36.C: Likewise. + * g++.old-deja/g++.pt/derived3.C: Likewise. + * g++.old-deja/g++.robertl/eb109.C: Likewise. + * g++.old-deja/g++.robertl/eb4.C: Likewise. + 2010-04-06 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/43519 diff --git a/gcc/testsuite/g++.dg/cpp0x/pr31437.C b/gcc/testsuite/g++.dg/cpp0x/pr31437.C index 0e1a888138bc..812c695f4ec0 100644 --- a/gcc/testsuite/g++.dg/cpp0x/pr31437.C +++ b/gcc/testsuite/g++.dg/cpp0x/pr31437.C @@ -1,6 +1,6 @@ // { dg-options "-std=gnu++0x" } -template <typename... T> struct A -{ // { dg-error "candidates|A" } +template <typename... T> struct A // { dg-error "candidates|A" } +{ A(T* p) { // { dg-error "parameter packs|T" } (A<T...>*)(p); } diff --git a/gcc/testsuite/g++.dg/ext/attrib18.C b/gcc/testsuite/g++.dg/ext/attrib18.C index 0c3a072b5b36..ab9fea0950cb 100644 --- a/gcc/testsuite/g++.dg/ext/attrib18.C +++ b/gcc/testsuite/g++.dg/ext/attrib18.C @@ -2,8 +2,8 @@ // Test that we warn when an attribute preceding the class-key is ignored. // { dg-do compile } -__attribute__ ((packed)) struct A -{ // { dg-warning "attribute" } +__attribute__ ((packed)) struct A // { dg-warning "attribute" } +{ char c; int x; void f(); diff --git a/gcc/testsuite/g++.dg/ext/bitfield2.C b/gcc/testsuite/g++.dg/ext/bitfield2.C index 3d89505e2ef1..40effc786a3e 100644 --- a/gcc/testsuite/g++.dg/ext/bitfield2.C +++ b/gcc/testsuite/g++.dg/ext/bitfield2.C @@ -3,8 +3,8 @@ /* { dg-options "" } */ /* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ -struct t -{ /* { dg-message "note: Offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ +struct t /* { dg-message "note: Offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ +{ char a:4; char b:8; char c:4; diff --git a/gcc/testsuite/g++.dg/ext/bitfield4.C b/gcc/testsuite/g++.dg/ext/bitfield4.C index f9858d78c0e6..8dacfaf33cb0 100644 --- a/gcc/testsuite/g++.dg/ext/bitfield4.C +++ b/gcc/testsuite/g++.dg/ext/bitfield4.C @@ -2,8 +2,8 @@ /* { dg-options "" } */ /* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ -struct t -{ /* { dg-message "note: Offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ +struct t /* { dg-message "note: Offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ +{ char a:4; char b:8 __attribute__ ((packed)); char c:4; diff --git a/gcc/testsuite/g++.dg/ext/visibility/warn2.C b/gcc/testsuite/g++.dg/ext/visibility/warn2.C index 3a9637db3c7a..475179fd64be 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/warn2.C +++ b/gcc/testsuite/g++.dg/ext/visibility/warn2.C @@ -8,8 +8,8 @@ namespace N __attribute ((__visibility__ ("hidden"))) struct A { }; } -struct B -{ // { dg-warning "visibility" } +struct B // { dg-warning "visibility" } +{ N::A a; }; diff --git a/gcc/testsuite/g++.dg/ext/visibility/warn3.C b/gcc/testsuite/g++.dg/ext/visibility/warn3.C index 2d4ec402127c..d1d3ba486eba 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/warn3.C +++ b/gcc/testsuite/g++.dg/ext/visibility/warn3.C @@ -14,8 +14,8 @@ void A::f() { } // This gets a warning because B objects might rely // on hidden symbols from A. -struct B -{ // { dg-warning "visibility" } +struct B // { dg-warning "visibility" } +{ A a; }; diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-1.C b/gcc/testsuite/g++.dg/gomp/pr26690-1.C index 3b7a4f8d572c..c49c8b721801 100644 --- a/gcc/testsuite/g++.dg/gomp/pr26690-1.C +++ b/gcc/testsuite/g++.dg/gomp/pr26690-1.C @@ -1,8 +1,8 @@ // PR c++/26690 // { dg-do compile } -struct A -{ // { dg-message "A::A\\(const A&\\)" } +struct A // { dg-message "A::A\\(const A&\\)" } +{ A (int); // { dg-message "candidates" } }; diff --git a/gcc/testsuite/g++.dg/inherit/covariant7.C b/gcc/testsuite/g++.dg/inherit/covariant7.C index 596c679f2484..cbd58bb24e19 100644 --- a/gcc/testsuite/g++.dg/inherit/covariant7.C +++ b/gcc/testsuite/g++.dg/inherit/covariant7.C @@ -27,7 +27,7 @@ struct c4 : virtual c3, virtual c0, virtual c1 int m; }; -struct c6 : c0, c3, c4 -{ // { dg-warning "direct base" "" } +struct c6 : c0, c3, c4 // { dg-warning "direct base" "" } +{ virtual c1 &f2() volatile; }; diff --git a/gcc/testsuite/g++.dg/init/synth2.C b/gcc/testsuite/g++.dg/init/synth2.C index 795ce42893c8..624f10b2a4d6 100644 --- a/gcc/testsuite/g++.dg/init/synth2.C +++ b/gcc/testsuite/g++.dg/init/synth2.C @@ -5,8 +5,8 @@ struct G { G(G&); // { dg-message "" "candidate" } }; -class A -{ // { dg-error "no match" } +class A // { dg-error "no match" } +{ const G g; }; diff --git a/gcc/testsuite/g++.dg/lookup/using7.C b/gcc/testsuite/g++.dg/lookup/using7.C index b250c5823f57..69e27da4700e 100644 --- a/gcc/testsuite/g++.dg/lookup/using7.C +++ b/gcc/testsuite/g++.dg/lookup/using7.C @@ -3,8 +3,8 @@ template <typename T, bool=T::X> struct A int i; }; -template <typename T> struct B : A<T> -{ // { dg-error "incomplete" } +template <typename T> struct B : A<T> // { dg-error "incomplete" } +{ using A<T>::i; // { dg-error "incomplete" "incomplete" } // { dg-error "using" "using" { target *-*-* } 8 } }; diff --git a/gcc/testsuite/g++.dg/other/crash-4.C b/gcc/testsuite/g++.dg/other/crash-4.C index bc2c457f1b4d..d6247c44f36b 100644 --- a/gcc/testsuite/g++.dg/other/crash-4.C +++ b/gcc/testsuite/g++.dg/other/crash-4.C @@ -14,8 +14,8 @@ struct a int m; a(const a&); }; -struct b -{ // { dg-error "cannot bind packed field" "" { target { ! default_packed } } } +struct b // { dg-error "cannot bind packed field" "" { target { ! default_packed } } } +{ char c; a aa __attribute__((packed)); // { dg-warning "attribute ignored" "" { target default_packed } } }; diff --git a/gcc/testsuite/g++.dg/other/error13.C b/gcc/testsuite/g++.dg/other/error13.C index d3b1eabc0b2f..89e88478679e 100644 --- a/gcc/testsuite/g++.dg/other/error13.C +++ b/gcc/testsuite/g++.dg/other/error13.C @@ -1,7 +1,7 @@ //PR c++/28258 -struct A -{ // { dg-message "note" } +struct A // { dg-message "note" } +{ A(void x); // { dg-error "invalid use|incomplete type|candidates" } }; diff --git a/gcc/testsuite/g++.dg/other/error20.C b/gcc/testsuite/g++.dg/other/error20.C index 6033c0e783d2..6f3f778ab841 100644 --- a/gcc/testsuite/g++.dg/other/error20.C +++ b/gcc/testsuite/g++.dg/other/error20.C @@ -1,8 +1,8 @@ // PR c++/34275 // { dg-do compile } -struct A -{ // { dg-message "candidate is" } +struct A // { dg-message "candidate is" } +{ virtual A foo (); }; diff --git a/gcc/testsuite/g++.dg/parse/crash31.C b/gcc/testsuite/g++.dg/parse/crash31.C index c3fc6790a2fe..0068846755b8 100644 --- a/gcc/testsuite/g++.dg/parse/crash31.C +++ b/gcc/testsuite/g++.dg/parse/crash31.C @@ -1,5 +1,5 @@ -struct A -{ // { dg-error "forward declaration" } +struct A // { dg-error "forward declaration" } +{ A : A; // { dg-error "expected|incomplete" } A : B; // { dg-error "not declared|incomplete" } A : A(); // { dg-error "undefined type|incomplete" } diff --git a/gcc/testsuite/g++.dg/parse/error16.C b/gcc/testsuite/g++.dg/parse/error16.C index ba9aacc26e33..3d9dcc334e5b 100644 --- a/gcc/testsuite/g++.dg/parse/error16.C +++ b/gcc/testsuite/g++.dg/parse/error16.C @@ -3,7 +3,7 @@ struct A { - struct B {}; // { dg-error "12:previous definition of 'struct A::B'" } + struct B {}; // { dg-error "10:previous definition of 'struct A::B'" } }; struct A::B{}; // { dg-error "11:redefinition of 'struct A::B'" } diff --git a/gcc/testsuite/g++.dg/parse/error19.C b/gcc/testsuite/g++.dg/parse/error19.C index 39c2d7858373..0955e6a90760 100644 --- a/gcc/testsuite/g++.dg/parse/error19.C +++ b/gcc/testsuite/g++.dg/parse/error19.C @@ -1,8 +1,8 @@ // { dg-options "-fshow-column -fmessage-length=0 -ansi -pedantic-errors -Wno-long-long " } // PR C++/17867 -struct A -{ // { dg-message "1:candidate is:" } +struct A // { dg-message "8:candidate is:" } +{ A(int); }; diff --git a/gcc/testsuite/g++.dg/parse/error27.C b/gcc/testsuite/g++.dg/parse/error27.C index c07d1d3a7583..90cb231c0ac8 100644 --- a/gcc/testsuite/g++.dg/parse/error27.C +++ b/gcc/testsuite/g++.dg/parse/error27.C @@ -1,8 +1,8 @@ // { dg-options "-fshow-column -ansi -pedantic-errors -Wno-long-long" } // PR c++/20152 -struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "24:previous definition of 'struct KrSelectionMode'" } -struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "52:previous definition of 'struct KrKDESelectionMode'" } +struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "8:previous definition of 'struct KrSelectionMode'" } +struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "8:previous definition of 'struct KrKDESelectionMode'" } struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "8:redefinition of 'struct KrSelectionMode'" } struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "8:redefinition of 'struct KrKDESelectionMode'" } KrKDESelectionMode krKDESelectionMode; diff --git a/gcc/testsuite/g++.dg/parse/error28.C b/gcc/testsuite/g++.dg/parse/error28.C index 50ad960e09e9..7e235a13b21d 100644 --- a/gcc/testsuite/g++.dg/parse/error28.C +++ b/gcc/testsuite/g++.dg/parse/error28.C @@ -2,7 +2,7 @@ // PR c++/21908 struct virt { virt () {} virt (int i) {} }; -struct der : public virtual virt { // { dg-message "34:der::der" } +struct der : public virtual virt { // { dg-message "8:der::der" } der (int i) : virt(i) {} // { dg-message "3:candidates are: der" } }; struct top : public der { diff --git a/gcc/testsuite/g++.dg/parse/fused-params1.C b/gcc/testsuite/g++.dg/parse/fused-params1.C index adb47a0522ae..33732fc2871d 100644 --- a/gcc/testsuite/g++.dg/parse/fused-params1.C +++ b/gcc/testsuite/g++.dg/parse/fused-params1.C @@ -2,8 +2,8 @@ // Origin: Alexander Zvyagin <Alexander.Zviagine@cern.ch> // { dg-do compile } -template <int N,typename T> struct A -{ // { dg-error "" } +template <int N,typename T> struct A // { dg-error "" } +{ typedef T X; template <int M> void foo (const A<M,X>&); }; diff --git a/gcc/testsuite/g++.dg/template/error2.C b/gcc/testsuite/g++.dg/template/error2.C index 86486a2e7f26..5bd9b870e7a5 100644 --- a/gcc/testsuite/g++.dg/template/error2.C +++ b/gcc/testsuite/g++.dg/template/error2.C @@ -15,8 +15,8 @@ template<class T> struct X template<class T > struct Derived { - class Nested : public X<T> - { // { dg-message "instantiated" "" } + class Nested : public X<T> // { dg-message "instantiated" "" } + { }; Nested m; // { dg-message "instantiated" "" } diff --git a/gcc/testsuite/g++.dg/template/local6.C b/gcc/testsuite/g++.dg/template/local6.C index c691c4c789b8..6c5e8ac7022c 100644 --- a/gcc/testsuite/g++.dg/template/local6.C +++ b/gcc/testsuite/g++.dg/template/local6.C @@ -1,5 +1,5 @@ -template <class T> struct PCVector2 -{ // { dg-message "candidate is" } +template <class T> struct PCVector2 // { dg-message "candidate is" } +{ template <class T2> PCVector2(const PCVector2<T> &cv) ; PCVector2<T> operator- (const PCVector2<T> &ov) const diff --git a/gcc/testsuite/g++.dg/template/qualttp15.C b/gcc/testsuite/g++.dg/template/qualttp15.C index 0f97c32fcb87..b1c61195d42f 100644 --- a/gcc/testsuite/g++.dg/template/qualttp15.C +++ b/gcc/testsuite/g++.dg/template/qualttp15.C @@ -12,8 +12,8 @@ template <template <class> class TT> struct X TT<int> y; }; -template <class T> struct X<T::template B> -{ // { dg-error "previous" } +template <class T> struct X<T::template B> // { dg-error "previous" } +{ T z; }; diff --git a/gcc/testsuite/g++.dg/warn/Wnvdtor-2.C b/gcc/testsuite/g++.dg/warn/Wnvdtor-2.C index cd078ac05213..d40de3d7c1a5 100644 --- a/gcc/testsuite/g++.dg/warn/Wnvdtor-2.C +++ b/gcc/testsuite/g++.dg/warn/Wnvdtor-2.C @@ -6,37 +6,37 @@ // destructor, in which case it would be possible but unsafe to delete // an instance of a derived class through a pointer to the base class. -struct A -{ // { dg-bogus "non-virtual destructor" } +struct A // { dg-bogus "non-virtual destructor" } +{ protected: ~A(); public: virtual void f() = 0; }; -struct B -{ // { dg-bogus "non-virtual destructor" } +struct B // { dg-bogus "non-virtual destructor" } +{ private: ~B(); public: virtual void f() = 0; }; -struct C -{ // { dg-warning "non-virtual destructor" } +struct C // { dg-warning "non-virtual destructor" } +{ virtual void f() = 0; }; -struct D -{ // { dg-warning "non-virtual destructor" } +struct D // { dg-warning "non-virtual destructor" } +{ ~D(); virtual void f() = 0; }; struct E; -struct F -{ // { dg-warning "non-virtual destructor" } +struct F // { dg-warning "non-virtual destructor" } +{ protected: friend class E; ~F(); @@ -44,8 +44,8 @@ public: virtual void f() = 0; }; -struct G -{ // { dg-warning "non-virtual destructor" } +struct G // { dg-warning "non-virtual destructor" } +{ private: friend class E; ~G(); diff --git a/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C b/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C index fee48b46017d..0ba6790f4c99 100644 --- a/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C +++ b/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C @@ -7,7 +7,7 @@ struct B { std::auto_ptr<A> p; }; #line 10 "foo.C" -struct C -{ // { dg-warning "uses the anonymous namespace" } +struct C // { dg-warning "uses the anonymous namespace" } +{ std::auto_ptr<A> p; }; diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C index ae13ee843147..aa5530fff7fd 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C @@ -9,8 +9,8 @@ public: ~bahamian (); }; -class miami : public bahamian -{ // { dg-warning "" } // WARNING - +class miami : public bahamian // { dg-warning "" } // WARNING - +{ public: miami (); ~miami (); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C index fd2fa2ff9860..33be95f20447 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C @@ -6,8 +6,8 @@ union Value Value(){} }; -struct GlobalAddress -{// { dg-message "note" } +struct GlobalAddress // { dg-message "note" } +{ GlobalAddress(Value *nvar){} // { dg-message "candidates" } }; diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec6.C b/gcc/testsuite/g++.old-deja/g++.eh/spec6.C index b6e7f2645523..015bbefdfb54 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec6.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/spec6.C @@ -122,8 +122,8 @@ struct B1 : A { }; -struct C : A, A1 -{ // { dg-error "" } looser throw - A::~A() +struct C : A, A1 // { dg-error "" } looser throw - A::~A() +{ virtual void foo() throw(int); // { dg-error "" } looser throw - A::foo virtual void bar() throw(int); // { dg-error "" } looser throw - A1::bar }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C index 5d5b3af9cb4f..e94cc7c97815 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C @@ -2,8 +2,8 @@ // Bug: g++ tries to generate initialization semantics for a Node from an int, // and fails. -struct Node -{ // { dg-message "note" } +struct Node // { dg-message "note" } +{ Node* child[2]; }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C index a28860f93686..62c8f8fba2f6 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C @@ -10,8 +10,8 @@ struct X struct Y : public X {}; -struct Z : public Y, public X -{}; // { dg-warning "" } +struct Z : public Y, public X // { dg-warning "" } +{}; void foo () { diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C index 02c5fb06fe4a..7c376229b697 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C @@ -5,8 +5,8 @@ // Subject: bug in handling static const object of the enclosing class // Date: Tue, 1 Sep 92 10:38:44 EDT -class X -{ // { dg-message "1:X::X\\(const X&\\)" } implicit constructor +class X // { dg-message "7:X::X\\(const X&\\)" } implicit constructor +{ private: int x; public: diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C index 17207f6acf5a..43ba1262c95b 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C @@ -20,8 +20,8 @@ Foo::Foo(int aa) { } -struct var_Foo: public Foo -{ // { dg-message "note" } base.*// ERROR - in class.* +struct var_Foo: public Foo // { dg-message "note" } base.*// ERROR - in class.* +{ var_Foo* operator-> () {return this;} }; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C b/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C index 1da61f390d7a..a2c985386e4d 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C @@ -24,8 +24,8 @@ const ccObjectInfo& ccHandle<T>::repInvariant (int) class ccHandleBase : public ccObjectInfo {}; -class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo -{ // { dg-warning "" } +class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo // { dg-warning "" } +{ public: virtual const ccObjectInfo& ri (int); }; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C b/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C index e9fcb0cba01b..96ba124a1265 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C @@ -26,8 +26,8 @@ const ccObjectInfo& ccHandle<T>::repInvariant (int) class ccHandleBase : public ccObjectInfo {}; -class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo -{ // { dg-warning "" } +class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo // { dg-warning "" } +{ public: virtual const ccObjectInfo& repInvariant (int); }; diff --git a/gcc/testsuite/g++.old-deja/g++.other/struct1.C b/gcc/testsuite/g++.old-deja/g++.other/struct1.C index b1f943f604fc..699d524b9e8b 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/struct1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/struct1.C @@ -6,36 +6,36 @@ // Duplicate definitions are wrong, we should just cough // politely, but we used to die horribly. -class Y -{ // { dg-error "" } previous definition +class Y // { dg-error "" } previous definition +{ }; class Y // { dg-error "" } redefinition { }; -template<class T> class X -{ // { dg-error "" } previous definition +template<class T> class X // { dg-error "" } previous definition +{ }; template<class T> class X // { dg-error "" } redefinition { }; -template<class T> class X<T *> -{ // { dg-error "" } previous definition +template<class T> class X<T *> // { dg-error "" } previous definition +{ }; template<class T> class X<T *> // { dg-error "" } redefinition { }; -template<> class X<int> -{ // { dg-error "" } previous definition +template<> class X<int> // { dg-error "" } previous definition +{ }; template<> class X<int> // { dg-error "" } redefinition { }; -template<> class X<int *> -{ // { dg-error "" } previous definition +template<> class X<int *> // { dg-error "" } previous definition +{ }; template<> class X<int *> // { dg-error "" } redefinition { diff --git a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C index 9e72ea266a18..5c5872870360 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C @@ -2,9 +2,8 @@ // Test that failed lvalue-to-rvalue conversion of vf doesn't crash the // compiler. -class f_class -{ }; // { dg-message "candidates" "candidates" } -// { dg-message "note" "note" { target *-*-* } 6 } +class f_class // { dg-message "note" "candidates" } +{ }; volatile f_class ret_v_f_class() diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash36.C b/gcc/testsuite/g++.old-deja/g++.pt/crash36.C index 9bf99d162807..fa9401bee03a 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash36.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash36.C @@ -13,8 +13,8 @@ struct iterator { template <class Iterator> -struct reverse_iterator : public -iterator<typename iterator_traits<Iterator>::iterator_category> { // { dg-message "instantiated" } no type iterator_category +struct reverse_iterator : public // { dg-message "instantiated" } no type iterator_category +iterator<typename iterator_traits<Iterator>::iterator_category> { protected: Iterator current; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/derived3.C b/gcc/testsuite/g++.old-deja/g++.pt/derived3.C index 2c5604923253..b0d1d3bb2b80 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/derived3.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/derived3.C @@ -5,8 +5,8 @@ template<class T> class X { - class Y : public T - { // { dg-error "base type .* fails to be" } + class Y : public T // { dg-error "base type .* fails to be" } + { }; Y y; // { dg-message "instantiated" } }; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C index 5a70e194439e..dae13b67bd57 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C @@ -19,8 +19,8 @@ inline istream& operator>>(istream& is, Empty& ) { return is;} template<class VertexType, class EdgeType> -class Graph -{ // { dg-message "note" } candidates +class Graph // { dg-message "note" } candidates +{ public: // public type interface typedef std::map<int, EdgeType > Successor; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C index 5f82e1fc9264..dfd3d6ceda4e 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C @@ -16,8 +16,8 @@ public: int i; }; -class some_derived : public some_base - { // { dg-message "note" } +class some_derived : public some_base // { dg-message "note" } + { public: class derived_func_args; void func(derived_func_args &); diff --git a/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc b/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc index a874814f42d2..e09ab757b546 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc @@ -33,6 +33,6 @@ int main() } // { dg-error "deleted function" "" { target *-*-* } 72 } -// { dg-error "used here" "" { target *-*-* } 31 } +// { dg-error "used here" "" { target *-*-* } 30 } // { dg-error "first required here" "" { target *-*-* } 30 } // { dg-excess-errors "copy constructor" } diff --git a/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc b/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc index 012482299e8c..e02ab105911a 100644 --- a/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc +++ b/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc @@ -32,7 +32,7 @@ void test02() test_base io1; test_base io2 = io1; } -// { dg-error "within this context" "" { target *-*-* } 27 } +// { dg-error "within this context" "" { target *-*-* } 26 } // { dg-error "synthesized" "" { target *-*-* } 33 } // { dg-error "is private" "" { target *-*-* } 785 } // { dg-error "copy constructor" "" { target *-*-* } 0 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc index cafaf39e5154..ba3dd763bd51 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc @@ -36,4 +36,4 @@ int main() } // { dg-error "invalid use of incomplete" "" { target *-*-* } 28 } -// { dg-error "declaration of" "" { target *-*-* } 62 } +// { dg-error "declaration of" "" { target *-*-* } 61 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc index 0b73904e4a79..2347a14c0e72 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc @@ -36,4 +36,4 @@ int main() } // { dg-error "invalid use of incomplete" "" { target *-*-* } 28 } -// { dg-error "declaration of" "" { target *-*-* } 105 } +// { dg-error "declaration of" "" { target *-*-* } 104 }