diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-09-07 04:05:06 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-09-07 04:05:06 +0000 |
commit | ce3e2c85b1c010df6907979a68e6147f266d727d (patch) | |
tree | 3233856d3879170045bf819bc2cc023360dd6b04 /clang/test/CodeGen/pragma-weak.c | |
parent | 9d4fac0f9fa36299897f511bbb405be56c7ada3d (diff) | |
download | bcm5719-llvm-ce3e2c85b1c010df6907979a68e6147f266d727d.tar.gz bcm5719-llvm-ce3e2c85b1c010df6907979a68e6147f266d727d.zip |
Make sure the FunctionDecl's created by "#pragma weak" have correct ParmVarDecl's. PR10878.
llvm-svn: 139224
Diffstat (limited to 'clang/test/CodeGen/pragma-weak.c')
-rw-r--r-- | clang/test/CodeGen/pragma-weak.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/clang/test/CodeGen/pragma-weak.c b/clang/test/CodeGen/pragma-weak.c index 1de60e106a9..7ad2b77d8e7 100644 --- a/clang/test/CodeGen/pragma-weak.c +++ b/clang/test/CodeGen/pragma-weak.c @@ -136,7 +136,7 @@ void __both3(void) {} void __a1(void) __attribute((noinline)); #pragma weak a1 = __a1 void __a1(void) {} -// CHECK: define void @__a1() +// CHECK: define void @__a1() {{.*}} noinline // attributes introduced BEFORE a combination of #pragma weak and alias() // hold... @@ -144,13 +144,20 @@ void __a3(void) __attribute((noinline)); #pragma weak a3 = __a3 void a3(void) __attribute((alias("__a3"))); void __a3(void) {} -// CHECK: define void @__a3() +// CHECK: define void @__a3() {{.*}} noinline #pragma weak xxx = __xxx __attribute((pure,noinline,const,fastcall)) void __xxx(void) { } -// CHECK: void @__xxx() +// CHECK: void @__xxx() {{.*}} noinline -/// TODO: stuff that still doesn't work +///////////// PR10878: Make sure we can call a weak alias +void SHA512Pad(void *context) {} +#pragma weak SHA384Pad = SHA512Pad +void PR10878() { SHA384Pad(0); } +// CHECK: call void @SHA384Pad(i8* null) + + +///////////// TODO: stuff that still doesn't work // due to the fact that disparate TopLevelDecls cannot affect each other // (due to clang's Parser and ASTConsumer behavior, and quite reasonable) |