[Bug bootstrap/14462] [3.5 Regression] a-calend.adb:396:33: warning: value not in range of type "Ada.Calendar.Day_Duration"
dave at hiauly1 dot hia dot nrc dot ca
gcc-bugzilla@gcc.gnu.org
Sun Mar 7 18:26:00 GMT 2004
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2004-03-07 18:26 -------
Subject: Re: [3.5 Regression] a-calend.adb:396:33: warning: value not in range of type "Ada.Calendar.Day_Duration"
> The change for pa.c looks fine to me, maybe it was somewhere else. Also I have to agree with Paolo
> about the Ada changes as they make it hard to regtest something.
Paolo's patch introduced the gnat1 segv. Until we find out what's
causing the segv, I don't think we can say whether there is a problem
with the ada change. We had an almost "identical" problem a few months
ago caused by an optimization problem.
I don't see a problem with the change to pa.c I think there was some
change in Paolo's patch beyond the introduction of new macros.
I've looked at the segv a bit. It's caused by a null value being
returned for a pointer. I don't see any problem with the code.
The problem would appear to be related to the initialization/setting
of the "struct" that holds the pointer. I don't know where this
is done.
(gdb) bt
#0 0x001737c0 in system__soft_links__get_sec_stack_addr_nt ()
at ../../gcc/gcc/ada/s-soflin.adb:232
#1 0x00174500 in system__secondary_stack__ss_mark ()
at ../../gcc/gcc/ada/s-secsta.adb:462
#2 0x0025dc2c in _ada_gnat1drv () at ../../gcc/gcc/ada/gnat1drv.ads:33
#3 0x004095bc in toplev_main (argc=6065464, argv=0x5c8d38)
at ../../gcc/gcc/toplev.c:1575
0x001737bc <system__soft_links__get_sec_stack_addr_nt+0>: addil 25d800,dp,%r1
0x001737c0 <system__soft_links__get_sec_stack_addr_nt+4>: bv r0(rp)
0x001737c4 <system__soft_links__get_sec_stack_addr_nt+8>: ldw 57c(,r1),ret0
(gdb) disass 0x001744f4 0x00174514
Dump of assembler code from 0x1744f4 to 0x174514:
0x001744f4 <system__secondary_stack__ss_mark+12>: ldw 488(,r1),r22
0x001744f8 <system__secondary_stack__ss_mark+16>: b,l 0x147dcc <osint__file_stamp_hash_table__tab__TtableBIPXb+5576>,r31
0x001744fc <system__secondary_stack__ss_mark+20>: copy r31,rp
0x00174500 <system__secondary_stack__ss_mark+24>: ldw -54(,sp),rp
0x00174504 <system__secondary_stack__ss_mark+28>: ldw 0(,ret0),ret0
0x00174508 <system__secondary_stack__ss_mark+32>: bv r0(rp)
0x0017450c <system__secondary_stack__ss_mark+36>: ldo -40(sp),sp
0x00174510 <system__secondary_stack__ss_release+0>: addil 1800,dp,%r1
The segv is at 0x00174504 following the return from
system__soft_links__get_sec_stack_addr_nt. The call at 0x001744f8
is an indirect call.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14462
More information about the Gcc-bugs
mailing list