summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-12-10 16:12:53 -0500
committerAlexey Bataev <a.bataev@hotmail.com>2019-12-10 16:30:14 -0500
commit02d04d569edd39a17f27995565b7b65ac06afb35 (patch)
treea748a803c22cc5388b760bc9cb1be489ef10a34d /clang/test
parent3bd7cbb90cdb9cf2ca481107ec66a75d9c885782 (diff)
downloadbcm5719-llvm-02d04d569edd39a17f27995565b7b65ac06afb35.tar.gz
bcm5719-llvm-02d04d569edd39a17f27995565b7b65ac06afb35.zip
[OPENMP50]Do not mark the function as used if referenced only in declare
variant directive. If the function is used only in declare variant directive as a variant function, it should not be marked as used to prevent emission of the target-specific functions. Build the reference in the unevaluated context.
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/OpenMP/declare_variant_mixed_codegen.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/OpenMP/declare_variant_mixed_codegen.cpp b/clang/test/OpenMP/declare_variant_mixed_codegen.cpp
index dea42d1c217..0c13f5f2f12 100644
--- a/clang/test/OpenMP/declare_variant_mixed_codegen.cpp
+++ b/clang/test/OpenMP/declare_variant_mixed_codegen.cpp
@@ -27,6 +27,7 @@
// CHECK-DAG: ret i32 85
// CHECK-DAG: ret i32 86
// CHECK-DAG: ret i32 87
+// CHECK-DAG: ret i32 88
// CHECK-NOT: ret i32 {{1|4|81|84}}
#ifndef HEADER
@@ -45,8 +46,10 @@ int test();
#pragma omp declare variant(test) match(implementation = {vendor(llvm)}, device={kind(cpu)})
int call() { return 1; }
+static int stat_unused_no_emit() { return 1; }
static int stat_unused_();
#pragma omp declare variant(stat_unused_) match(implementation = {vendor(llvm)}, device={kind(cpu)})
+#pragma omp declare variant(stat_unused_no_emit) match(implementation = {vendor(xxx)}, device={kind(gpu)})
static int stat_unused() { return 1; }
static int stat_used_();
@@ -134,4 +137,12 @@ int fn_variant2() { return 1; }
#pragma omp declare variant(fn_variant2) match(implementation = {vendor(llvm)}, device={kind(fpga)})
int fn2() { return 87; }
+#pragma omp declare variant(stat_unused_no_emit) match(implementation = {vendor(xxx)}, device={kind(gpu)})
+template <typename T>
+static T stat_unused_T() { return 88; }
+
+int bazzzzzzzz() {
+ return stat_unused_T<int>();
+}
+
#endif // HEADER
OpenPOWER on IntegriCloud