diff options
author | Jason Merrill <jason@redhat.com> | 2018-06-15 16:22:55 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-06-15 16:22:55 -0400 |
commit | b4cf2e42b5d30bd38b05c16365ab8e5c98f7e12a (patch) | |
tree | 6b0fc7bc3460fb90ade3e7d4458a843a888ead91 /gcc/testsuite | |
parent | 582f844c6e30e59ac5641a04cfb7fdd1aff78c66 (diff) | |
download | gcc-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.C | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/forw_enum7.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/forw_enum8.C | 9 |
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" } |