aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely.gcc@gmail.com>2013-02-16 01:07:11 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-02-16 01:07:11 +0000
commit4d0648ac8ff3df5e4525fe8da00906493742c72c (patch)
tree85717b2a33befec7e492adbd43dfb94183fd701a /gcc
parent7102a358e3dce77c1fb1cc19b998a8505e637e58 (diff)
downloadgcc-4d0648ac8ff3df5e4525fe8da00906493742c72c.zip
gcc-4d0648ac8ff3df5e4525fe8da00906493742c72c.tar.gz
gcc-4d0648ac8ff3df5e4525fe8da00906493742c72c.tar.bz2
re PR c++/51242 ([C++11] Unable to use strongly typed enums as bit fields)
/cp 2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com> Paolo Carlini <paolo.carlini@oracle.com> PR c++/51242 * decl2.c (grokbitfield): Allow scoped enumeration types. /testsuite 2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com> Paolo Carlini <paolo.carlini@oracle.com> PR c++/51242 * g++.dg/cpp0x/enum23.C: New. Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com> From-SVN: r196100
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl2.c2
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/enum23.C9
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 921c6a4..52fac3a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51242
+ * decl2.c (grokbitfield): Allow scoped enumeration types.
+
2013-02-15 Jason Merrill <jason@redhat.com>
PR c++/54276
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 4496395..82bc6f7 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1028,7 +1028,7 @@ grokbitfield (const cp_declarator *declarator,
if (TREE_CODE (value) == VOID_TYPE)
return void_type_node;
- if (!INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (value))
+ if (!INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (value))
&& (POINTER_TYPE_P (value)
|| !dependent_type_p (TREE_TYPE (value))))
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1e260eb..d2e1e57 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51242
+ * g++.dg/cpp0x/enum23.C: New.
+
2013-02-15 Oleg Endo <olegendo@gcc.gnu.org>
PR target/54685
diff --git a/gcc/testsuite/g++.dg/cpp0x/enum23.C b/gcc/testsuite/g++.dg/cpp0x/enum23.C
new file mode 100644
index 0000000..b2378e1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/enum23.C
@@ -0,0 +1,9 @@
+// PR c++/51242
+// { dg-do compile { target c++11 } }
+
+enum class MyEnum { A = 1 };
+
+struct MyClass
+{
+ MyEnum Field1 : 3; // { dg-bogus "warning: 'MyClass::Field1' is too small" "" { xfail *-*-* } }
+};