------- Additional Comments From pluto at agmk dot net  2005-09-18 14:30 -------
reduced testcase: 
 
with ada.text_io; 
use ada.text_io; 
procedure xsinfo is 
   done : exception; 
begin 
   raise done; 
exception 
   when done => 
     put("ex. catched."); 
end xsinfo; 
 
[EMAIL PROTECTED] ~]$ gcc -S -fverbose-asm xsinfo.adb -fdump-tree-all 
 
[EMAIL PROTECTED] ~]$ gnatmake xsinfo.adb 
gcc -c xsinfo.adb 
gnatbind -x xsinfo.ali 
gnatlink xsinfo.ali 
 
[EMAIL PROTECTED] ~]$ ./xsinfo 
raised XSINFO.DONE : xsinfo.adb:6 
 
i can't see an my custom ex. handler in code. 
 
        .file   "xsinfo.adb" 
        .data 
        .type   doneE.711, @object 
        .size   doneE.711, 12 
doneE.711: 
        .string "XSINFO.DONE" 
        .type   doneF.715, @object 
        .size   doneF.715, 1 
doneF.715: 
        .byte   1 
        .align 32 
        .type   done.716, @object 
        .size   done.716, 40 
done.716: 
# not_handled_by_others: 
        .byte   0 
# lang: 
        .byte   65 
# name_length: 
        .zero   2 
        .long   12 
# full_name: 
        .quad   doneE.711 
# htable_ptr: 
        .quad   0 
# import_code: 
        .long   0 
# raise_hook: 
        .zero   4 
        .quad   0 
        .section        .rodata 
        .align 4 
        .type   C.0.746, @object 
        .size   C.0.746, 8 
C.0.746: 
# LB0: 
        .long   1 
# UB0: 
        .long   12 
.LC0: 
        .ascii  "xsinfo.adb:6" 
        .text 
.globl _ada_xsinfo 
        .type   _ada_xsinfo, @function 
_ada_xsinfo: 
.LFB3: 
        pushq   %rbp    # 
.LCFI0: 
        movq    %rsp, %rbp      #, 
.LCFI1: 
        subq    $32, %rsp       #, 
.LCFI2: 
        movl    $doneE.711, %eax        #, doneE.1 
        movq    %rax, -8(%rbp)  # doneE.2, R2b 
        movzbl  doneF.715(%rip), %eax   # doneF, doneF.3 
        testb   %al, %al        # doneF.3 
        je      .L2     #, 
        movl    $done.716, %edi #, done.4 
        call    system__exception_table__register_exception     # 
        movb    $0, doneF.715(%rip)     #, doneF 
.L2: 
        movl    $.LC0, %eax     #, D.752 
        movq    %rax, -32(%rbp) # D.752, D.751.P_ARRAY 
        movq    $C.0.746, -24(%rbp)     #, D.751.P_BOUNDS 
        movl    $done.716, %edi #, done.5 
        movq    -32(%rbp), %rsi # D.751, D.751 
        movq    -24(%rbp), %rdx # D.751, D.751 
        call    __gnat_raise_exception  # 
.LFE3: 
        .size   _ada_xsinfo, .-_ada_xsinfo 
        .section        .eh_frame,"a",@progbits 
.Lframe1: 
        .long   .LECIE1-.LSCIE1 
.LSCIE1: 
        .long   0x0 
        .byte   0x1 
        .string "zR" 
        .uleb128 0x1 
        .sleb128 -8 
        .byte   0x10 
        .uleb128 0x1 
        .byte   0x3 
        .byte   0xc 
        .uleb128 0x7 
        .uleb128 0x8 
        .byte   0x90 
        .uleb128 0x1 
        .align 8 
.LECIE1: 
.LSFDE1: 
        .long   .LEFDE1-.LASFDE1 
.LASFDE1: 
        .long   .LASFDE1-.Lframe1 
        .long   .LFB3 
        .long   .LFE3-.LFB3 
        .uleb128 0x0 
        .byte   0x4 
        .long   .LCFI0-.LFB3 
        .byte   0xe 
        .uleb128 0x10 
        .byte   0x86 
        .uleb128 0x2 
        .byte   0x4 
        .long   .LCFI1-.LCFI0 
        .byte   0xd 
        .uleb128 0x6 
        .align 8 
.LEFDE1: 
        .ident  "GCC: (GNU) 4.1.0 20050904 (experimental)" 
        .section        .note.GNU-stack,"",@progbits 
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23894

Reply via email to