Browse Source
2010-09-15 Kai Tietz <kai.tietz@onevision.com> * config/obj-coff-seh.c (seh_validate_seg): New funtion. (obj_coff_seh_endproc): Add check for segment. (obj_coff_seh_endprologue): Likewise. (obj_coff_seh_pushreg): Likewise. (obj_coff_seh_pushframe): Likewise. (obj_coff_seh_save): Likewise. (obj_coff_seh_setframe): Likewise. ChangeLog gas/testsuite 2010-09-15 Kai Tietz <kai.tietz@onevision.com> * gas/pe/pe.exp: Add new test. * gas/pe/seh-x64-err-1.l: New. * gas/pe/seh-x64-err-1.s: New.binutils-2_21-branch
6 changed files with 113 additions and 16 deletions
@ -0,0 +1,24 @@ |
|||
.*: Assembler messages: |
|||
.*:5: Error: .seh_endproc used without .seh_proc |
|||
.*:6: Error: .seh_stackalloc used outside of .seh_proc block |
|||
.*:7: Error: .seh_setframe used outside of .seh_proc block |
|||
.*:8: Error: .seh_endprologue used outside of .seh_proc block |
|||
.*:9: Error: .seh_pushreg used outside of .seh_proc block |
|||
.*:10: Error: .seh_savereg used outside of .seh_proc block |
|||
.*:11: Error: .seh_savexmm used outside of .seh_proc block |
|||
.*:12: Error: .seh_handler used outside of .seh_proc block |
|||
.*:13: Error: .seh_handler used outside of .seh_proc block |
|||
.*:14: Error: .seh_handler used outside of .seh_proc block |
|||
.*:15: Error: .seh_handler used outside of .seh_proc block |
|||
.*:16: Error: .seh_handlerdata used outside of .seh_proc block |
|||
.*:19: Error: .seh_proc requires function label name |
|||
.*:23: Warning: .seh_eh ignored for this target |
|||
.*:24: Warning: .seh_32 ignored for this target |
|||
.*:25: Warning: .seh_no32 ignored for this target |
|||
.*:33: Error: .seh_stackalloc used in segment '.data' instead of expected '.text' |
|||
.*:34: Error: .seh_setframe used in segment '.data' instead of expected '.text' |
|||
.*:35: Error: .seh_endprologue used in segment '.data' instead of expected '.text' |
|||
.*:36: Error: .seh_pushreg used in segment '.data' instead of expected '.text' |
|||
.*:37: Error: .seh_savereg used in segment '.data' instead of expected '.text' |
|||
.*:38: Error: .seh_savexmm used in segment '.data' instead of expected '.text' |
|||
.*:39: Error: .seh_endproc used in segment '.data' instead of expected '.text' |
|||
@ -0,0 +1,40 @@ |
|||
.file "t1.c" |
|||
.text |
|||
#seh pseudos out of seh_proc block |
|||
|
|||
.seh_endproc |
|||
.seh_stackalloc 8 |
|||
.seh_setframe %rbp, 0 |
|||
.seh_endprologue |
|||
.seh_pushreg %rbp |
|||
.seh_savereg %rbp |
|||
.seh_savexmm %xmm1 |
|||
.seh_handler dummy_handler |
|||
.seh_handler dummy_handler, @unwind |
|||
.seh_handler dummy_handler, @except |
|||
.seh_handler dummy_handler, @unwind,@except |
|||
.seh_handlerdata |
|||
.long 0 |
|||
.text |
|||
.seh_proc |
|||
|
|||
.seh_proc test_foreign_directives |
|||
test_foreign_directives: |
|||
.seh_eh |
|||
.seh_32 |
|||
.seh_no32 |
|||
.long 0 |
|||
.seh_endproc |
|||
|
|||
# test for wrong segment pseudos. |
|||
.seh_proc test_wrong_segment |
|||
test_wrong_segment: |
|||
.data |
|||
.seh_stackalloc 8 |
|||
.seh_setframe %rbp, 0 |
|||
.seh_endprologue |
|||
.seh_pushreg %rbp |
|||
.seh_savereg %rbp |
|||
.seh_savexmm %xmm1 |
|||
.seh_endproc |
|||
|
|||
Loading…
Reference in new issue