[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-07-13 Thread Vedant Kumar via Phabricator via cfe-commits
This revision was not accepted when it landed; it landed in state "Needs Review". This revision was automatically updated to reflect the committed changes. Closed by commit rG8c4a65b9b2ca: [ubsan] Check implicit casts in ObjC for-in statements (authored by vsk). Repository: rG LLVM Github

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-06-30 Thread Akira Hatanaka via Phabricator via cfe-commits
ahatanak added a comment. Thank you, LGTM. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-06-26 Thread Vedant Kumar via Phabricator via cfe-commits
vsk updated this revision to Diff 273815. vsk added a comment. Use the `IsKindOfClass` CallArgList when emitting the check, and add a runtime test to ensure that an objc-cast diagnostic is not emitted on correct code. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-06-26 Thread Vedant Kumar via Phabricator via cfe-commits
vsk marked 2 inline comments as done. vsk added inline comments. Comment at: clang/lib/CodeGen/CGObjC.cpp:1860 + CGM.getObjCRuntime().GetClass(*this, InterfaceTy->getDecl()); + Args.add(RValue::get(Cls), C.getObjCClassType()); + llvm::Value *IsClass =

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-06-26 Thread Akira Hatanaka via Phabricator via cfe-commits
ahatanak added inline comments. Comment at: clang/lib/CodeGen/CGObjC.cpp:1856 + Selector IsKindOfClassSel = C.Selectors.getSelector( + llvm::array_lengthof(IsKindOfClassII), [0]); + CallArgList IsKindOfClassArgs; Can you use `GetUnarySelector`

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-06-17 Thread Vedant Kumar via Phabricator via cfe-commits
vsk updated this revision to Diff 271508. vsk added a comment. Herald added projects: clang, Sanitizers. Herald added a subscriber: Sanitizers. Rebase. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-02-12 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added subscribers: erik.pilkington, ahatanak. vsk added a comment. + Erik and Akira for IRgen expertise. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 ___ cfe-commits mailing list

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-02-04 Thread Dan Liew via Phabricator via cfe-commits
delcypher added a comment. @vsk The compiler-rt side seems fine to me but I'm not very familiar with the Clang side of things. @arphaman @jfb @rjmccall any thoughts? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-02-04 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added a comment. Friendly ping. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-01-15 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added inline comments. Comment at: compiler-rt/lib/ubsan/ubsan_value.cpp:29 +const char *__ubsan::getObjCClassName(ValueHandle Pointer) { +#if defined(__APPLE__) + // We need to query the ObjC runtime for some information, but do not want delcypher wrote: >

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2020-01-15 Thread Vedant Kumar via Phabricator via cfe-commits
vsk updated this revision to Diff 238393. vsk marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 Files: clang/docs/UndefinedBehaviorSanitizer.rst clang/include/clang/Basic/Sanitizers.def

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-20 Thread Dan Liew via Phabricator via cfe-commits
delcypher added inline comments. Comment at: compiler-rt/lib/ubsan/ubsan_value.cpp:29 +const char *__ubsan::getObjCClassName(ValueHandle Pointer) { +#if defined(__APPLE__) + // We need to query the ObjC runtime for some information, but do not want vsk wrote: >

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-17 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added inline comments. Comment at: compiler-rt/lib/ubsan/ubsan_value.cpp:29 +const char *__ubsan::getObjCClassName(ValueHandle Pointer) { +#if defined(__APPLE__) + // We need to query the ObjC runtime for some information, but do not want delcypher wrote: >

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-16 Thread Dan Liew via Phabricator via cfe-commits
delcypher added inline comments. Comment at: compiler-rt/lib/ubsan/ubsan_value.cpp:29 +const char *__ubsan::getObjCClassName(ValueHandle Pointer) { +#if defined(__APPLE__) + // We need to query the ObjC runtime for some information, but do not want vsk wrote: >

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-16 Thread Vedant Kumar via Phabricator via cfe-commits
vsk updated this revision to Diff 234142. vsk added a comment. Ignore an objc-cast report at a given SourceLocation after it's been reported once. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 Files:

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-16 Thread Vedant Kumar via Phabricator via cfe-commits
vsk updated this revision to Diff 234139. vsk added a comment. Avoid a static initializer. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 Files: clang/docs/UndefinedBehaviorSanitizer.rst clang/include/clang/Basic/Sanitizers.def

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-16 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added inline comments. Comment at: clang/lib/Driver/ToolChain.cpp:953 + SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | + SanitizerKind::LocalBounds | SanitizerKind::ObjCCast; if (getTriple().getArch() == llvm::Triple::x86 ||

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-16 Thread Vedant Kumar via Phabricator via cfe-commits
vsk updated this revision to Diff 234136. vsk marked 3 inline comments as done. vsk added a comment. Address review feedback. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71491/new/ https://reviews.llvm.org/D71491 Files: clang/docs/UndefinedBehaviorSanitizer.rst

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-13 Thread Dan Liew via Phabricator via cfe-commits
delcypher added inline comments. Comment at: clang/lib/Driver/ToolChain.cpp:953 + SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | + SanitizerKind::LocalBounds | SanitizerKind::ObjCCast; if (getTriple().getArch() == llvm::Triple::x86 ||

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-13 Thread Dan Liew via Phabricator via cfe-commits
delcypher added inline comments. Comment at: compiler-rt/lib/ubsan/ubsan_value.cpp:29 +const char *__ubsan::getObjCClassName(ValueHandle Pointer) { +#if defined(__APPLE__) + // We need to query the ObjC runtime for some information, but do not want The

[PATCH] D71491: [ubsan] Check implicit casts in ObjC for-in statements

2019-12-13 Thread Vedant Kumar via Phabricator via cfe-commits
vsk created this revision. vsk added reviewers: rjmccall, jfb, arphaman, delcypher. Herald added subscribers: llvm-commits, dexonsmith. Herald added a project: LLVM. Check that the implicit cast from `id` used to construct the element variable in an ObjC for-in statement is valid. This check is