blob: 9c160be02fd33e73a2dd96c49c8da9e5b9dd74f3 [file] [log] [blame]
Chad Rosier148bab22013-04-02 20:03:29 +00001// REQUIRES: x86-64-registered-target
2// RUN: %clang_cc1 -x c++ %s -triple i386-apple-darwin10 -O0 -fasm-blocks -emit-llvm -o - | FileCheck %s
3
4struct Foo {
5 static int *ptr;
6 static int a, b;
7 struct Bar {
8 static int *ptr;
9 };
10};
11
12void t1() {
13 Foo::ptr = (int *)0xDEADBEEF;
14 Foo::Bar::ptr = (int *)0xDEADBEEF;
15 __asm mov eax, Foo::ptr
16 __asm mov eax, Foo::Bar::ptr
17 __asm mov eax, [Foo::ptr]
18 __asm mov eax, dword ptr [Foo::ptr]
19 __asm mov eax, dword ptr [Foo::ptr]
20// CHECK: @_Z2t1v
21// CHECK: call void asm sideeffect inteldialect "mov eax, Foo::ptr", "~{eax},~{dirflag},~{fpsr},~{flags}"()
22// CHECK: call void asm sideeffect inteldialect "mov eax, Foo::Bar::ptr", "~{eax},~{dirflag},~{fpsr},~{flags}"()
23// CHECK: call void asm sideeffect inteldialect "mov eax, [Foo::ptr]", "~{eax},~{dirflag},~{fpsr},~{flags}"()
24// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr [Foo::ptr]", "~{eax},~{dirflag},~{fpsr},~{flags}"()
25// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr [Foo::ptr]", "~{eax},~{dirflag},~{fpsr},~{flags}"()
26}