[Bug middle-end/88587] ICE in expand_debug_locations, at cfgexpand.c:5450
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 14 15:16:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88587
--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
> It's quite strange that following is fine:
>
> $ cat pr88587-2.c
> __attribute__((target("default"))) void a() {
> __attribute__((__vector_size__(4 * sizeof(float)))) int b = {};
> }
>
> __attribute__((target("sse2"))) void a2() {
> __attribute__((__vector_size__(4 * sizeof(float)))) int b = {};
> }
>
> $ gcc -c -m32 -mno-sse -O -g pr88587-2.c
>
> I'll investigate how precisely the debug insn looks like in both situations.
I was wrong, this also fails, so not target_clone attribute related:
$ cat ~/Programming/testcases/pr88587-2.c
__attribute__((target("default"),always_inline)) void a() {
__attribute__((__vector_size__(4 * sizeof(float)))) int b = {};
}
__attribute__((target("sse2"))) void a2() {
a ();
__attribute__((__vector_size__(4 * sizeof(float)))) int b = {};
}
$ gcc ~/Programming/testcases/pr88587-2.c -c -m32 -mno-sse -O -g
/home/marxin/Programming/testcases/pr88587-2.c:1:55: warning: always_inline
function might not be inlinable [-Wattributes]
__attribute__((target("default"),always_inline)) void a() {
^
during RTL pass: expand
/home/marxin/Programming/testcases/pr88587-2.c: In function ‘a2’:
/home/marxin/Programming/testcases/pr88587-2.c:5:38: internal compiler error:
in expand_debug_locations, at cfgexpand.c:5403
__attribute__((target("sse2"))) void a2() {
^~
0x7ffff6996fea __libc_start_main
../csu/libc-start.c:308
The ICE is very old, starting from GCC 4.8.0. Before that target attribute was
not known yet.
More information about the Gcc-bugs
mailing list