From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21801 invoked by alias); 10 Jun 2011 03:52:34 -0000 Received: (qmail 21763 invoked by uid 22791); 10 Jun 2011 03:52:32 -0000 X-SWARE-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_JB,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 10 Jun 2011 03:52:12 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p5A3qCBI018151 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 9 Jun 2011 23:52:12 -0400 Received: from [127.0.0.1] ([10.3.113.14]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p5A3qBld032274 for ; Thu, 9 Jun 2011 23:52:11 -0400 Message-ID: <4DF194EA.8030808@redhat.com> Date: Fri, 10 Jun 2011 05:20:00 -0000 From: Jason Merrill User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b2 Thunderbird/3.1.10 MIME-Version: 1.0 To: gcc-patches List Subject: C++ PATCHes to fix issues with running the testsuite in C++0x mode Content-Type: multipart/mixed; boundary="------------030707040506040701010004" Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg00798.txt.bz2 This is a multi-part message in MIME format. --------------030707040506040701010004 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1049 Periodically I run the G++ testsuite with --target_board=unix/-std=gnu++0x to catch any regressions relative to C++98 mode. Here are the fixes from this round: overflow.patch -- we were forgetting about overflow in some cases, causing us to treat an expression as a constant expression when it should not be. build-non.patch -- the call to fold_non_dependent_expr was generating a hard error on one testcase, so I've changed it to pass tf_none. parse-const.patch -- returning error_mark_node in the case of a non-constant expression was causing poorer diagnostics in some testcases, and returning the expression after complaining doesn't seem to break anything. compound-lit.patch -- some places in the compiler expect a compound literal to have TREE_HAS_CONSTRUCTOR set, but we weren't setting it anymore. This patch fixes some ext/ testcases. cx-testsuite.patch -- various adjustments to either update tests to allow C++0x mode output or specify that they are only for C++98 mode. Tested x86_64-pc-linux-gnu, applying to trunk. --------------030707040506040701010004 Content-Type: text/x-patch; name="overflow.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="overflow.patch" Content-length: 1820 commit e71736621b375d376091a50d17c0cbfb789e2536 Author: Jason Merrill Date: Thu Jun 9 13:59:04 2011 -0400 * semantics.c (maybe_constant_value): Handle overflowed input. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index bf6486b..481318e 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -6902,7 +6902,8 @@ non_const_var_error (tree r) else if (CP_TYPE_VOLATILE_P (type)) inform (DECL_SOURCE_LOCATION (r), "%q#D is volatile", r); - else if (!DECL_INITIAL (r)) + else if (!DECL_INITIAL (r) + || !TREE_CONSTANT (DECL_INITIAL (r))) inform (DECL_SOURCE_LOCATION (r), "%qD was not initialized with a constant " "expression", r); @@ -7337,7 +7338,14 @@ maybe_constant_value (tree t) || type_unknown_p (t) || !potential_constant_expression (t) || value_dependent_expression_p (t)) - return t; + { + if (TREE_OVERFLOW_P (t)) + { + t = build_nop (TREE_TYPE (t), t); + TREE_CONSTANT (t) = false; + } + return t; + } r = cxx_eval_outermost_constant_expr (t, true); #ifdef ENABLE_CHECKING diff --git a/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc index 83f5ce1..8aa72f2 100644 --- a/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc +++ b/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc @@ -51,4 +51,5 @@ test04() // { dg-error "required from here" "" { target *-*-* } 46 } // { dg-error "denominator cannot be zero" "" { target *-*-* } 268 } // { dg-error "out of range" "" { target *-*-* } 269 } -// { dg-error "overflow in constant expression" "" { target *-*-* } 109 } +// { dg-error "overflow in constant expression" "" { target *-*-* } 61 } +// { dg-prune-output "not a member" } --------------030707040506040701010004 Content-Type: text/x-patch; name="build-non.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="build-non.patch" Content-length: 766 commit fa869080e6f284376c4371644ae9077994eb771b Author: Jason Merrill Date: Thu Jun 9 13:58:30 2011 -0400 * pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 51d590e..ac150ce 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -19124,7 +19124,7 @@ build_non_dependent_expr (tree expr) /* Try to get a constant value for all non-type-dependent expressions in order to expose bugs in *_dependent_expression_p and constexpr. */ if (cxx_dialect >= cxx0x) - maybe_constant_value (fold_non_dependent_expr (expr)); + maybe_constant_value (fold_non_dependent_expr_sfinae (expr, tf_none)); #endif /* Preserve OVERLOADs; the functions must be available to resolve --------------030707040506040701010004 Content-Type: text/x-patch; name="parse-const.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="parse-const.patch" Content-length: 1551 commit 6fc693c2f5ff6c2ae656bf3e6795b758e223f2cc Author: Jason Merrill Date: Thu Jun 9 13:58:11 2011 -0400 * parser.c (cp_parser_constant_expression): Just return the non-constant expression. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 1d182a3..35f8957 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -7050,8 +7050,6 @@ cp_parser_constant_expression (cp_parser* parser, } if (allow_non_constant_p) *non_constant_p = parser->non_integral_constant_expression_p; - else if (parser->non_integral_constant_expression_p) - expression = error_mark_node; parser->non_integral_constant_expression_p = saved_non_integral_constant_expression_p; diff --git a/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C b/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C index 2094d3e..9942c58 100644 --- a/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C +++ b/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C @@ -7,3 +7,5 @@ foo () const bool b =; // { dg-error "" } foo < b > (); // { dg-error "constant expression" } }; + +// { dg-error "no match" "" { target *-*-* } 8 } diff --git a/gcc/testsuite/g++.dg/parse/template7.C b/gcc/testsuite/g++.dg/parse/template7.C index 0d3f3fa..d7dfef7 100644 --- a/gcc/testsuite/g++.dg/parse/template7.C +++ b/gcc/testsuite/g++.dg/parse/template7.C @@ -2,4 +2,3 @@ template void f(); // { dg-message "note" } void g() { f<(3, 2)>(); } // { dg-error "" } -// { dg-message "candidate" "candidate note" { target *-*-* } 4 } --------------030707040506040701010004 Content-Type: text/x-patch; name="compound-lit.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="compound-lit.patch" Content-length: 833 commit 499bc6705442c7842bb3b2e338930ff615a39b38 Author: Jason Merrill Date: Thu Jun 9 00:56:22 2011 -0400 * semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 53e5993..bf6486b 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2387,6 +2387,8 @@ finish_compound_literal (tree type, tree compound_literal, return error_mark_node; } compound_literal = digest_init (type, compound_literal, complain); + if (TREE_CODE (compound_literal) == CONSTRUCTOR) + TREE_HAS_CONSTRUCTOR (compound_literal) = true; /* Put static/constant array temporaries in static variables, but always represent class temporaries with TARGET_EXPR so we elide copies. */ if ((!at_function_scope_p () || CP_TYPE_CONST_P (type)) --------------030707040506040701010004 Content-Type: text/x-patch; name="cx-testsuite.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="cx-testsuite.patch" Content-length: 15643 commit cb52a4df30a31f1916d8d4ee8237a938ae3002fb Author: Jason Merrill Date: Thu Jun 9 13:59:23 2011 -0400 * 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. diff --git a/gcc/testsuite/g++.dg/diagnostic/method1.C b/gcc/testsuite/g++.dg/diagnostic/method1.C index 8e1225d..4a78104 100644 --- a/gcc/testsuite/g++.dg/diagnostic/method1.C +++ b/gcc/testsuite/g++.dg/diagnostic/method1.C @@ -18,3 +18,5 @@ baz () { bar (); } + +// { dg-prune-output "without object" } diff --git a/gcc/testsuite/g++.dg/ext/complex7.C b/gcc/testsuite/g++.dg/ext/complex7.C index 9d5463f..5b3eead 100644 --- a/gcc/testsuite/g++.dg/ext/complex7.C +++ b/gcc/testsuite/g++.dg/ext/complex7.C @@ -4,3 +4,5 @@ class A { static const _Complex double x = 1.0 + 2.0i; }; + +// { dg-prune-output "constexpr. needed" } diff --git a/gcc/testsuite/g++.dg/ext/injected-ttp.C b/gcc/testsuite/g++.dg/ext/injected-ttp.C index 405bee8..5ef4a4e 100644 --- a/gcc/testsuite/g++.dg/ext/injected-ttp.C +++ b/gcc/testsuite/g++.dg/ext/injected-ttp.C @@ -1,7 +1,7 @@ // 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 struct A { }; diff --git a/gcc/testsuite/g++.dg/init/pr29571.C b/gcc/testsuite/g++.dg/init/pr29571.C index 9e8e609..c9bfa28 100644 --- a/gcc/testsuite/g++.dg/init/pr29571.C +++ b/gcc/testsuite/g++.dg/init/pr29571.C @@ -3,6 +3,6 @@ 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); }; diff --git a/gcc/testsuite/g++.dg/other/warning1.C b/gcc/testsuite/g++.dg/other/warning1.C index 77653a1..c65ae0f 100644 --- a/gcc/testsuite/g++.dg/other/warning1.C +++ b/gcc/testsuite/g++.dg/other/warning1.C @@ -7,8 +7,8 @@ extern "C" int printf(const char *, ...); 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() diff --git a/gcc/testsuite/g++.dg/parse/crash33.C b/gcc/testsuite/g++.dg/parse/crash33.C index 2ab84df..5ccb652 100644 --- a/gcc/testsuite/g++.dg/parse/crash33.C +++ b/gcc/testsuite/g++.dg/parse/crash33.C @@ -4,5 +4,8 @@ template void foo() [ - throw; // { dg-error "expected" } -} // { dg-error "expected" } + throw; +} + +// { dg-prune-output "expected" } +// { dg-prune-output "array bound" } diff --git a/gcc/testsuite/g++.dg/parse/parameter-declaration-2.C b/gcc/testsuite/g++.dg/parse/parameter-declaration-2.C index 7a9a24f..6116630 100644 --- a/gcc/testsuite/g++.dg/parse/parameter-declaration-2.C +++ b/gcc/testsuite/g++.dg/parse/parameter-declaration-2.C @@ -1 +1,2 @@ void f (int i, int p[i]); // { dg-error "use of parameter .i. outside function body" } +// { dg-prune-output "array bound" } diff --git a/gcc/testsuite/g++.dg/parse/template7.C b/gcc/testsuite/g++.dg/parse/template7.C index d7dfef7..930e259 100644 --- a/gcc/testsuite/g++.dg/parse/template7.C +++ b/gcc/testsuite/g++.dg/parse/template7.C @@ -1,3 +1,5 @@ +// { dg-options -std=c++98 } + template void f(); // { dg-message "note" } diff --git a/gcc/testsuite/g++.dg/template/dependent-expr3.C b/gcc/testsuite/g++.dg/template/dependent-expr3.C index 97fddbd..bf14c49 100644 --- a/gcc/testsuite/g++.dg/template/dependent-expr3.C +++ b/gcc/testsuite/g++.dg/template/dependent-expr3.C @@ -1,3 +1,4 @@ +// { 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. diff --git a/gcc/testsuite/g++.dg/uninit-pred-3_b.C b/gcc/testsuite/g++.dg/uninit-pred-3_b.C index cfe2113..a66e04b 100644 --- a/gcc/testsuite/g++.dg/uninit-pred-3_b.C +++ b/gcc/testsuite/g++.dg/uninit-pred-3_b.C @@ -65,7 +65,7 @@ class M { void P (int64 t) { - int cc; /* { dg-excess-errors "note: 'cc' was declared here" } */ + int cc; if (!GetC (&cc)) return; diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-1.C b/gcc/testsuite/g++.dg/warn/overflow-warn-1.C index 22c512a..7cd76e7 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-1.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-1.C @@ -13,7 +13,7 @@ enum e { 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" } */ diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-3.C b/gcc/testsuite/g++.dg/warn/overflow-warn-3.C index d88c87a..73c0e00 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-3.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-3.C @@ -13,7 +13,7 @@ enum e { 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" } */ diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-4.C b/gcc/testsuite/g++.dg/warn/overflow-warn-4.C index 374d294..24b3959 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-4.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-4.C @@ -13,7 +13,7 @@ enum e { 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" } */ diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C index ace4e4b..0d181c7 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C @@ -1,3 +1,4 @@ +// { dg-options "-pedantic-errors -std=c++98" } // { dg-do assemble } // g++ 1.36.1 bug 900119_01 @@ -8,7 +9,7 @@ // keywords: member declaration, member initialization -// { dg-prune-output "non-static data member initializers" } +// { dg-prune-output "is a static data member" } int global_int; @@ -18,7 +19,7 @@ public: 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) { } }; @@ -27,7 +28,7 @@ struct struct0 { 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 @@ -43,7 +44,7 @@ union union1 { 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; } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C index 58af19c..8769f5a 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C @@ -1,5 +1,5 @@ // { 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 index 995ac91..0000000 index 0000000..995ac91 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog-2005 @@ -0,0 +1,127 @@ +2005-04-03 Alexandre Oliva + + PR c++/19199 + * expr2.C: Fixed. + +2003-06-04 J"orn Rennecke + + * template1.C (bar): Remove xfail marker. + +2002-07-06 Alexandre Oliva + + * linkage1.C, linkage1-main.cc: New test. + +2001-02-15 Alexandre Oliva + + * friend1.C: New test. + +2000-05-28 Alexandre Oliva + + * expr2.C: New test. + +2000-04-19 Alexandre Oliva + + * stkalign.C: New test. + +1999-12-22 Alexandre Oliva + + * nameret2.C: New test. + + * nameret1.C: New test. + + * template10.C: New test. + +1999-11-21 Alexandre Oliva + + * delete2.C, delete3.C, delete4.C, delete5.C: New tests. + +1999-11-19 Alexandre Oliva + + * template7.C: Crash test passes, bug error is now bogus. + +1999-11-11 Alexandre Oliva + + * template9.C: New test. + +1999-09-18 Alexandre Oliva + + * overload1.C: New test. + + * inline1.C: New test. + +1999-08-25 Alexandre Oliva + + * thunk1.C: New test. + +1999-08-06 Alexandre Oliva + + * dwarf2.C, dwarf3.C: Added XFAIL for Solaris/x86. Removed + -gdwarf. + * dwarf1.C: Removed -gdwarf. + +1999-08-05 Alexandre Oliva + + * new1.C, template8.C: Removed XFAIL. + * template3.C: Re-introduced XFAIL. :-( + +1999-08-03 Alexandre Oliva + + * ext1.C: New test. + + * dwarf1.C, dwarf2.C, dwarf3.C: New tests. + +1999-07-20 Alexandre Oliva + + * template8.C, typeof1.C: New test. + +1999-07-17 Alexandre Oliva + + * template6.C, delete1.C, template7.C: New test. + +1999-07-13 Alexandre Oliva + + * template5.C: New test. + + * template4.C: New test. + + * expr1.C: New test. + + * partspec1.C: New test. + +1999-07-05 Alexandre Oliva + + * typename1.C, typename2.C: New tests. + + * template3.C: Fixed. + + * ns3.C: New test. + +1999-07-03 Alexandre Oliva + + * ctor1.C: New test. + + * template3.C: New test. + +1999-07-02 Alexandre Oliva + + * ns1.C: Typo. + * ns2.C: New test. + + * template2.C: New test. + + * ns1.C: New test. + +1999-07-01 Alexandre Oliva + + * new1.C: New test. + + * partord1.C: New test. + + * template1.C: New test. + + +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/template1.C b/gcc/testsuite/g++.old-deja/g++.oliva/template1.C index ce39496..908a069 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/template1.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/template1.C @@ -7,7 +7,7 @@ template 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() { diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend8.C b/gcc/testsuite/g++.old-deja/g++.other/friend8.C index bbe4bf5..c1e93d9 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/friend8.C +++ b/gcc/testsuite/g++.old-deja/g++.other/friend8.C @@ -1,3 +1,4 @@ +// { dg-options "-std=c++98 -pedantic-errors" } // { dg-do assemble } // // Copyright (C) 2000 Free Software Foundation, Inc. diff --git a/gcc/testsuite/g++.old-deja/g++.other/init4.C b/gcc/testsuite/g++.old-deja/g++.other/init4.C index f877f2a..92562ef 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/init4.C +++ b/gcc/testsuite/g++.old-deja/g++.other/init4.C @@ -1,3 +1,4 @@ +// { dg-options -std=c++98 } // { dg-do assemble } class error { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash32.C b/gcc/testsuite/g++.old-deja/g++.pt/crash32.C index 64ed229..0be26ea 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash32.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash32.C @@ -1,3 +1,4 @@ +// { dg-options "-std=c++98 -pedantic-errors" } // { dg-do assemble } // Origin: Jason Merrill diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend38.C b/gcc/testsuite/g++.old-deja/g++.pt/friend38.C index 429e421..f2343d0 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend38.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend38.C @@ -1,3 +1,4 @@ +// { dg-options "-std=c++98 -pedantic-errors" } // { dg-do assemble } // Overly simplified from testcase by "B. K. Oxley" diff --git a/gcc/testsuite/lib/prune.exp b/gcc/testsuite/lib/prune.exp index 58b59a4..f5cbc4c 100644 --- a/gcc/testsuite/lib/prune.exp +++ b/gcc/testsuite/lib/prune.exp @@ -30,6 +30,9 @@ proc prune_gcc_output { text } { 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 --------------030707040506040701010004--