brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 3e445b8 Raw
55 lines · cpp
1// REQUIRES: x86-registered-target2// RUN: %clang_cc1 %s -triple i386-apple-darwin10 -fasm-blocks -verify3 4struct A {5  int a1;6  int a2;7  struct B {8    int b1;9    int b2;10    enum { kValue = 42 };11  } a3;12  struct {13    int indirect_field;14  };15};16 17namespace asdf {18A a_global;19}20 21// The parser combines adjacent __asm blocks into one. Avoid that by calling22// this.23void split_inline_asm_call();24 25void test_field_lookup() {26  __asm mov eax, asdf::a_global.a3.b227  split_inline_asm_call();28 29  // FIXME: These diagnostics are crap.30 31  // expected-error@+1 {{undeclared label}}32  __asm mov eax, asdf::a_global.not_a_field.b233  split_inline_asm_call();34 35  // expected-error@+1 {{undeclared label}}36  __asm mov eax, asdf::a_global.a3.not_a_field37  split_inline_asm_call();38 39  __asm mov eax, A::B::kValue40  split_inline_asm_call();41 42  // expected-error@+1 {{undeclared label}}43  __asm mov eax, asdf::a_global.a3.kValue44  split_inline_asm_call();45 46  __asm mov eax, asdf :: a_global.a3.b247  split_inline_asm_call();48 49  __asm mov eax, asdf::a_global . a3 . b250  split_inline_asm_call();51 52  __asm mov eax, asdf::a_global.indirect_field53  split_inline_asm_call();54}55