[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-22 Thread Marco Antognini via Phabricator via cfe-commits
mantognini added a comment. FYI In order to fix buildbot test failures, I've pushed https://reviews.llvm.org/rG1b2da771f561affe36eb5eb0c7a3d2862c5a5c1c. I'll keep an eye on buildbots for additional fallout. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-19 Thread John McCall via Phabricator via cfe-commits
rjmccall accepted this revision. rjmccall added a comment. This revision is now accepted and ready to land. LGTM Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/new/ https://reviews.llvm.org/D64569 ___

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-19 Thread Marco Antognini via Phabricator via cfe-commits
mantognini added a comment. In D64569#1592059 , @rjmccall wrote: > Yes, that's the right fix, although you might also consider adding a > `getObjectType()` to `CXXMemberCallExpr`. Thanks, John, it should be better now, but let me know if I can improve

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-19 Thread Marco Antognini via Phabricator via cfe-commits
mantognini updated this revision to Diff 210850. mantognini added a comment. - Add minimal regression test for PR42665 - Add CXXMemberCallExpr::getObjectType() Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/new/ https://reviews.llvm.org/D64569

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. Yes, that's the right fix, although you might also consider adding a `getObjectType()` to `CXXMemberCallExpr`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/new/ https://reviews.llvm.org/D64569 __

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Marco Antognini via Phabricator via cfe-commits
mantognini marked an inline comment as done. mantognini added inline comments. Comment at: clang/lib/CodeGen/ItaniumCXXABI.cpp:1758-1764 + if (CE) { +ThisTy = CE->getImplicitObjectArgument()->getType(); +if (ThisTy->isPointerType()) + ThisTy = ThisTy->getPointeeType

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Marco Antognini via Phabricator via cfe-commits
mantognini updated this revision to Diff 210605. mantognini added a comment. Add patch for Bug PR42665. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/new/ https://reviews.llvm.org/D64569 Files: clang/include/clang/AST/DeclCXX.h clang/lib

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Marco Antognini via Phabricator via cfe-commits
mantognini reopened this revision. mantognini added a subscriber: ilya-biryukov. mantognini added a comment. This revision is now accepted and ready to land. While investigating PR42665, I've noticed that `getImplicitObjectArgument` doesn't always return a pointer type. For example, when dealing

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Anastasia Stulova via Phabricator via cfe-commits
Anastasia added a comment. The commit has been reverted due to issues with libc++: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20190715/279833.html However, without this change dtors are largely not usable in OpenCL due to ICE on wrong IR. I would like to be able to fix this on the

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Marco Antognini via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL366422: [OpenCL] Improve destructor support in C++ for OpenCL (authored by mantognini, committed by ). Herald added a project: LLVM. Herald added a subscriber: llvm-commits. Changed prior to commit: htt

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Anastasia Stulova via Phabricator via cfe-commits
Anastasia accepted this revision. Anastasia added a comment. This revision is now accepted and ready to land. LGTM! Thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/new/ https://reviews.llvm.org/D64569

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Marco Antognini via Phabricator via cfe-commits
mantognini added inline comments. Comment at: clang/lib/AST/DeclCXX.cpp:2267 QualType ClassTy = C.getTypeDeclType(Decl); - ClassTy = C.getQualifiedType(ClassTy, FPT->getMethodQuals()); - return C.getPointerType(ClassTy); + return C.getQualifiedType(ClassTy, FPT->getMethodQu

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-18 Thread Marco Antognini via Phabricator via cfe-commits
mantognini updated this revision to Diff 210501. mantognini marked 4 inline comments as done. mantognini added a comment. - Minor refactoring of getThisObjectType - Removed unnecessary assertion Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/ne

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-17 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. LGTM with one minor request. Comment at: clang/lib/AST/DeclCXX.cpp:2267 QualType ClassTy = C.getTypeDeclType(Decl); - ClassTy = C.getQualifiedType(ClassTy, FPT->getMethodQuals()); - return C.getPointerType(ClassTy); + return C.getQualifiedType(Cl

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-17 Thread Marco Antognini via Phabricator via cfe-commits
mantognini marked an inline comment as done. mantognini added inline comments. Comment at: clang/lib/CodeGen/CGClass.cpp:496 + // destroyed should have the expected type. + QualType ThisTy = D->getThisType(); Address Addr = rjmccall wrote: > I th

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-17 Thread Marco Antognini via Phabricator via cfe-commits
mantognini updated this revision to Diff 210341. mantognini marked 16 inline comments as done. mantognini added a comment. - Addressed comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64569/new/ https://reviews.llvm.org/D64569 Files: clang

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-16 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: clang/lib/CodeGen/CGClass.cpp:2016 CGF.EmitCXXDestructorCall(dtor, Dtor_Complete, /*for vbase*/ false, -/*Delegating=*/false, addr); +/*Delegating=*/false, addr, type); } -

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-16 Thread Marco Antognini via Phabricator via cfe-commits
mantognini marked 10 inline comments as done. mantognini added a comment. Mind the fact that I've rebased the changes onto a more recent master version. If you look at the diff of v1 against v2 you might see some unrelated changes. Let me know if there's anything else that I need to change. =

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-16 Thread Marco Antognini via Phabricator via cfe-commits
mantognini updated this revision to Diff 210080. mantognini added a comment. - Refactored common bits from CheckConstructorDeclarator and CheckDestructorDeclarator. - Added as many "ThisTy" parameter I could. - Addressed issue with identifier format in tests (%N to %var.ascast). Repository: r

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-12 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: clang/lib/CodeGen/CGClass.cpp:2016 CGF.EmitCXXDestructorCall(dtor, Dtor_Complete, /*for vbase*/ false, -/*Delegating=*/false, addr); +/*Delegating=*/false, addr, type); } -

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-12 Thread Anastasia Stulova via Phabricator via cfe-commits
Anastasia added inline comments. Comment at: clang/lib/CodeGen/CGExprCXX.cpp:117-118 + llvm::Type *NewType = CGM.getTypes().ConvertType(DstTy); + This = getTargetHooks().performAddrSpaceCast(*this, This, SrcAS, DstAS, +

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-11 Thread Marco Antognini via Phabricator via cfe-commits
mantognini added reviewers: Anastasia, rjmccall. mantognini marked 6 inline comments as done. mantognini added inline comments. Comment at: clang/lib/CodeGen/CGClass.cpp:2016 CGF.EmitCXXDestructorCall(dtor, Dtor_Complete, /*for vbase*/ false, -/*Del

[PATCH] D64569: [OpenCL] Improve destructor support in C++ for OpenCL

2019-07-11 Thread Marco Antognini via Phabricator via cfe-commits
mantognini created this revision. Herald added subscribers: cfe-commits, Anastasia, yaxunl. Herald added a project: clang. This patch does mainly three things: 1. It fixes a false positive error detection in Sema that is similar to D62156 . The error happens when