summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/pragma-weak.c
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-09-07 04:05:06 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-09-07 04:05:06 +0000
commitce3e2c85b1c010df6907979a68e6147f266d727d (patch)
tree3233856d3879170045bf819bc2cc023360dd6b04 /clang/test/CodeGen/pragma-weak.c
parent9d4fac0f9fa36299897f511bbb405be56c7ada3d (diff)
downloadbcm5719-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.c15
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)
OpenPOWER on IntegriCloud