Bug 115162 - ICE in OpenMP target data map directive
Summary: ICE in OpenMP target data map directive
Status: UNCONFIRMED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 14.1.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: openmp
Depends on:
Blocks:
 
Reported: 2024-05-20 11:45 UTC by Bert Wesarg
Modified: 2024-05-20 20:57 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
Reduced and prepocesed target_struct_map.4.c (6.42 KB, text/plain)
2024-05-20 11:45 UTC, Bert Wesarg
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bert Wesarg 2024-05-20 11:45:47 UTC
Created attachment 58251 [details]
Reduced and prepocesed target_struct_map.4.c

target_struct_map.4.c from the OpenMP test suite causes an ICE in 14.1.0 with `-foffload=disabled` . Here is a further reduced input:

gcc -v -g -fopenmp -foffload=disable -c target_struct_map.4.c -o target_struct_map.4.o -freport-bug -fdump-debug -save-temps
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-pc-linux-gnu
Configured with: ../configure --silent --enable-silent-rules --prefix=/home/wesarg/opt/gcc-14.1-wo-lto --enable-languages=c,c++,fortran --enable-threads=posix --disable-nls --enable-bootstrap --enable-plugin --enable-default-pie --disable-werror --enable-checking --disable-multilib --enable-__cxa_atexit --with-linker-hash-style=gnu --enable-initfini-array --enable-gnu-indirect-function --enable-cet --silent
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.1.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-target_struct_map.4.ig' '-fopenmp' '-c' '-o' 'target_struct_map.4.o' '-freport-bug' '-fdump-debug' '-save-temps' '-mtune=generic' '-march=x86-64' '-pthread'
 /home/wesarg/opt/gcc-14.1-wo-lto/libexec/gcc/x86_64-pc-linux-gnu/14.1.0/cc1 -E -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT target_struct_map.4.c -mtune=generic -march=x86-64 -fopenmp -freport-bug -fdump-debug -g -fworking-directory -fpch-preprocess -o target_struct_map.4.i
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/home/wesarg/opt/gcc-14.1-wo-lto/lib/gcc/x86_64-pc-linux-gnu/14.1.0/../../../../x86_64-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/wesarg/opt/gcc-14.1-wo-lto/lib/gcc/x86_64-pc-linux-gnu/14.1.0/include
 /usr/local/include
 /home/wesarg/opt/gcc-14.1-wo-lto/include
 /home/wesarg/opt/gcc-14.1-wo-lto/lib/gcc/x86_64-pc-linux-gnu/14.1.0/include-fixed/x86_64-linux-gnu
 /home/wesarg/opt/gcc-14.1-wo-lto/lib/gcc/x86_64-pc-linux-gnu/14.1.0/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-g' '-fopenmp' '-c' '-o' 'target_struct_map.4.o' '-freport-bug' '-fdump-debug' '-save-temps' '-mtune=generic' '-march=x86-64' '-pthread'
 /home/wesarg/opt/gcc-14.1-wo-lto/libexec/gcc/x86_64-pc-linux-gnu/14.1.0/cc1 -fpreprocessed target_struct_map.4.i -quiet -dumpbase target_struct_map.4.c -dumpbase-ext .c -mtune=generic -march=x86-64 -g -version -fopenmp -freport-bug -fdump-debug -o target_struct_map.4.s
GNU C17 (GCC) version 14.1.0 (x86_64-pc-linux-gnu)
        compiled by GNU C version 14.1.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: caa98156640761a022c1187cabbd56e6
target_struct_map.4.c: In function 'main':
target_struct_map.4.c:41:9: internal compiler error: Segmentation fault
   41 | #pragma omp target data map(S.p[:N], S.p, S.a)
      |         ^~~
0x10023ff crash_signal
        ../../gcc/toplev.cc:319
0x7f5c91b7108f ???
        /build/glibc-e2p3jK/glibc-2.31/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0xcb3353 tree_check(tree_node*, char const*, int, char const*, tree_code)
        ../../gcc/tree.h:3623
0xcb3353 omp_gather_mapping_groups_1
        ../../gcc/gimplify.cc:9687
0xcc6ca2 omp_gather_mapping_groups
        ../../gcc/gimplify.cc:9714
0xcc6ca2 gimplify_adjust_omp_clauses
        ../../gcc/gimplify.cc:13837
0xcdf137 gimplify_omp_workshare
        ../../gcc/gimplify.cc:16948
0xcc10fa gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int)
        ../../gcc/gimplify.cc:18426
0xcc3d46 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7578
0xcc279b gimplify_statement_list
        ../../gcc/gimplify.cc:2249
0xcc279b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int)
        ../../gcc/gimplify.cc:18329
0xcc3d46 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7578
0xcc45b6 gimplify_bind_expr
        ../../gcc/gimplify.cc:1641
0xcc19d3 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int)
        ../../gcc/gimplify.cc:18085
0xcc3d46 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7578
0xcc279b gimplify_statement_list
        ../../gcc/gimplify.cc:2249
0xcc279b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int)
        ../../gcc/gimplify.cc:18329
0xcd9125 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7578
0xcd9125 gimplify_body(tree_node*, bool)
        ../../gcc/gimplify.cc:19151
0xcd9576 gimplify_function_tree(tree_node*)
        ../../gcc/gimplify.cc:19352
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
The bug is not reproducible, so it is likely a hardware or OS problem.

Removing either member a or converting p to a fixed length array (p[N]) avoids the ICE