diff options
author | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2023-11-22 21:16:32 -0500 |
---|---|---|
committer | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2023-11-22 21:20:53 -0500 |
commit | 6b3470b4b83195aeeda60b101e8d3bf8800c321c (patch) | |
tree | 8264107e0a12ae9f3748a2396dcd6a980a0c225f /clang/lib/Sema/SemaCUDA.cpp | |
parent | 0e5da2eceb89f1e947e8b9b4aa42804e4ea89acc (diff) | |
download | llvm-6b3470b4b83195aeeda60b101e8d3bf8800c321c.zip llvm-6b3470b4b83195aeeda60b101e8d3bf8800c321c.tar.gz llvm-6b3470b4b83195aeeda60b101e8d3bf8800c321c.tar.bz2 |
Revert "[CUDA][HIP] make trivial ctor/dtor host device (#72394)"
This reverts commit 27e6e4a4d0e3296cebad8db577ec0469a286795e.
This patch is reverted due to regression. A testcase is:
`template <class T>
struct ptr {
~ptr() { static int x = 1;}
};
template <class T>
struct Abc : ptr<T> {
public:
Abc();
~Abc() {}
};
template
class Abc<int>;
`
Diffstat (limited to 'clang/lib/Sema/SemaCUDA.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCUDA.cpp | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/clang/lib/Sema/SemaCUDA.cpp b/clang/lib/Sema/SemaCUDA.cpp index b94f448..318174f 100644 --- a/clang/lib/Sema/SemaCUDA.cpp +++ b/clang/lib/Sema/SemaCUDA.cpp @@ -772,22 +772,6 @@ void Sema::maybeAddCUDAHostDeviceAttrs(FunctionDecl *NewD, NewD->addAttr(CUDADeviceAttr::CreateImplicit(Context)); } -// If a trivial ctor/dtor has no host/device -// attributes, make it implicitly host device function. -void Sema::maybeAddCUDAHostDeviceAttrsToTrivialCtorDtor(FunctionDecl *FD) { - bool IsTrivialCtor = false; - if (auto *CD = dyn_cast<CXXConstructorDecl>(FD)) - IsTrivialCtor = isEmptyCudaConstructor(SourceLocation(), CD); - bool IsTrivialDtor = false; - if (auto *DD = dyn_cast<CXXDestructorDecl>(FD)) - IsTrivialDtor = isEmptyCudaDestructor(SourceLocation(), DD); - if ((IsTrivialCtor || IsTrivialDtor) && !FD->hasAttr<CUDAHostAttr>() && - !FD->hasAttr<CUDADeviceAttr>()) { - FD->addAttr(CUDAHostAttr::CreateImplicit(Context)); - FD->addAttr(CUDADeviceAttr::CreateImplicit(Context)); - } -} - // TODO: `__constant__` memory may be a limited resource for certain targets. // A safeguard may be needed at the end of compilation pipeline if // `__constant__` memory usage goes beyond limit. |