This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/66211] [5/6 Regression] Rvalue conversion in ternary operator causes internal compiler error


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]