mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
b88bba840f
Match ML.EXE's behavior for ALIGN, EVEN, and ORG directives both at file level and in STRUCTs. We currently reject negative offsets passed to ORG inside STRUCTs (in ML.EXE and ML64.EXE, they wrap around as for an unsigned 32-bit integer). Also, if a STRUCT is declared using an ORG directive, no value of that type can be defined. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D92507
22 lines
486 B
NASM
22 lines
486 B
NASM
; RUN: not llvm-ml -filetype=s %s /Fo /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
|
|
|
|
.data
|
|
org_struct STRUCT
|
|
x BYTE ?
|
|
x_succ BYTE ?
|
|
ORG 15
|
|
y BYTE ?
|
|
y_succ BYTE ?
|
|
|
|
; CHECK: :[[# @LINE + 1]]:7: error: expected non-negative value in struct's 'org' directive; was -4
|
|
ORG -4
|
|
|
|
z BYTE ?
|
|
z_succ BYTE ?
|
|
org_struct ENDS
|
|
|
|
; CHECK: :[[# @LINE + 1]]:16: error: cannot initialize a value of type 'org_struct'; 'org' was used in the type's declaration
|
|
x org_struct <>
|
|
|
|
end
|