aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2018-06-15 16:22:55 -0400
committerJason Merrill <jason@gcc.gnu.org>2018-06-15 16:22:55 -0400
commitb4cf2e42b5d30bd38b05c16365ab8e5c98f7e12a (patch)
tree6b0fc7bc3460fb90ade3e7d4458a843a888ead91 /gcc/testsuite
parent582f844c6e30e59ac5641a04cfb7fdd1aff78c66 (diff)
downloadgcc-b4cf2e42b5d30bd38b05c16365ab8e5c98f7e12a.zip
gcc-b4cf2e42b5d30bd38b05c16365ab8e5c98f7e12a.tar.gz
gcc-b4cf2e42b5d30bd38b05c16365ab8e5c98f7e12a.tar.bz2
* decl.c (start_enum): Do compare dependent underlying type.
From-SVN: r261655
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/forw_enum10.C8
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/forw_enum7.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/forw_enum8.C9
3 files changed, 7 insertions, 12 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C b/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C
index 3c4c3de..e5d8e49 100644
--- a/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C
+++ b/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C
@@ -6,7 +6,7 @@ template<typename T> struct S1
enum E : T; // { dg-message "previous definition" }
enum E : int; // { dg-error "different underlying type" }
};
-template struct S1<short>; // { dg-message "required from here" }
+template struct S1<short>;
template<typename T> struct S2
{
@@ -17,8 +17,8 @@ template struct S2<short>;
template<typename T1, typename T2> struct S3
{
- enum E : T1;
- enum E : T2;
+ enum E : T1; // { dg-message "previous definition" }
+ enum E : T2; // { dg-error "different underlying type" }
};
template struct S3<short,short>;
@@ -27,4 +27,4 @@ template<typename T1, typename T2> struct S4
enum E : T1; // { dg-message "previous definition" }
enum E : T2; // { dg-error "different underlying type" }
};
-template struct S4<short,char>; // { dg-message "required from here" }
+template struct S4<short,char>;
diff --git a/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C b/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C
index 3c67f54..d43bbc1 100644
--- a/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C
+++ b/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C
@@ -4,8 +4,6 @@
template<typename T> struct S1
{
enum E1 : int;
- enum E1 : T;
- enum class E2 : int;
enum class E2 : T;
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C b/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C
index b84a759..3f06cd4 100644
--- a/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C
+++ b/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C
@@ -1,22 +1,19 @@
// { dg-do compile { target c++11 } }
-//This instatiation is ok
template<typename T> struct S1
{
- enum E : int;
- enum E : T;
+ enum E : int; // { dg-message "previous definition" }
+ enum E : T; // { dg-error "different underlying type" }
};
template struct S1<int>; //ok
-//This error is diagnosed at instantiation time
template<typename T> struct S2
{
enum E : int; // { dg-message "previous definition" }
enum E : T; // { dg-error "different underlying type" }
};
-template struct S2<short>; // { dg-message "required from here" }
+template struct S2<short>;
-//This error is diagnosed at compilation time
template<typename T> struct S3
{
enum E : int; // { dg-message "previous definition" }