#include <stdio.h> void abend_proc (); int main(void) { abend_proc(); return; } void abend_proc () { printf("____abend_____ kita----"); exit(1); } 〔リスト38〕noreturn属性を使用する例(test69.c) #include <stdio.h> void abend_proc () __attribute__ ((noreturn)); int main(void) { abend_proc(); return; } void abend_proc () { printf("____abend_____ kita----"); exit(1); } |
.file "test68.c" .version "01.01" gcc2_compiled.: .section .rodata .LC0: .string "____abend_____ kita----" .text .align 4 .globl abend_proc .type abend_proc,@function abend_proc: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-12,%esp pushl $.LC0 call printf addl $-12,%esp pushl $1 call exit .Lfe1: .size abend_proc,.Lfe1-abend_proc .align 4 .globl main .type main,@function main: pushl %ebp movl %esp,%ebp subl $8,%esp call abend_proc movl %ebp,%esp popl %ebp ret .Lfe2: .size main,.Lfe2-main .ident "GCC: (GNU) 2.95.3 20010315 (release)" |
#include <stdio.h> void abend_proc () __attribute__ ((noreturn)); int main(void) { abend_proc(); return; } void abend_proc () { printf("____abend_____ kita----"); exit(1); } |
.file "test69.c" .version "01.01" gcc2_compiled.: .section .rodata .LC0: .string "____abend_____ kita----" .text .align 4 .globl abend_proc .type abend_proc,@function abend_proc: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-12,%esp pushl $.LC0 call printf addl $-12,%esp pushl $1 call exit .Lfe1: .size abend_proc,.Lfe1-abend_proc .align 4 .globl main .type main,@function main: pushl %ebp movl %esp,%ebp subl $8,%esp call abend_proc .Lfe2: .size main,.Lfe2-main .ident "GCC: (GNU) 2.95.3 20010315 (release)" |