blob: 5d3a853a281f19f07f53a561ecd92afa7e748cbb [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}"()
Chad Rosier0f9790b2013-04-11 21:49:48 +000023// 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}"()
Chad Rosier148bab22013-04-02 20:03:29 +000026}