]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR c++/79896 (ICE in gimplify_expr, at gimplify.c:11950 on non-int128...
authorJakub Jelinek <jakub@gcc.gnu.org>
Tue, 30 May 2017 08:15:55 +0000 (10:15 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 30 May 2017 08:15:55 +0000 (10:15 +0200)
Backported from mainline
2017-03-10  Jakub Jelinek  <jakub@redhat.com>

PR c++/79896
* decl.c (finish_enum_value_list): If value is error_mark_node,
don't copy it and change its type.
* init.c (constant_value_1): Return error_mark_node if DECL_INITIAL
of CONST_DECL is error_mark_node.

* g++.dg/ext/int128-5.C: New test.

From-SVN: r248660

gcc/testsuite/g++.dg/ext/int128-5.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/ext/int128-5.C b/gcc/testsuite/g++.dg/ext/int128-5.C
new file mode 100644 (file)
index 0000000..c2d9297
--- /dev/null
@@ -0,0 +1,10 @@
+// PR c++/79896
+// { dg-do compile { target { ilp32 && { ! int128 } } } }
+// { dg-options "" }
+
+enum E
+{
+  e1 = 0xffffffffffffffffULL,
+  e2,                  // { dg-error "overflow in enumeration values" }
+  e3
+} e = e3;