summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2018-05-02 15:45:28 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2018-05-02 15:45:28 +0000
commit6d944109144acdfdba7caf6fd1a29cbbff0f4628 (patch)
tree0004f17c954ab995661a4f4443c4c3d60e889ec7 /clang/test
parentf1fadea5cec7e3b49de653c648e1a63436513894 (diff)
downloadbcm5719-llvm-6d944109144acdfdba7caf6fd1a29cbbff0f4628.tar.gz
bcm5719-llvm-6d944109144acdfdba7caf6fd1a29cbbff0f4628.zip
[OPENMP] Support C++ member functions in the device constructs.
Added correct emission of the C++ member functions for the device function when they are used in the device constructs. llvm-svn: 331365
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/OpenMP/declare_target_codegen.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/clang/test/OpenMP/declare_target_codegen.cpp b/clang/test/OpenMP/declare_target_codegen.cpp
index 15b9f58833d..ce194ef0e8b 100644
--- a/clang/test/OpenMP/declare_target_codegen.cpp
+++ b/clang/test/OpenMP/declare_target_codegen.cpp
@@ -18,11 +18,21 @@
// CHECK-DAG: @d = global i32 0,
// CHECK-DAG: @c = external global i32,
-// CHECK-DAG: define {{.*}}i32 @{{.*}}{{foo|bar|baz2|baz3|FA}}{{.*}}()
+// CHECK-DAG: define {{.*}}i32 @{{.*}}{{foo|bar|baz2|baz3|FA|f_method}}{{.*}}()
+// CHECK-DAG: define {{.*}}void @{{.*}}TemplateClass{{.*}}(%class.TemplateClass* %{{.*}})
+// CHECK-DAG: define {{.*}}i32 @{{.*}}TemplateClass{{.*}}f_method{{.*}}(%class.TemplateClass* %{{.*}})
#ifndef HEADER
#define HEADER
+template <typename T>
+class TemplateClass {
+ T a;
+public:
+ TemplateClass() {}
+ T f_method() const { return a; }
+};
+
int foo();
int baz1();
@@ -33,7 +43,8 @@ int baz4() { return 5; }
template <typename T>
T FA() {
- return T();
+ TemplateClass<T> s;
+ return s.f_method();
}
#pragma omp declare target
OpenPOWER on IntegriCloud