https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68253

            Bug ID: 68253
           Summary: Valgrind: Conditional jump or move depends on
                    uninitialised value in fold-const.c:5587
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: regression
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Hi.

Starting from r229965 (Merge of the scalar-storage-order branch.) there are
some new valgrind errors in:

==4887== Conditional jump or move depends on uninitialised value(s)
==4887==    at 0x5C7706: fold_truth_andor_1(unsigned int, tree_code,
tree_node*, tree_node*, tree_node*) (fold-const.c:5587)
==4887==    by 0x5C8828: fold_truth_andor(unsigned int, tree_code, tree_node*,
tree_node*, tree_node*, tree_node*, tree_node*) (fold-const.c:8020)
==4887==    by 0x8A1A79: fold_binary_loc(unsigned int, tree_code, tree_node*,
tree_node*, tree_node*) (fold-const.c:10444)
==4887==    by 0x8B380C: fold(tree_node*) (fold-const.c:11994)
==4887==    by 0x6A4664: cp_build_binary_op(unsigned int, tree_code,
tree_node*, tree_node*, int) (typeck.c:5123)
==4887==    by 0x5EF98F: build_new_op_1(unsigned int, tree_code, int,
tree_node*, tree_node*, tree_node*, tree_node**, int) (call.c:5758)
==4887==    by 0x5F036E: build_new_op(unsigned int, tree_code, int, tree_node*,
tree_node*, tree_node*, tree_node**, int) (call.c:5803)
==4887==    by 0x69B42E: build_x_binary_op(unsigned int, tree_code, tree_node*,
tree_code, tree_node*, tree_code, tree_node**, int) (typeck.c:3835)
==4887==    by 0x67D45D: cp_parser_binary_expression(cp_parser*, bool, bool,
bool, cp_parser_prec, cp_id_kind*) (parser.c:8605)
==4887==    by 0x67D94D: cp_parser_assignment_expression(cp_parser*,
cp_id_kind*, bool, bool) (parser.c:8726)
==4887==    by 0x67FC11: cp_parser_expression(cp_parser*, cp_id_kind*, bool,
bool) (parser.c:8885)
==4887==    by 0x6716B6: cp_parser_jump_statement (parser.c:11422)
==4887==    by 0x6716B6: cp_parser_statement(cp_parser*, tree_node*, bool,
bool*, vec<tree_node*, va_heap, vl_ptr>*) (parser.c:10049)

My test case is tramp3d ([1]) with following options:

valgrind --leak-check=yes --trace-children=yes ./gcc/xg++ -Bgcc
~/Programming/tramp3d/tramp3d-v4.ii -fpermissive -O2

Note: The error is exposed right at the beginning of compiler's run.

[1] http://users.suse.com/~rguenther/tramp3d/

Thanks,
Martin

Reply via email to