aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cvt.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-01-17 15:23:17 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-01-17 15:23:17 +0000
commit0ffc4683170aa3cdb3c244745f7d52ae798da520 (patch)
tree184559a8970dd5712cf703d6eda33582fec25cb7 /gcc/cp/cvt.c
parent30078c0a6521519cd18090edb554c62e8d9c1a8a (diff)
downloadgcc-0ffc4683170aa3cdb3c244745f7d52ae798da520.zip
gcc-0ffc4683170aa3cdb3c244745f7d52ae798da520.tar.gz
gcc-0ffc4683170aa3cdb3c244745f7d52ae798da520.tar.bz2
re PR c++/59838 (ICE with an enum using an incomplete type)
PR c++/59838 cp/ * cvt.c (ocp_convert): Don't segfault on non-existing ENUM_UNDERLYING_TYPE. testsuite/ * g++.dg/diagnostic/pr59838.C: New test. From-SVN: r206716
Diffstat (limited to 'gcc/cp/cvt.c')
-rw-r--r--gcc/cp/cvt.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index df208cc..c2cdf83 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -753,6 +753,7 @@ ocp_convert (tree type, tree expr, int convtype, int flags,
unspecified. */
if ((complain & tf_warning)
&& TREE_CODE (e) == INTEGER_CST
+ && ENUM_UNDERLYING_TYPE (type)
&& !int_fits_type_p (e, ENUM_UNDERLYING_TYPE (type)))
warning_at (loc, OPT_Wconversion,
"the result of the conversion is unspecified because "