[cfi] Test case for weak symbol handling.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Fri, 11 Nov 2016 21:39:35 +0000 (21:39 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Fri, 11 Nov 2016 21:39:35 +0000 (21:39 +0000)
llvm-svn: 286637

compiler-rt/test/cfi/icall/weak.c [new file with mode: 0644]

diff --git a/compiler-rt/test/cfi/icall/weak.c b/compiler-rt/test/cfi/icall/weak.c
new file mode 100644 (file)
index 0000000..8acf41e
--- /dev/null
@@ -0,0 +1,14 @@
+// Test that weak symbols stay weak.
+// RUN: %clang_cfi -lm -o %t1 %s && %t1
+
+__attribute__((weak)) void does_not_exist(void);
+
+__attribute__((noinline))
+void foo(void (*p)(void)) {
+  p();
+}
+
+int main(int argc, char **argv) {
+  if (does_not_exist)
+    foo(does_not_exist);
+}