diff options
author | Reid Kleckner <rnk@google.com> | 2016-11-29 00:39:37 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2016-11-29 00:39:37 +0000 |
commit | fec0f32ea90ec50c79492ce046c3622cfe981d29 (patch) | |
tree | d0a147d5a51a4daaae8d3abb49682819d5530008 | |
parent | c68a6c4ca9faf6eb332383b105483204b2ed61d5 (diff) | |
download | bcm5719-llvm-fec0f32ea90ec50c79492ce046c3622cfe981d29.tar.gz bcm5719-llvm-fec0f32ea90ec50c79492ce046c3622cfe981d29.zip |
Use ${:uid} to generate unique MS asm labels, not {:uid}
llvm-svn: 288093
-rw-r--r-- | clang/lib/Sema/SemaStmtAsm.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGen/mozilla-ms-inline-asm.c | 4 | ||||
-rw-r--r-- | clang/test/CodeGen/ms-inline-asm.c | 14 | ||||
-rw-r--r-- | clang/test/CodeGen/ms-inline-asm.cpp | 4 |
4 files changed, 12 insertions, 12 deletions
diff --git a/clang/lib/Sema/SemaStmtAsm.cpp b/clang/lib/Sema/SemaStmtAsm.cpp index f11e7aaa34f..0064a2c5121 100644 --- a/clang/lib/Sema/SemaStmtAsm.cpp +++ b/clang/lib/Sema/SemaStmtAsm.cpp @@ -753,7 +753,7 @@ LabelDecl *Sema::GetOrCreateMSAsmLabel(StringRef ExternalLabelName, // Create an internal name for the label. The name should not be a valid mangled // name, and should be unique. We use a dot to make the name an invalid mangled // name. - OS << "__MSASMLABEL_.{:uid}__"; + OS << "__MSASMLABEL_.${:uid}__"; for (char C : ExternalLabelName) { OS << C; // We escape '$' in asm strings by replacing it with "$$" diff --git a/clang/test/CodeGen/mozilla-ms-inline-asm.c b/clang/test/CodeGen/mozilla-ms-inline-asm.c index b15595632d2..3335a87fefe 100644 --- a/clang/test/CodeGen/mozilla-ms-inline-asm.c +++ b/clang/test/CodeGen/mozilla-ms-inline-asm.c @@ -20,7 +20,7 @@ void invoke(void* that, unsigned methodIndex, // CHECK: call void asm sideeffect inteldialect // CHECK: mov edx,dword ptr $1 // CHECK: test edx,edx -// CHECK: jz {{[^_]*}}__MSASMLABEL_.{:uid}__noparams +// CHECK: jz {{[^_]*}}__MSASMLABEL_.${:uid}__noparams // ^ Can't use {{.*}} here because the matching is greedy. // CHECK: mov eax,edx // CHECK: shl eax,$$3 @@ -28,7 +28,7 @@ void invoke(void* that, unsigned methodIndex, // CHECK: mov ecx,esp // CHECK: push dword ptr $0 // CHECK: call dword ptr $2 -// CHECK: {{.*}}__MSASMLABEL_.{:uid}__noparams: +// CHECK: {{.*}}__MSASMLABEL_.${:uid}__noparams: // CHECK: mov ecx,dword ptr $3 // CHECK: push ecx // CHECK: mov edx,[ecx] diff --git a/clang/test/CodeGen/ms-inline-asm.c b/clang/test/CodeGen/ms-inline-asm.c index 0e9271fe720..6efc09aec51 100644 --- a/clang/test/CodeGen/ms-inline-asm.c +++ b/clang/test/CodeGen/ms-inline-asm.c @@ -249,7 +249,7 @@ void t23() { the_label: } // CHECK: t23 -// CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.{:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"() +// CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.${:uid}__the_label:", "~{dirflag},~{fpsr},~{flags}"() } void t24_helper(void) {} @@ -595,7 +595,7 @@ void label1() { jmp label } // CHECK-LABEL: define void @label1() - // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09jmp {{.*}}__MSASMLABEL_.{:uid}__label", "~{dirflag},~{fpsr},~{flags}"() [[ATTR1:#[0-9]+]] + // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09jmp {{.*}}__MSASMLABEL_.${:uid}__label", "~{dirflag},~{fpsr},~{flags}"() [[ATTR1:#[0-9]+]] } void label2() { @@ -604,7 +604,7 @@ void label2() { label: } // CHECK-LABEL: define void @label2 - // CHECK: call void asm sideeffect inteldialect "jmp {{.*}}__MSASMLABEL_.{:uid}__label\0A\09{{.*}}__MSASMLABEL_.{:uid}__label:", "~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "jmp {{.*}}__MSASMLABEL_.${:uid}__label\0A\09{{.*}}__MSASMLABEL_.${:uid}__label:", "~{dirflag},~{fpsr},~{flags}"() } void label3() { @@ -613,7 +613,7 @@ void label3() { mov eax, label } // CHECK-LABEL: define void @label3 - // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09mov eax, {{.*}}__MSASMLABEL_.{:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09mov eax, {{.*}}__MSASMLABEL_.${:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"() } void label4() { @@ -622,7 +622,7 @@ void label4() { mov eax, [label] } // CHECK-LABEL: define void @label4 - // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.{:uid}__label:\0A\09mov eax, {{.*}}__MSASMLABEL_.{:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "{{.*}}__MSASMLABEL_.${:uid}__label:\0A\09mov eax, {{.*}}__MSASMLABEL_.${:uid}__label", "~{eax},~{dirflag},~{fpsr},~{flags}"() } void label5() { @@ -631,7 +631,7 @@ void label5() { dollar_label$: } // CHECK-LABEL: define void @label5 - // CHECK: call void asm sideeffect inteldialect "jmp {{.*}}__MSASMLABEL_.{:uid}__dollar_label$$\0A\09{{.*}}__MSASMLABEL_.{:uid}__dollar_label$$:", "~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "jmp {{.*}}__MSASMLABEL_.${:uid}__dollar_label$$\0A\09{{.*}}__MSASMLABEL_.${:uid}__dollar_label$$:", "~{dirflag},~{fpsr},~{flags}"() } void label6(){ @@ -640,7 +640,7 @@ void label6(){ label: } // CHECK-LABEL: define void @label6 - // CHECK: call void asm sideeffect inteldialect "jmp {{.*}}__MSASMLABEL_.{:uid}__label\0A\09{{.*}}__MSASMLABEL_.{:uid}__label:", "~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "jmp {{.*}}__MSASMLABEL_.${:uid}__label\0A\09{{.*}}__MSASMLABEL_.${:uid}__label:", "~{dirflag},~{fpsr},~{flags}"() } typedef union _LARGE_INTEGER { diff --git a/clang/test/CodeGen/ms-inline-asm.cpp b/clang/test/CodeGen/ms-inline-asm.cpp index 584122fd933..424c1992cc2 100644 --- a/clang/test/CodeGen/ms-inline-asm.cpp +++ b/clang/test/CodeGen/ms-inline-asm.cpp @@ -126,14 +126,14 @@ void t7_using() { void t8() { __asm some_label: // CHECK-LABEL: define void @_Z2t8v() - // CHECK: call void asm sideeffect inteldialect "L__MSASMLABEL_.{:uid}__some_label:", "~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "L__MSASMLABEL_.${:uid}__some_label:", "~{dirflag},~{fpsr},~{flags}"() struct A { static void g() { __asm jmp some_label ; This should jump forwards __asm some_label: __asm nop // CHECK-LABEL: define internal void @_ZZ2t8vEN1A1gEv() - // CHECK: call void asm sideeffect inteldialect "jmp L__MSASMLABEL_.{:uid}__some_label\0A\09L__MSASMLABEL_.{:uid}__some_label:\0A\09nop", "~{dirflag},~{fpsr},~{flags}"() + // CHECK: call void asm sideeffect inteldialect "jmp L__MSASMLABEL_.${:uid}__some_label\0A\09L__MSASMLABEL_.${:uid}__some_label:\0A\09nop", "~{dirflag},~{fpsr},~{flags}"() } }; A::g(); |