aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2010-04-06 17:13:07 -0400
committerJason Merrill <jason@gcc.gnu.org>2010-04-06 17:13:07 -0400
commitd4a2b4862344454ab42a57a6a4b50461d1fa6f81 (patch)
treebce7108409edea2346357626feb21cb76d8a5755 /gcc
parent9310a3e26905c65e86acfb6634252dab2d346fd0 (diff)
downloadgcc-d4a2b4862344454ab42a57a6a4b50461d1fa6f81.zip
gcc-d4a2b4862344454ab42a57a6a4b50461d1fa6f81.tar.gz
gcc-d4a2b4862344454ab42a57a6a4b50461d1fa6f81.tar.bz2
parser.c (cp_parser_class_specifier): Set class location to that of IDENTIFIER_NODE instead of '{' when possible.
* 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. From-SVN: r158030
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog8
-rw-r--r--gcc/cp/parser.c3
-rw-r--r--gcc/cp/semantics.c3
-rw-r--r--gcc/testsuite/ChangeLog42
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr31437.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/attrib18.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/bitfield2.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/bitfield4.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/warn2.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/warn3.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr26690-1.C4
-rw-r--r--gcc/testsuite/g++.dg/inherit/covariant7.C4
-rw-r--r--gcc/testsuite/g++.dg/init/synth2.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using7.C4
-rw-r--r--gcc/testsuite/g++.dg/other/crash-4.C4
-rw-r--r--gcc/testsuite/g++.dg/other/error13.C4
-rw-r--r--gcc/testsuite/g++.dg/other/error20.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/crash31.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error16.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/error19.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error27.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error28.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/fused-params1.C4
-rw-r--r--gcc/testsuite/g++.dg/template/error2.C4
-rw-r--r--gcc/testsuite/g++.dg/template/local6.C4
-rw-r--r--gcc/testsuite/g++.dg/template/qualttp15.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wnvdtor-2.C24
-rw-r--r--gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/crash29.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.eh/spec6.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/crash3.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/destruct2.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/ctors5.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/ctors9.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p3538a.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p3538b.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/struct1.C20
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/volatile1.C5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/crash36.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/derived3.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb109.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb4.C4
43 files changed, 147 insertions, 98 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 59b0e40..782c674 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 8a1bb9f..e25c280 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 1c47ded..5cf4b69 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 31103d1..c0b4618 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 0e1a888..812c695 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 0c3a072..ab9fea09 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 3d89505..40effc7 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 f9858d7..8dacfaf 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 3a9637d..475179f 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 2d4ec40..d1d3ba4 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 3b7a4f8..c49c8b7 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 596c679..cbd58bb 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 795ce42..624f10b 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 b250c58..69e27da 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 bc2c457..d6247c4 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 d3b1eab..89e8847 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 6033c0e..6f3f778 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 c3fc679..0068846 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 ba9aacc..3d9dcc3 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 39c2d78..0955e6a 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 c07d1d3..90cb231 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 50ad960..7e235a1 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 adb47a0..33732fc2 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 86486a2..5bd9b870 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 c691c4c..6c5e8ac 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 0f97c32..b1c6119 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 cd078ac..d40de3d 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 fee48b4..0ba6790 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 ae13ee8..aa5530f 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 fd2fa2f..33be95f 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 b6e7f26..015bbef 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 5d5b3af..e94cc7c 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 a28860f..62c8f8f 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 02c5fb0..7c37622 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 17207f6..43ba126 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 1da61f3..a2c9853 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 e9fcb0c..96ba124 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 b1f943f..699d524 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 9e72ea2..5c58728 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 9bf99d1..fa9401b 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 2c56049..b0d1d3b 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 5a70e19..dae13b6 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 5f82e1f..dfd3d6c 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 &);