https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69192
Bug ID: 69192
Summary: valgrind trunk build fail in predict_loops
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
I just tried a trunk gcc build with valgrind
svn says
$ svn info
Revision: 232153
Configure line is
$ ../src/trunk/configure --prefix=/home/dcb/gcc/results \
--disable-bootstrap \
--disable-multilib \
--disable-werror \
--enable-checking=valgrind \
--enable-languages=c,c++,fortran \
CC="/home/dcb/llvm/results/bin/clang" \
CXX="/home/dcb/llvm/results/bin/clang++"
and the valgrind error is
/home/dcb/gcc/working/./gcc/xgcc -B/home/dcb/gcc/working/./gcc/
-B/home/dcb/gcc/results/x86_64-pc-linux-gnu/bin/
-B/home/dcb/gcc/results/x86_64-pc-linux-gnu/lib/ -isystem
/home/dcb/gcc/results/x86_64-pc-linux-gnu/include -isystem
/home/dcb/gcc/results/x86_64-pc-linux-gnu/sys-include -g -O3 -march=native
-O2 -g -O3 -march=native -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-isystem ./include -fpic -mlong-double-80 -DUSE_ELF_SYMVER -g -DIN_LIBGCC2
-fbuilding-libgcc -fno-stack-protector -fpic -mlong-double-80
-DUSE_ELF_SYMVER -I. -I. -I../.././gcc -I../../../src/trunk/libgcc
-I../../../src/trunk/libgcc/. -I../../../src/trunk/libgcc/../gcc
-I../../../src/trunk/libgcc/../include
-I../../../src/trunk/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT
-DHAVE_CC_TLS -DUSE_TLS -o _powidf2.o -MT _powidf2.o -MD -MP -MF _powidf2.dep
-DL_powidf2 -c ../../../src/trunk/libgcc/libgcc2.c -fvisibility=hidden
-DHIDE_EXPORTS
==25598== Conditional jump or move depends on uninitialised value(s)
==25598== at 0x9073D6: predict_loops (predict.c:1503)
==25598== by 0x9073D6: tree_estimate_probability() (predict.c:2349)
==25598== by 0x90B3F7: (anonymous
namespace)::pass_profile::execute(function*) (predict.c:3043)
==25598== by 0x8FA4CD: execute_one_pass(opt_pass*) (passes.c:2336)
In the source code predict.c:1503 is
if (!niter || TREE_CODE (niter_desc.niter) != INTEGER_CST)
niter = loop_niter_by_eval (loop, ex);
svn blame says
118694 hubicka if (!niter || TREE_CODE (niter_desc.niter) !=
INTEGER_CST)
119039 rakdver niter = loop_niter_by_eval (loop, ex);