[Bug c++/66211] [5/6 Regression] Rvalue conversion in ternary operator causes internal compiler error
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed May 20 13:04:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66211
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jason at redhat dot com
Version|unknown |5.1.0
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Unfortunately this causes
FAIL: gcc.dg/tree-ssa/foldcast-1.c scan-tree-dump-times original "return x;" 2
FAIL: gcc.dg/tree-ssa/pr31261.c scan-tree-dump-times original "return b & 7;" 1
FAIL: gfortran.dg/assumed_type_2.f90 -O0 scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/assumed_type_2.f90 -O1 scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/assumed_type_2.f90 -O2 scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/assumed_type_2.f90 -O3 -fomit-frame-pointer
scan-tree-dump
-times original "sub_scalar .\\\\(struct t1 .\\\\)
array_class_t1_ptr._data.dat"
1
FAIL: gfortran.dg/assumed_type_2.f90 -O3 -fomit-frame-pointer
-funroll-all-loo
ps -finline-functions scan-tree-dump-times original "sub_scalar .\\\\(struct
t
1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/assumed_type_2.f90 -O3 -fomit-frame-pointer -funroll-loops
scan-tree-dump-times original "sub_scalar .\\\\(struct t1 .\\\\)
array_class_t1
_ptr._data.dat" 1
FAIL: gfortran.dg/assumed_type_2.f90 -O3 -g scan-tree-dump-times original
"s
ub_scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/assumed_type_2.f90 -Os scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/c_f_pointer_tests_3.f90 -O scan-tree-dump-times original
"
fptr_array.data = cptr;" 1
FAIL: gfortran.dg/c_loc_test_22.f90 -O scan-tree-dump-times original
"D.[0-9
]+ = parm.[0-9]+.data;[^;]+ptr[1-4] = D.[0-9]+;" 4
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O0 scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O0 scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O1 scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O1 scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O2 scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O2 scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -fomit-frame-pointer
scan-tree-dump
-times original "fgsl_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -fomit-frame-pointer
scan-tree-dump
-times original "fgsl_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -fomit-frame-pointer
-funroll-all-loo
ps -finline-functions scan-tree-dump-times original
"fgsl_file.[0-9]+.gsl_file
= c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -fomit-frame-pointer
-funroll-all-loo
ps -finline-functions scan-tree-dump-times original
"fgsl_file.[0-9]+.gsl_func
= c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -fomit-frame-pointer -funroll-loops
scan-tree-dump-times original "fgsl_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -fomit-frame-pointer -funroll-loops
scan-tree-dump-times original "fgsl_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -g scan-tree-dump-times original
"f
gsl_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -O3 -g scan-tree-dump-times original
"f
gsl_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -Os scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_14.f90 -Os scan-tree-dump-times original
"fgsl
_file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_15.f90 -O scan-tree-dump-times original
"fgsl_
file.[0-9]+.gsl_file = c_ptr.[0-9]+;" 1
FAIL: gfortran.dg/c_ptr_tests_15.f90 -O scan-tree-dump-times original
"fgsl_
file.[0-9]+.gsl_func = c_funptr.[0-9]+;" 1
FAIL: gfortran.dg/coarray_31.f90 -O scan-tree-dump original
"a.y.d._data.dat
a = D.[0-9]+.y.d._data.data;"
FAIL: gfortran.dg/coarray_31.f90 -O scan-tree-dump original "a.y.x.data =
D.
[0-9]+.y.x.data;"
FAIL: gfortran.dg/coarray_31.f90 -O scan-tree-dump original
"a.y.z._data.dat
a = D.[0-9]+.y.z._data.data;"
FAIL: gfortran.dg/no_arg_check_2.f90 -O0 scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/no_arg_check_2.f90 -O1 scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/no_arg_check_2.f90 -O2 scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/no_arg_check_2.f90 -O3 -fomit-frame-pointer
scan-tree-dump
-times original "sub_scalar .\\\\(struct t1 .\\\\)
array_class_t1_ptr._data.dat"
1
FAIL: gfortran.dg/no_arg_check_2.f90 -O3 -fomit-frame-pointer
-funroll-all-loo
ps -finline-functions scan-tree-dump-times original "sub_scalar .\\\\(struct
t
1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/no_arg_check_2.f90 -O3 -fomit-frame-pointer -funroll-loops
scan-tree-dump-times original "sub_scalar .\\\\(struct t1 .\\\\)
array_class_t1
_ptr._data.dat" 1
FAIL: gfortran.dg/no_arg_check_2.f90 -O3 -g scan-tree-dump-times original
"s
ub_scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gfortran.dg/no_arg_check_2.f90 -Os scan-tree-dump-times original
"sub_
scalar .\\\\(struct t1 .\\\\) array_class_t1_ptr._data.dat" 1
FAIL: gnat.dg/ice_type.adb (test for excess errors) (ICE in build_binary_op, at
ada/gcc-interface/utils2.c:906)
FAIL: gnat.dg/specs/addr1.ads (test for warnings, line 30)
not yet further analyzed.
IMHO the C++ frontend shouldn't rely on fold preserving rvalue-ness but it
should perform these checks before folding like the C frontend does.
I'll look at the above failures later this week to see if there is anything
obvious that can be improved.
More information about the Gcc-bugs
mailing list