diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-12-10 16:12:53 -0500 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-12-10 16:30:14 -0500 |
commit | 02d04d569edd39a17f27995565b7b65ac06afb35 (patch) | |
tree | a748a803c22cc5388b760bc9cb1be489ef10a34d /clang/test | |
parent | 3bd7cbb90cdb9cf2ca481107ec66a75d9c885782 (diff) | |
download | bcm5719-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.cpp | 11 |
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 |