From cca668d85ba5269aba09879331d495f1ac61bab5 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 2 Dec 2015 10:34:00 -0500 Subject: [PATCH 04/10] Fix g++.dg/template/crash55.C The patch kit changes the output of this case: 1 //PR c++/27668 2 3 template // { dg-error "nested-name-specifier|two or more|valid type" } 4 struct A {}; 5 6 template void foo(A); // { dg-error "cast|argument" "" { target c++98_only } } but only for c++98, from: g++.dg/template/crash55.C:3:19: error: expected nested-name-specifier before 'class' g++.dg/template/crash55.C:3:25: error: two or more data types in declaration of 'parameter' g++.dg/template/crash55.C:3:34: error: 'class T' is not a valid type for a template non-type parameter g++.dg/template/crash55.C:6:29: error: a cast to a type other than an integral or enumeration type cannot appear in a constant-expression g++.dg/template/crash55.C:6:29: error: template argument 2 is invalid to: g++.dg/template/crash55.C:3:19: error: expected nested-name-specifier before 'class' g++.dg/template/crash55.C:3:25: error: two or more data types in declaration of 'parameter' g++.dg/template/crash55.C:3:34: error: 'class T' is not a valid type for a template non-type parameter g++.dg/template/crash55.C:3:32: error: a cast to a type other than an integral or enumeration type cannot appear in a constant-expression g++.dg/template/crash55.C:6:29: error: template argument 2 is invalid i.e. the 4th error moves from line 6 to line 3 ("a cast to a type other than an integral or enumeration type cannot appear in a constant-expression") This change is reasonable, so the patch updates the dg-error directives accordingly. gcc/testsuite/ChangeLog: * g++.dg/template/crash55.C: Update dg-error directives. --- gcc/testsuite/g++.dg/template/crash55.C | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/template/crash55.C b/gcc/testsuite/g++.dg/template/crash55.C index 9b80fd1..b9b29f7 100644 --- a/gcc/testsuite/g++.dg/template/crash55.C +++ b/gcc/testsuite/g++.dg/template/crash55.C @@ -1,6 +1,7 @@ //PR c++/27668 template // { dg-error "nested-name-specifier|two or more|valid type" } +// { dg-error "cast" "" { target c++98_only } 3 } struct A {}; -template void foo(A); // { dg-error "cast|argument" "" { target c++98_only } } +template void foo(A); // { dg-error "template argument 2" "" { target c++98_only } } -- 1.8.5.3