[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#998177: gnat: segfault in tree_could_trap_p when C double parameter, -O2 -gnatn -gnatVa (regression)



Package: gnat-11
Version: 11.2.0-10
Severity: normal

Hello.

The following valid Ada sources crash 'gcc-11 -O2 -gnatn -gnatVa' as shown below.
All goes well with gcc-10, with -O1, without inlining or without validity checks.

cat > p.ads <<EOF
package P is
   procedure P3;
end P;
EOF
cat > p.adb <<EOF
with Interfaces.C;
package body P is
   procedure P1 (A : Interfaces.C.double) is null;
   procedure P2 (A : Interfaces.C.double) is
   begin
      P1 (A);
   end P2;
   procedure P3 is
   begin
      P2 (0.0);
   end P3;
end P;
EOF
gdb /usr/lib/gcc/x86_64-linux-gnu/11/gnat1
(gdb) run -O2 -dumpbase p.adb -gnatn -gnatVa p.adb
Starting program: /usr/lib/gcc/x86_64-linux-gnu/11/gnat1 -O2 -dumpbase p.adb -gnatn -gnatVa p.adb
[...]
P.P1 P.P2 P.P3 System.Fat_Lflt.Attr_Long_Float.Valid
Analyzing compilation unit
Performing interprocedural optimizations
<*free_lang_data> {heap 2040k} <visibility> {heap 2040k} <build_ssa_passes> {heap 2040k} <opt_local_passes> {heap 2040k} <remove_symbols> {heap 2936k} <targetclone> {heap 2936k} <free-fnsummary> {heap 2936k}Streaming LTO
<whole-program> {heap 2936k} <profile_estimate> {heap 2936k} <icf> {heap 2936k} <devirt> {heap 2936k} <cp> {heap 2936k} <sra> {heap 2936k} <fnsummary> {heap 2936k} <inline> {heap 2936k} <pure-const> {heap 2936k} <modref> {heap 2936k} <fre\
e-fnsummary> {heap 2936k} <static-var> {heap 2936k} <single-use> {heap 2936k} <comdats> {heap 2936k}Assembling functions:
<simdclone> {heap 2936k} P.P3
Program received signal SIGSEGV, Segmentation fault.
0x000000000119a4f6 in tree_could_trap_p(tree_node*) ()


Reply to: