* lib/prune.exp: Prune "note"s.
* g++.dg/uninit-pred-3_b.C: Remove dg-excess-errors.
* g++.dg/ext/injected-ttp.C: Specify -std=c++98.
* g++.dg/template/dependent-expr3.C: Likewise.
* g++.dg/parse/template7.C: Likewise.
* g++.old-deja/g++.bugs/900119_01.C: Likewise.
* g++.old-deja/g++.jason/rfg10.C: Likewise.
* g++.old-deja/g++.pt/friend38.C: Likewise.
* g++.old-deja/g++.pt/crash32.C: Likewise.
* g++.old-deja/g++.other/init4.C: Likewise.
* g++.old-deja/g++.other/friend8.C: Likewise.
* g++.dg/ext/complex7.C: Adjust expected output.
* g++.dg/diagnostic/method1.C: Likewise.
* g++.dg/parse/parameter-declaration-2.C: Likewise.
* g++.dg/parse/crash33.C: Likewise.
* g++.dg/other/warning1.C: Likewise.
* g++.dg/init/pr29571.C: Likewise.
* g++.dg/warn/overflow-warn-1.C: Likewise.
* g++.dg/warn/overflow-warn-3.C: Likewise.
* g++.dg/warn/overflow-warn-4.C: Likewise.
* g++.old-deja/g++.oliva/template1.C: Likewise.
From-SVN: r174886
2011-06-09 Jason Merrill <jason@redhat.com>
+ * lib/prune.exp: Prune "note"s.
+ * g++.dg/uninit-pred-3_b.C: Remove dg-excess-errors.
+
+ * g++.dg/ext/injected-ttp.C: Specify -std=c++98.
+ * g++.dg/template/dependent-expr3.C: Likewise.
+ * g++.dg/parse/template7.C: Likewise.
+ * g++.old-deja/g++.bugs/900119_01.C: Likewise.
+ * g++.old-deja/g++.jason/rfg10.C: Likewise.
+ * g++.old-deja/g++.pt/friend38.C: Likewise.
+ * g++.old-deja/g++.pt/crash32.C: Likewise.
+ * g++.old-deja/g++.other/init4.C: Likewise.
+ * g++.old-deja/g++.other/friend8.C: Likewise.
+
+ * g++.dg/ext/complex7.C: Adjust expected output.
+ * g++.dg/diagnostic/method1.C: Likewise.
+ * g++.dg/parse/parameter-declaration-2.C: Likewise.
+ * g++.dg/parse/crash33.C: Likewise.
+ * g++.dg/other/warning1.C: Likewise.
+ * g++.dg/init/pr29571.C: Likewise.
+ * g++.dg/warn/overflow-warn-1.C: Likewise.
+ * g++.dg/warn/overflow-warn-3.C: Likewise.
+ * g++.dg/warn/overflow-warn-4.C: Likewise.
+ * g++.old-deja/g++.oliva/template1.C: Likewise.
+
* g++.dg/cpp0x/regress/error-recovery1.C: Adjust.
* g++.dg/parse/template7.C: Adjust.
{
bar <int> ();
}
+
+// { dg-prune-output "without object" }
{
static const _Complex double x = 1.0 + 2.0i;
};
+
+// { dg-prune-output "constexpr. needed" }
// Test for doing the right thing with injected-class-name used as template
// type argument. This is an extension from DR 176.
-// { dg-options "-pedantic" }
+// { dg-options "-pedantic -std=c++98" }
template <class T>
struct A { };
struct A
{
static const int i = 0/0 + ""; // { dg-warning "division by zero" }
- // { dg-error "field initializer is not constant" "" { target *-*-* } 5 }
+ // { dg-error "field initializer is not constant|not a constant-expression" "" { target *-*-* } 5 }
static const int j = int(i);
};
struct S
{
- static const float inf = 1.0f / 0.0f; // { dg-warning "1.0|float|initialization" }
- static const float nan = 0.0f / 0.0f; // { dg-warning "0.0|float|initialization" }
+ static const float inf = 1.0f / 0.0f; // { dg-warning "1.0|float|initializ" }
+ static const float nan = 0.0f / 0.0f; // { dg-warning "0.0|float|initializ" }
};
int main()
template<int>
void foo()
[
- throw; // { dg-error "expected" }
-} // { dg-error "expected" }
+ throw;
+}
+
+// { dg-prune-output "expected" }
+// { dg-prune-output "array bound" }
void f (int i, int p[i]); // { dg-error "use of parameter .i. outside function body" }
+// { dg-prune-output "array bound" }
+// { dg-options -std=c++98 }
+
template <int I>
void f(); // { dg-message "note" }
+// { dg-options -std=c++98 }
// { dg-do compile }
// Origin: jbrandmeyer at users dot sourceforge dot net
// PR c++/12573: COMPONENT_REFs must be inspected for dependness.
void P (int64 t)
{
- int cc; /* { dg-excess-errors "note: 'cc' was declared here" } */
+ int cc;
if (!GetC (&cc))
return;
in the standard). */
E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant expression" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } 15 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
in the standard). */
E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant expression" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } 15 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
in the standard). */
E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } } */
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant expression" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } 15 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
+// { dg-options "-pedantic-errors -std=c++98" }
// { dg-do assemble }
// g++ 1.36.1 bug 900119_01
// keywords: member declaration, member initialization
-// { dg-prune-output "non-static data member initializers" }
+// { dg-prune-output "is a static data member" }
int global_int;
static int class0_member_1 = 99; /* { dg-error "" } */
int &class0_member_2 = global_int; /* { dg-error "" } */
- class0 () : class0_member_2 (global_int) { } /* { dg-error "" } */
+ class0 () : class0_member_2 (global_int) { }
};
static int struct0_member_1 = 99; /* { dg-error "" } */
int &struct0_member_2 = global_int; /* { dg-error "" } */
- struct0 () : struct0_member_2 (global_int) { } /* { dg-error "" } */
+ struct0 () : struct0_member_2 (global_int) { }
};
// g++ does not allow unions to have more than one member with an initializer
union union2 {
int &union2_member_0 = global_int; /* { dg-error "" } */
- union2 () : union2_member_0 (global_int) { } /* { dg-error "" } */
+ union2 () : union2_member_0 (global_int) { }
};
int main () { return 0; }
// { dg-do assemble }
-// { dg-options "-pedantic-errors" }
+// { dg-options "-pedantic-errors -std=c++98" }
// Bug: g++ doesn't notice the overflow in the enum values.
#include <limits.h>
template<int P = 0> struct foo {
- static void bar(double (*)[dim]) {} // { dg-error "'dim' was not declared" }
+ static void bar(double (*)[dim]) {} // { dg-error "'dim' was not declared|array bound" }
};
void bar() {
+// { dg-options "-std=c++98 -pedantic-errors" }
// { dg-do assemble }
//
// Copyright (C) 2000 Free Software Foundation, Inc.
+// { dg-options -std=c++98 }
// { dg-do assemble }
class error {
+// { dg-options "-std=c++98 -pedantic-errors" }
// { dg-do assemble }
// Origin: Jason Merrill <jason@cygnus.com>
+// { dg-options "-std=c++98 -pedantic-errors" }
// { dg-do assemble }
// Overly simplified from testcase by "B. K. Oxley" <binkley@bigfoot.com>
regsub -all "(^|\n)Please submit.*instructions\[^\n\]*" $text "" text
regsub -all "(^|\n)\[0-9\]\[0-9\]* errors\." $text "" text
+ # Ignore informational notes.
+ regsub -all "(^|\n)\[^\n\]*: note: \[^\n\]*" $text "" text
+
# Ignore harmless -fpic warnings.
regsub -all "(^|\n)\[^\n\]*: warning: -f(pic|PIC) ignored for target\[^\n\]*" $text "" text
regsub -all "(^|\n)\[^\n\]*: warning: -f(pic|PIC)( and -fpic are| is)? not supported\[^\n\]*" $text "" text