https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94029
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dmalcolm at gcc dot gnu.org,
| |mpolacek at gcc dot gnu.org
--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
We really end up with the following bogus locations for test_t2:
xloc = expand_location (DECL_SOURCE_LOCATION (current_function_decl));
expanded_location endloc = expand_location (cfun->function_end_locus);
start location:
(gdb) p xloc
$2 = {
file = 0x7fffffffe034 "/home/marxin/Programming/testcases/pr94029.c",
line = 3,
column = 3,
data = 0x0,
sysp = false
}
end location:
(gdb) p endloc
$3 = {
file = 0x7fffffffe034 "/home/marxin/Programming/testcases/pr94029.c",
line = 2,
column = 1,
data = 0x0,
sysp = false
}
So it's probably a C error or linemap error? Here's where we set
cfun->function_end_locus = input_location:
#0 finish_function () at ../../gcc/c/c-decl.c:9931
#1 0x00000000009c6d1a in c_parser_declaration_or_fndef (parser=0x7ffff7fc6ab0,
fndef_ok=true, static_assert_ok=true, empty_ok=true, nested=false,
start_attr_ok=true, objc_foreach_object_declaration=0x0,
omp_declare_simd_clauses=..., have_attrs=false, attrs=<tree 0x0>,
oacc_routine_data=0x0, fallthru_attr_p=0x0) at ../../gcc/c/c-parser.c:2523
#2 0x00000000009c5139 in c_parser_external_declaration (parser=0x7ffff7fc6ab0)
at ../../gcc/c/c-parser.c:1746
#3 0x00000000009c4c9b in c_parser_translation_unit (parser=0x7ffff7fc6ab0) at
../../gcc/c/c-parser.c:1619
#4 0x0000000000a02b56 in c_parse_file () at ../../gcc/c/c-parser.c:21710
#5 0x0000000000a8c47d in c_common_parse_file () at
../../gcc/c-family/c-opts.c:1186
#6 0x00000000012c2818 in compile_file () at ../../gcc/toplev.c:458
#7 0x00000000012c5a2e in do_compile () at ../../gcc/toplev.c:2273
#8 0x00000000012c5d27 in toplev::main (this=0x7fffffffd97e, argc=20,
argv=0x7fffffffda88) at ../../gcc/toplev.c:2412
#9 0x000000000235a260 in main (argc=20, argv=0x7fffffffda88) at
../../gcc/main.c:39