[Bug debug/71171] New: [6/7 Regression] Conditional jump or move depends on uninitialised value(s) in can_be_stored_compactly_p (line-map.c:148)

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 18 12:44:00 GMT 2016


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

            Bug ID: 71171
           Summary: [6/7 Regression] Conditional jump or move depends on
                    uninitialised value(s) in can_be_stored_compactly_p
                    (line-map.c:148)
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Hello.

Following test-case uses an uninitialized memory:
gcc/testsuite/c-c++-common/goacc/asyncwait-1.c

Reduced test-case:
$ cat tc.c
void f (  void) {
#pragma acc parallel copyin  copy  async (*) 

$ valgrind --trace-children=yes gcc tc.c -fopenacc

==29528== Conditional jump or move depends on uninitialised value(s)
==29528==    at 0x10712FE: can_be_stored_compactly_p (line-map.c:148)
==29528==    by 0x10712FE: get_combined_adhoc_loc(line_maps*, unsigned int,
source_range, void*) (line-map.c:190)
==29528==    by 0xBE1037: COMBINE_LOCATION_DATA (line-map.h:993)
==29528==    by 0xBE1037: make_location(unsigned int, unsigned int, unsigned
int) (tree.c:14045)
==29528==    by 0x618F99: c_parser_unary_expression(c_parser*)
(c-parser.c:6846)
==29528==    by 0x619F27: c_parser_cast_expression(c_parser*, c_expr*)
(c-parser.c:6759)
==29528==    by 0x61A142: c_parser_binary_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6568)
==29528==    by 0x61ADA5: c_parser_conditional_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6339)
==29528==    by 0x61B2B0: c_parser_expr_no_commas(c_parser*, c_expr*,
tree_node*) (c-parser.c:6256)
==29528==    by 0x61B852: c_parser_expression(c_parser*) (c-parser.c:8443)
==29528==    by 0x60EA78: c_parser_oacc_clause_async (c-parser.c:11727)
==29528==    by 0x60EA78: c_parser_oacc_all_clauses(c_parser*, omp_clause_mask,
char const*, bool) (c-parser.c:13015)
==29528==    by 0x60F7E8: c_parser_oacc_kernels_parallel (c-parser.c:13936)
==29528==    by 0x60F7E8: c_parser_omp_construct (c-parser.c:17140)
==29528==    by 0x60F7E8: c_parser_pragma(c_parser*, pragma_context, bool*)
(c-parser.c:10207)
==29528==    by 0x615FAE: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:4826)
==29528==    by 0x62749E: c_parser_compound_statement(c_parser*)
(c-parser.c:4693)
==29528== 
==29528== Conditional jump or move depends on uninitialised value(s)
==29528==    at 0x107136B: get_combined_adhoc_loc(line_maps*, unsigned int,
source_range, void*) (line-map.c:209)
==29528==    by 0xBE1037: COMBINE_LOCATION_DATA (line-map.h:993)
==29528==    by 0xBE1037: make_location(unsigned int, unsigned int, unsigned
int) (tree.c:14045)
==29528==    by 0x618F99: c_parser_unary_expression(c_parser*)
(c-parser.c:6846)
==29528==    by 0x619F27: c_parser_cast_expression(c_parser*, c_expr*)
(c-parser.c:6759)
==29528==    by 0x61A142: c_parser_binary_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6568)
==29528==    by 0x61ADA5: c_parser_conditional_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6339)
==29528==    by 0x61B2B0: c_parser_expr_no_commas(c_parser*, c_expr*,
tree_node*) (c-parser.c:6256)
==29528==    by 0x61B852: c_parser_expression(c_parser*) (c-parser.c:8443)
==29528==    by 0x60EA78: c_parser_oacc_clause_async (c-parser.c:11727)
==29528==    by 0x60EA78: c_parser_oacc_all_clauses(c_parser*, omp_clause_mask,
char const*, bool) (c-parser.c:13015)
==29528==    by 0x60F7E8: c_parser_oacc_kernels_parallel (c-parser.c:13936)
==29528==    by 0x60F7E8: c_parser_omp_construct (c-parser.c:17140)
==29528==    by 0x60F7E8: c_parser_pragma(c_parser*, pragma_context, bool*)
(c-parser.c:10207)
==29528==    by 0x615FAE: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:4826)
==29528==    by 0x62749E: c_parser_compound_statement(c_parser*)
(c-parser.c:4693)
==29528== 
==29528== Use of uninitialised value of size 8
==29528==    at 0x10A3A93: htab_find_slot_with_hash (hashtab.c:655)
==29528==    by 0x10713A4: get_combined_adhoc_loc(line_maps*, unsigned int,
source_range, void*) (line-map.c:220)
==29528==    by 0xBE1037: COMBINE_LOCATION_DATA (line-map.h:993)
==29528==    by 0xBE1037: make_location(unsigned int, unsigned int, unsigned
int) (tree.c:14045)
==29528==    by 0x618F99: c_parser_unary_expression(c_parser*)
(c-parser.c:6846)
==29528==    by 0x619F27: c_parser_cast_expression(c_parser*, c_expr*)
(c-parser.c:6759)
==29528==    by 0x61A142: c_parser_binary_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6568)
==29528==    by 0x61ADA5: c_parser_conditional_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6339)
==29528==    by 0x61B2B0: c_parser_expr_no_commas(c_parser*, c_expr*,
tree_node*) (c-parser.c:6256)
==29528==    by 0x61B852: c_parser_expression(c_parser*) (c-parser.c:8443)
==29528==    by 0x60EA78: c_parser_oacc_clause_async (c-parser.c:11727)
==29528==    by 0x60EA78: c_parser_oacc_all_clauses(c_parser*, omp_clause_mask,
char const*, bool) (c-parser.c:13015)
==29528==    by 0x60F7E8: c_parser_oacc_kernels_parallel (c-parser.c:13936)
==29528==    by 0x60F7E8: c_parser_omp_construct (c-parser.c:17140)
==29528==    by 0x60F7E8: c_parser_pragma(c_parser*, pragma_context, bool*)
(c-parser.c:10207)
==29528==    by 0x615FAE: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:4826)
==29528== 
==29528== Use of uninitialised value of size 8
==29528==    at 0x10713A8: get_combined_adhoc_loc(line_maps*, unsigned int,
source_range, void*) (line-map.c:221)
==29528==    by 0xBE1037: COMBINE_LOCATION_DATA (line-map.h:993)
==29528==    by 0xBE1037: make_location(unsigned int, unsigned int, unsigned
int) (tree.c:14045)
==29528==    by 0x618F99: c_parser_unary_expression(c_parser*)
(c-parser.c:6846)
==29528==    by 0x619F27: c_parser_cast_expression(c_parser*, c_expr*)
(c-parser.c:6759)
==29528==    by 0x61A142: c_parser_binary_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6568)
==29528==    by 0x61ADA5: c_parser_conditional_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6339)
==29528==    by 0x61B2B0: c_parser_expr_no_commas(c_parser*, c_expr*,
tree_node*) (c-parser.c:6256)
==29528==    by 0x61B852: c_parser_expression(c_parser*) (c-parser.c:8443)
==29528==    by 0x60EA78: c_parser_oacc_clause_async (c-parser.c:11727)
==29528==    by 0x60EA78: c_parser_oacc_all_clauses(c_parser*, omp_clause_mask,
char const*, bool) (c-parser.c:13015)
==29528==    by 0x60F7E8: c_parser_oacc_kernels_parallel (c-parser.c:13936)
==29528==    by 0x60F7E8: c_parser_omp_construct (c-parser.c:17140)
==29528==    by 0x60F7E8: c_parser_pragma(c_parser*, pragma_context, bool*)
(c-parser.c:10207)
==29528==    by 0x615FAE: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:4826)
==29528==    by 0x62749E: c_parser_compound_statement(c_parser*)
(c-parser.c:4693)
==29528== 
==29528== Use of uninitialised value of size 8
==29528==    at 0x107146C: get_combined_adhoc_loc(line_maps*, unsigned int,
source_range, void*) (line-map.c:247)
==29528==    by 0xBE1037: COMBINE_LOCATION_DATA (line-map.h:993)
==29528==    by 0xBE1037: make_location(unsigned int, unsigned int, unsigned
int) (tree.c:14045)
==29528==    by 0x618F99: c_parser_unary_expression(c_parser*)
(c-parser.c:6846)
==29528==    by 0x619F27: c_parser_cast_expression(c_parser*, c_expr*)
(c-parser.c:6759)
==29528==    by 0x61A142: c_parser_binary_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6568)
==29528==    by 0x61ADA5: c_parser_conditional_expression(c_parser*, c_expr*,
tree_node*) (c-parser.c:6339)
==29528==    by 0x61B2B0: c_parser_expr_no_commas(c_parser*, c_expr*,
tree_node*) (c-parser.c:6256)
==29528==    by 0x61B852: c_parser_expression(c_parser*) (c-parser.c:8443)
==29528==    by 0x60EA78: c_parser_oacc_clause_async (c-parser.c:11727)
==29528==    by 0x60EA78: c_parser_oacc_all_clauses(c_parser*, omp_clause_mask,
char const*, bool) (c-parser.c:13015)
==29528==    by 0x60F7E8: c_parser_oacc_kernels_parallel (c-parser.c:13936)
==29528==    by 0x60F7E8: c_parser_omp_construct (c-parser.c:17140)
==29528==    by 0x60F7E8: c_parser_pragma(c_parser*, pragma_context, bool*)
(c-parser.c:10207)
==29528==    by 0x615FAE: c_parser_compound_statement_nostart(c_parser*)
(c-parser.c:4826)
==29528==    by 0x62749E: c_parser_compound_statement(c_parser*)
(c-parser.c:4693)

GCC 6 branch has the same issue, 5.3.1 looks fine.

Martin


More information about the Gcc-bugs mailing list