summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-08-17 07:34:53 +0000
committerHans Wennborg <hans@hanshq.net>2018-08-17 07:34:53 +0000
commit7cea4193d93d2eea199ddbb945a4495e7f7ea5e1 (patch)
tree8b9fbd9c5b7801ae8d743488a27a77328084e407 /clang/test
parentb90baad8a39d7ea8ef55ab9500c4cec212574ac5 (diff)
downloadbcm5719-llvm-7cea4193d93d2eea199ddbb945a4495e7f7ea5e1.tar.gz
bcm5719-llvm-7cea4193d93d2eea199ddbb945a4495e7f7ea5e1.zip
Backport r339704 to 7.0 for PR38598
> Author: abataev > Date: Tue Aug 14 11:31:20 2018 > New Revision: 339704 > > URL: http://llvm.org/viewvc/llvm-project?rev=339704&view=rev > Log: > [OPENMP] Fix processing of declare target construct. > > The attribute marked as inheritable since OpenMP 5.0 supports it + > additional fixes to support new functionality. llvm-svn: 339998
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/OpenMP/declare_target_ast_print.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/OpenMP/declare_target_ast_print.cpp b/clang/test/OpenMP/declare_target_ast_print.cpp
index bd1acc28dc6..1ffa456b7d7 100644
--- a/clang/test/OpenMP/declare_target_ast_print.cpp
+++ b/clang/test/OpenMP/declare_target_ast_print.cpp
@@ -150,11 +150,35 @@ struct SSSTt {
// CHECK: #pragma omp end declare target
// CHECK: int b;
+#pragma omp declare target
+template <typename T>
+T baz() { return T(); }
+#pragma omp end declare target
+
+template <>
+int baz() { return 1; }
+
+// CHECK: #pragma omp declare target
+// CHECK: template <typename T> T baz() {
+// CHECK: return T();
+// CHECK: }
+// CHECK: #pragma omp end declare target
+// CHECK: #pragma omp declare target
+// CHECK: template<> float baz<float>() {
+// CHECK: return float();
+// CHECK: }
+// CHECK: template<> int baz<int>() {
+// CHECK: return 1;
+// CHECK: }
+// CHECK: #pragma omp end declare target
+
int main (int argc, char **argv) {
foo();
foo_c();
foo_cpp();
test1();
+ baz<float>();
+ baz<int>();
return (0);
}
OpenPOWER on IntegriCloud