xref: /llvm-project/llvm/test/tools/llvm-ml/struct_errors.asm (revision 8fee2ee9a689276eaea61d4c3f124aa80a81b6f7)
1*8fee2ee9SEric Astor# RUN: not llvm-ml -filetype=s %s /Fo /dev/null 2>&1 | FileCheck %s --dump-input=always
2*8fee2ee9SEric Astor
3*8fee2ee9SEric Astor.data
4*8fee2ee9SEric Astorint_test STRUCT
5*8fee2ee9SEric Astor  int_arr DWORD ?, ?
6*8fee2ee9SEric Astor  int_scalar DWORD ?
7*8fee2ee9SEric Astorint_test ENDS
8*8fee2ee9SEric Astor
9*8fee2ee9SEric Astort1 int_test <<1,2,3>>
10*8fee2ee9SEric Astor// CHECK: error: Initializer too long for field; expected at most 2 elements, got 3
11*8fee2ee9SEric Astor
12*8fee2ee9SEric Astort2 int_test <4>
13*8fee2ee9SEric Astor// CHECK: error: Cannot initialize array field with scalar value
14*8fee2ee9SEric Astor
15*8fee2ee9SEric Astort3 int_test <,<5,6>>
16*8fee2ee9SEric Astor// CHECK: error: Cannot initialize scalar field with array value
17*8fee2ee9SEric Astor
18*8fee2ee9SEric Astorreal_test STRUCT
19*8fee2ee9SEric Astor  real_arr REAL4 ?, ?, ?
20*8fee2ee9SEric Astor  real_scalar REAL4 ?
21*8fee2ee9SEric Astorreal_test ENDS
22*8fee2ee9SEric Astor
23*8fee2ee9SEric Astort4 real_test <<1.0,0.0,-1.0,-2.0>>
24*8fee2ee9SEric Astor// CHECK: error: Initializer too long for field; expected at most 3 elements, got 4
25*8fee2ee9SEric Astor
26*8fee2ee9SEric Astort5 real_test <2.0>
27*8fee2ee9SEric Astor// CHECK: error: Cannot initialize array field with scalar value
28*8fee2ee9SEric Astor
29*8fee2ee9SEric Astort6 real_test <,<2.0,-2.0>>
30*8fee2ee9SEric Astor// CHECK: error: Cannot initialize scalar field with array value
31*8fee2ee9SEric Astor
32*8fee2ee9SEric Astorinner_struct STRUCT
33*8fee2ee9SEric Astor  a BYTE ?
34*8fee2ee9SEric Astorinner_struct ENDS
35*8fee2ee9SEric Astor
36*8fee2ee9SEric Astorstruct_test STRUCT
37*8fee2ee9SEric Astor  struct_arr inner_struct 4 DUP (?)
38*8fee2ee9SEric Astor  struct_scalar inner_struct ?
39*8fee2ee9SEric Astorstruct_test ENDS
40*8fee2ee9SEric Astor
41*8fee2ee9SEric Astort7 struct_test <<<>, <>, <>, <>, <>>>
42*8fee2ee9SEric Astor// CHECK: error: Initializer too long for field; expected at most 4 elements, got 5
43*8fee2ee9SEric Astor
44*8fee2ee9SEric Astort8 struct_test <,<<>, <>>>
45*8fee2ee9SEric Astor// CHECK: error: 'inner_struct' initializer initializes too many fields
46*8fee2ee9SEric Astor
47*8fee2ee9SEric Astort9 STRUCT 3
48*8fee2ee9SEric Astor// CHECK: error: alignment must be a power of two; was 3
49*8fee2ee9SEric Astort9 ENDS
50*8fee2ee9SEric Astor
51*8fee2ee9SEric Astort10 STRUCT 1, X
52*8fee2ee9SEric Astor// CHECK: error: Unrecognized qualifier for 'STRUCT' directive; expected none or NONUNIQUE
53*8fee2ee9SEric Astort10 ENDS
54*8fee2ee9SEric Astor
55*8fee2ee9SEric Astort11 STRUCT
56*8fee2ee9SEric Astordifferent_struct ENDS
57*8fee2ee9SEric Astor// CHECK: error: mismatched name in ENDS directive; expected 't11'
58