diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2018-05-02 15:45:28 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2018-05-02 15:45:28 +0000 |
commit | 6d944109144acdfdba7caf6fd1a29cbbff0f4628 (patch) | |
tree | 0004f17c954ab995661a4f4443c4c3d60e889ec7 /clang/test | |
parent | f1fadea5cec7e3b49de653c648e1a63436513894 (diff) | |
download | bcm5719-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.cpp | 15 |
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 |