summaryrefslogtreecommitdiffstats
path: root/clang/test/InterfaceStubs/template-namespace-function.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/InterfaceStubs/template-namespace-function.cpp')
-rw-r--r--clang/test/InterfaceStubs/template-namespace-function.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/test/InterfaceStubs/template-namespace-function.cpp b/clang/test/InterfaceStubs/template-namespace-function.cpp
new file mode 100644
index 00000000000..879318122b0
--- /dev/null
+++ b/clang/test/InterfaceStubs/template-namespace-function.cpp
@@ -0,0 +1,31 @@
+// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
+// RUN: -interface-stub-version=experimental-tapi-elf-v1 %s | \
+// RUN: FileCheck %s
+
+// RUN: %clang -target x86_64-unknown-linux-gnu -o - -c %s | llvm-nm - 2>&1 | \
+// RUN: FileCheck -check-prefix=CHECK-SYMBOLS %s
+
+// CHECK: Symbols:
+// CHECK-DAG: _ZN3qux3barEii: { Type: Func }
+// CHECK-DAG: _ZN3baz3addIiEET_S1_S1_: { Type: Func }
+// CHECK-DAG: _Z4fbarff: { Type: Func }
+// CHECK-DAG: _ZN3baz3addIfEET_S1_S1_: { Type: Func }
+
+// Same symbols just different order.
+// CHECK-SYMBOLS-DAG: _Z4fbarff
+// CHECK-SYMBOLS-DAG: _ZN3baz3addIfEET_S1_S1_
+// CHECK-SYMBOLS-DAG: _ZN3baz3addIiEET_S1_S1_
+// CHECK-SYMBOLS-DAG: _ZN3qux3barEii
+
+namespace baz {
+template <typename T>
+T add(T a, T b) {
+ return a + b;
+}
+} // namespace baz
+
+namespace qux {
+int bar(int a, int b) { return baz::add<int>(a, b); }
+} // namespace qux
+
+float fbar(float a, float b) { return baz::add<float>(a, b); }
OpenPOWER on IntegriCloud