diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-03-08 22:44:50 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-03-08 22:44:50 +0000 | 
| commit | f463519f0c1a0c20f6a0d1c61814f0b1b4183a10 (patch) | |
| tree | c7ce8c258e1f5b4fb4c087cf8bc9ada05a6041b5 /test/CodeGen/x86-64-inline-asm.c | |
| parent | 1dda0966cc880e12302298fb005bacb5fb294b93 (diff) | |
Diffstat (limited to 'test/CodeGen/x86-64-inline-asm.c')
| -rw-r--r-- | test/CodeGen/x86-64-inline-asm.c | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/test/CodeGen/x86-64-inline-asm.c b/test/CodeGen/x86-64-inline-asm.c index bb46eda633b7..79c1bd95f38b 100644 --- a/test/CodeGen/x86-64-inline-asm.c +++ b/test/CodeGen/x86-64-inline-asm.c @@ -1,6 +1,7 @@  // REQUIRES: x86-registered-target  // RUN: %clang_cc1 -triple x86_64 %s -S -o /dev/null -DWARN -verify  // RUN: %clang_cc1 -triple x86_64 %s -S -o /dev/null -Werror -verify +// RUN: %clang_cc1 -triple x86_64-linux-gnu %s -S -o - | FileCheck %s  void f() {    asm("movaps %xmm3, (%esi, 2)");  // expected-note@1 {{instantiated into assembly here}} @@ -15,3 +16,17 @@ static unsigned var[1] = {};  void g(void) { asm volatile("movd %%xmm0, %0"                              :                              : "m"(var)); } + +void pr40890(void) { +  struct s { +    int a, b; +  } s; +  __asm__ __volatile__("\n#define S_A abcd%0\n" : : "n"(&((struct s*)0)->a)); +  __asm__ __volatile__("\n#define S_B abcd%0\n" : : "n"(&((struct s*)0)->b)); +  __asm__ __volatile__("\n#define BEEF abcd%0\n" : : "n"((int*)0xdeadbeeeeeef)); + +// CHECK-LABEL: pr40890 +// CHECK: #define S_A abcd$0 +// CHECK: #define S_B abcd$4 +// CHECK: #define BEEF abcd$244837814038255 +}  | 
