[PATCH] D37656: [cfi] Set function attributes for __cfi_* functions.

2017-09-25 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 116618. eugenis added a comment. Switched to SetLLVMFunctionAttributes https://reviews.llvm.org/D37656 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/cfi-check-thumb.c llvm/lib/Transforms/IPO/CrossDSOCFI.cpp llvm/test/Transforms/CrossDSOCFI/

[PATCH] D38430: Enable -pie and --enable-new-dtags by default on Android.

2017-09-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. Also enable -no-pie on Gnu toolchain (previously available on Darwin only). Non-PIE executables won't even start on recent Android, and DT_RPATH is ignored by the loader. https://reviews.llvm.org/D38430 Files: clang/lib/Driver/SanitizerArgs.cpp clang/lib/Dri

[PATCH] D38525: Cleanup and generalize -shared-libasan.

2017-10-03 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. Herald added a subscriber: srhines. - Add -static-libasan for targets that default to shared. - Remove an Android special case. It is now possible (but untested) to use static compiler-rt libraries there. - Support libclang_rt.ubsan_standalone as a shared library.

[PATCH] D38430: Enable -pie and --enable-new-dtags by default on Android.

2017-10-04 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. ping https://reviews.llvm.org/D38430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D38525: Cleanup and generalize -shared-libasan.

2017-10-04 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 117767. eugenis added a comment. renamed flags to *-libsan https://reviews.llvm.org/D38525 Files: clang/include/clang/Driver/Options.td clang/include/clang/Driver/SanitizerArgs.h clang/lib/Driver/SanitizerArgs.cpp clang/lib/Driver/ToolChains/CommonA

[PATCH] D38525: Cleanup and generalize -shared-libasan.

2017-10-05 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/lib/Driver/ToolChains/CommonArgs.cpp:563 +if (SanArgs.needsUbsanRt()) { + if (SanArgs.requiresMinimalRuntime()) { +SharedRuntimes.push_back("ubsan_minimal"); vitalybuka wrote: > Shouldn't ubsan cha

[PATCH] D38525: Cleanup and generalize -shared-libasan.

2017-10-05 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 117875. eugenis added a comment. address comment https://reviews.llvm.org/D38525 Files: clang/include/clang/Driver/Options.td clang/include/clang/Driver/SanitizerArgs.h clang/lib/Driver/SanitizerArgs.cpp clang/lib/Driver/ToolChains/CommonArgs.cpp

[PATCH] D38525: Cleanup and generalize -shared-libasan.

2017-10-05 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/lib/Driver/SanitizerArgs.cpp:614 + if (Arg *A = Args.getLastArg(options::OPT_shared_libsan, + options::OPT_static_libsan)) +SharedRuntime = A->getOption().matches(options::OPT_shared_libsan);

[PATCH] D38525: Cleanup and generalize -shared-libasan.

2017-10-05 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL315015: Cleanup and generalize -shared-libasan. (authored by eugenis). Changed prior to commit: https://reviews.llvm.org/D38525?vs=117875&id=117878#toc Repository: rL LLVM https://reviews.llvm.org/D

[PATCH] D38430: Enable -pie and --enable-new-dtags by default on Android.

2017-10-11 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. ping https://reviews.llvm.org/D38430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D38908: Do not link clang_rt.cfi on Android.

2017-10-13 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. Herald added a subscriber: srhines. The OS provides cross-dso CFI support starting with Android O. Trapping mode does not require any runtime at all, and diagnostic mode requires just ubsan-standalone. https://reviews.llvm.org/D38908 Files: clang/include/clang/D

[PATCH] D38908: Do not link clang_rt.cfi on Android.

2017-10-13 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/test/Driver/sanitizer-ld.c:605 -// CHECK-CFI-ANDROID: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-CFI-ANDROID-NOT: libclang_rt.cfi -// CHECK-CFI-ANDROID-NOT: __cfi_check pcc wrote: > Why was this passing befo

[PATCH] D38908: Do not link clang_rt.cfi on Android.

2017-10-16 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL315921: Do not link clang_rt.cfi on Android. (authored by eugenis). Changed prior to commit: https://reviews.llvm.org/D38908?vs=118986&id=119180#toc Repository: rL LLVM https://reviews.llvm.org/D389

[PATCH] D38430: Enable -pie and --enable-new-dtags by default on Android.

2017-10-24 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. ping https://reviews.llvm.org/D38430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D33605: Provide an acccessor to get the Args of a ToolChain

2017-05-26 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. What's stopping anyone from removing this method as dead code? Repository: rL LLVM https://reviews.llvm.org/D33605 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe

[PATCH] D32842: Specify which sanitizers are covered by a sanitizer blacklist

2017-05-30 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. This change scares me a bit, to be honest. Is this really that big of a problem? Blacklists are not supposed to be big, maybe we can tolerate a few false negatives? Consider extending the blacklist syntax instead, the same way Valgrind does. Blacklist entries could be

[PATCH] D41054: Teach clang/NetBSD about additional dependencies for sanitizers

2017-12-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. One problem with interceptors is that any sanitized binary looks (to a configure-like script) as if it implements forkpty. But an attempt to use forkpty without actually linking -lutil will fail at runtime, because interceptors are just wrappers. Repository: rL LLVM

[PATCH] D41054: Teach clang/NetBSD about additional dependencies for sanitizers

2017-12-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Yes, I support adding -lutil - sorry I was not clear about that. By dlerror() errors, do you mean the warnings about missing interceptors that appear with verbosity=1 (non-fatal), or something else? Repository: rL LLVM https://reviews.llvm.org/D41054

[PATCH] D41417: [hwasan] Implement -fsanitize-recover=hwaddress.

2017-12-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. eugenis added reviewers: kcc, alekseyshl. Herald added subscribers: hiraditya, kubamracek. Very similar to AddressSanitizer, with the exception of the error type encoding. https://reviews.llvm.org/D41417 Files: clang/lib/CodeGen/BackendUtil.cpp compiler-rt/lib

[PATCH] D41417: [hwasan] Implement -fsanitize-recover=hwaddress.

2017-12-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: compiler-rt/lib/hwasan/hwasan.cc:255 -template +template __attribute__((always_inline, nodebug)) kcc wrote: > I'd prefer enums to booleans, for better readability good idea! https://reviews.llvm.org/D41417 __

[PATCH] D41417: [hwasan] Implement -fsanitize-recover=hwaddress.

2017-12-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 127640. eugenis added a comment. Replaced booleans with enums. Added __builtin_unreachable in non-recover variants of callbacks. https://reviews.llvm.org/D41417 Files: clang/lib/CodeGen/BackendUtil.cpp compiler-rt/lib/hwasan/hwasan.cc compiler-rt/lib/

[PATCH] D41417: [hwasan] Implement -fsanitize-recover=hwaddress.

2017-12-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 127642. eugenis added a comment. Tweaked a test. https://reviews.llvm.org/D41417 Files: clang/lib/CodeGen/BackendUtil.cpp compiler-rt/lib/hwasan/hwasan.cc compiler-rt/lib/hwasan/hwasan_interface_internal.h compiler-rt/lib/hwasan/hwasan_linux.cc co

[PATCH] D41417: [hwasan] Implement -fsanitize-recover=hwaddress.

2017-12-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rC321203: [hwasan] Implement -fsanitize-recover=hwaddress. (authored by eugenis, committed by ). Changed prior to commit: https://reviews.llvm.org/D41417?vs=127642&id=127760#toc Repository: rC Clang h

[PATCH] D44229: Don't use -pie in relocatable link.

2018-03-07 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. eugenis added a reviewer: srhines. Android, in particular, got PIE enabled by default in r316606. It resulted in relocatable links passing both -r and -pie to the linker, which is not allowed. https://reviews.llvm.org/D44229 Files: clang/lib/Driver/ToolChains/Gn

[PATCH] D44229: Don't use -pie in relocatable link.

2018-03-07 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/lib/Driver/ToolChains/Gnu.cpp:311 + if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_static) || + Args.hasArg(options::OPT_r)) return false; mgrang wrote: > We also need to check for -Wl,

[PATCH] D44229: Don't use -pie in relocatable link.

2018-03-09 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rC327165: Don't use -pie in relocatable link. (authored by eugenis, committed by ). Changed prior to commit: https://reviews.llvm.org/D44229?vs=137493&id=137809#toc Repository: rC Clang https://review

[PATCH] D44645: [test] Fix Cross-DSO CFI Android sanitizer test for -rtlib=compiler-rt

2018-03-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: test/Driver/sanitizer-ld.c:517 // CHECK-CFI-CROSS-DSO-ANDROID: "{{.*}}ld{{(.exe)?}}" // CHECK-CFI-CROSS-DSO-ANDROID-NOT: libclang_rt. mgorny wrote: > (an alternative would be to replace this 'NOT' clause with more sp

[PATCH] D44655: [Sanitizer] Allow builtins for Cross-DSO CFI on Android

2018-03-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. See my comment in https://reviews.llvm.org/D44655, but this change is also fine with me. Repository: rC Clang https://reviews.llvm.org/D44655 _

[PATCH] D44655: [Sanitizer] Allow builtins for Cross-DSO CFI on Android

2018-03-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Indeed! https://reviews.llvm.org/D44645 Repository: rC Clang https://reviews.llvm.org/D44655 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D44655: [Sanitizer] Allow builtins for Cross-DSO CFI on Android

2018-03-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Since the test is about cfi, not builtins, I think it's better to check for the cfi library explicitly. Repository: rC Clang https://reviews.llvm.org/D44655 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://

[PATCH] D44655: [Sanitizer] Allow builtins for Cross-DSO CFI on Android

2018-03-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. LGTM https://reviews.llvm.org/D44655 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D48373: [Driver] Make scudo compatible with -fsanitize-minimal-runtime

2018-06-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis requested changes to this revision. eugenis added a comment. This revision now requires changes to proceed. Please add a test. Repository: rC Clang https://reviews.llvm.org/D48373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org ht

[PATCH] D48390: ASan docs: no_sanitize("address") works on globals.

2018-06-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. eugenis added a reviewer: alekseyshl. Mention that no_sanitize attribute can be used with globals. https://reviews.llvm.org/D48390 Files: clang/docs/AddressSanitizer.rst Index: clang/docs/AddressSanitizer.rst ===

[PATCH] D48390: ASan docs: no_sanitize("address") works on globals.

2018-06-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 152140. eugenis added a comment. update AttrDocs.td https://reviews.llvm.org/D48390 Files: clang/docs/AddressSanitizer.rst clang/include/clang/Basic/AttrDocs.td Index: clang/include/clang/Basic/AttrDocs.td =

[PATCH] D48390: ASan docs: no_sanitize("address") works on globals.

2018-06-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. In https://reviews.llvm.org/D48390#1138193, @aaron.ballman wrote: > Do you also want to update AttrDocs.td with some similar information? Done. https://reviews.llvm.org/D48390 ___ cfe-commits mailing list cfe-commits@list

[PATCH] D48373: [Driver] Make scudo compatible with -fsanitize-minimal-runtime

2018-06-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. Looks great, thanks! Repository: rC Clang https://reviews.llvm.org/D48373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lis

[PATCH] D48390: ASan docs: no_sanitize("address") works on globals.

2018-06-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rC335193: ASan docs: no_sanitize("address") works on globals. (authored by eugenis, committed by ). Changed prior to commit: https://reviews.llvm.org/D48390?vs=152140&id=152204#toc Repository: rC Clang

[PATCH] D48454: Ignore blacklist when generating __cfi_check_fail.

2018-06-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Another option is to add a special case to blacklist logic to make it not apply to __cfi_check_fail. Yet another option is to make blacklist not apply to functions without a source location, but that seems to be done intentionally here: http://llvm-cs.pcc.me.uk/tools/cl

[PATCH] D48454: Ignore blacklist when generating __cfi_check_fail.

2018-06-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. eugenis added reviewers: pcc, vlad.tsyrklevich. Fixes PR37898. https://reviews.llvm.org/D48454 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/cfi-check-fail2.c Index: clang/test/CodeGen/cfi-check-fail2.c ==

[PATCH] D48454: Ignore blacklist when generating __cfi_check_fail.

2018-06-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 152395. eugenis added a comment. Simplify code. https://reviews.llvm.org/D48454 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/cfi-check-fail2.c Index: clang/test/CodeGen/cfi-check-fail2.c ==

[PATCH] D48454: Ignore blacklist when generating __cfi_check_fail.

2018-06-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Yes, that's better. https://reviews.llvm.org/D48454 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D48454: Ignore blacklist when generating __cfi_check_fail.

2018-06-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL335305: Ignore blacklist when generating __cfi_check_fail. (authored by eugenis, committed by ). Herald added a subscriber: llvm-commits. Changed prior to commit: https://reviews.llvm.org/D48454?vs=1523

[PATCH] D38430: Enable -pie and --enable-new-dtags by default on Android.

2019-01-15 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis marked an inline comment as done. eugenis added inline comments. Comment at: cfe/trunk/lib/Driver/ToolChains/Linux.cpp:814 +bool Linux::isPIEDefault() const { + return (getTriple().isAndroid() && !getTriple().isAndroidVersionLT(16)) || + getSanitizerArgs().requir

[PATCH] D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

2019-01-24 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. > Because "expect_noreturn" calls are allowed to return, the compiler must > behave as they could. In particular, this means that unpoisoning the stack > before expect_noreturn calls (given the current semantics) is premature. I don't think that's true. A hypothetical f

[PATCH] D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

2019-01-24 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. > Wouldn’t it be preferable to unpoison the stack inside of maybe_longjmp, once > the opaque condition can be checked? Sure, but that's not always possible. That's why we have interceptors. >> One possible optimization that I can think of is splitting code after the >>

[PATCH] D56624: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

2019-01-24 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Maybe the frontend should insert __asan_handle_noreturn whenever ASan is enabled, and then ASan would not care about the attribute? I'd like to avoid having this logic in two places. Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D56624/new

[PATCH] D57278: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

2019-01-28 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM Since the previous iteration of this was controversial, please wait for at least one more review. Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57278/new

[PATCH] D57278: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

2019-01-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Sounds good. Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57278/new/ https://reviews.llvm.org/D57278 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mai

[PATCH] D57278: [Sanitizers] UBSan unreachable incompatible with ASan in the presence of `noreturn` calls

2019-01-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. LGTM assuming the plan is to add !nosanitize where !noreturn has been, at the original call site, in the follow-up change. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57278/new/ https://reviews.llvm.org/D57278 __

[PATCH] D54330: Driver: Make -fsanitize=shadow-call-stack compatible with -fsanitize-minimal-runtime.

2018-11-09 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM Repository: rL LLVM https://reviews.llvm.org/D54330 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-b

[PATCH] D54735: Driver: SCS is compatible with every other sanitizer.

2018-11-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM Repository: rL LLVM https://reviews.llvm.org/D54735 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-b

[PATCH] D54905: [AddressSanitizer] Add flag to disable linking with CXX runtime

2018-11-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Would turning asan operator new/delete into weak symbols help? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D54905/new/ https://reviews.llvm.org/D54905 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://

[PATCH] D54905: [AddressSanitizer] Add flag to disable linking with CXX runtime

2018-11-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Our malloc definition is weak already, this will only change new/delete to match. This also makes the behaviour of static runtime consistent with the one of dynamic runtime where we can not prevent user from overloading operator new/delete. CHANGES SINCE LAST ACTION

[PATCH] D54905: [AddressSanitizer] Add flag to disable linking with CXX runtime

2018-11-30 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. >> Would turning asan operator new/delete into weak symbols help? > > The new operator is already a weak symbol in libcxx, so it looks like an ODR > violation, doesn't it? I don't think so. It's just symbol interposition. Every module in the process gets the same defin

[PATCH] D55066: [ASan] Minor documentation fix: remove static linking limitation.

2018-11-30 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis requested changes to this revision. eugenis added a comment. This revision now requires changes to proceed. Sorry for the delay. This is wrong, static linking is NOT supported. You could be confusing it with static linking of asan runtime library to an executable - that is and has always

[PATCH] D55066: [ASan] Minor documentation fix: remove static linking limitation.

2018-12-03 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. How about "Static linking of executables is not supported"? Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55066/new/ https://reviews.llvm.org/D55066 ___ cfe-commits mailing list cfe-commits@l

[PATCH] D54905: [AddressSanitizer] Add flag to disable linking with CXX runtime

2018-12-03 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Linux linkers won't include a member of an archive only because it resolves a weak symbol, so in your example the answer is none. ASan uses -Wl,-whole-archive to pull all its members, this will resolve operator new to ASan definition unless there is another definition i

[PATCH] D55066: [ASan] Minor documentation fix: clarify static linking limitation.

2018-12-10 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55066/new/ https://reviews.llvm.org/D55066 ___ cfe-commits

[PATCH] D57711: [Sanitizers] UBSan unreachable incompatible with Kernel ASan

2019-02-04 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. LGTM Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57711/new/ https://reviews.llvm.org/D57711 ___ cfe-commits mailing list cfe-commits@lists.llv

[PATCH] D57722: [Clang][NCF] Sanitizer options: helpers to check if {Kernel, Hardware}ASan is enabled

2019-02-04 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. I find the current code more readable than with this change. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57722/new/ https://reviews.llvm.org/D57722 ___ cfe-commits mailing li

[PATCH] D26796: [Driver] Use arch type to find compiler-rt libraries (on Linux)

2017-08-28 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. In https://reviews.llvm.org/D26796#853446, @mgorny wrote: > The problems: > > 1. > http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-android/builds/2140/steps/annotate/logs/stdio > -- purely this change, This one still builds i686 libraries. Maybe it needs a cl

[PATCH] D26764: [compiler-rt] [cmake] Remove i686 target that is duplicate to i386

2017-08-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. I may have underestimated the number of places that will need to be patched because of this change. Perhaps we should restore the special case in the android library name? Repository: rL LLVM https://reviews.llvm.org/D26764 ___

[PATCH] D26764: [compiler-rt] [cmake] Remove i686 target that is duplicate to i386

2017-08-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. IMHO it was a very bad idea to include the "architecture name" (not even a target triple!) in the library path in the first place. No one else does that. GCC made the right choice and called theirs "libasan.so". My plan is to tweak the code that sets the library name to

[PATCH] D37278: Restore clang_rt library name on i686-android.

2017-08-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. Herald added a subscriber: srhines. Recent changes canonicalized clang_rt library names to refer to "i386" on all x86 targets. Android historically uses i686. This change adds a special case to keep i686 in all clang_rt libraries when targeting Android. https://re

[PATCH] D37278: Restore clang_rt library name on i686-android.

2017-08-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 113167. eugenis added a comment. +comment https://reviews.llvm.org/D37278 Files: clang/lib/Driver/ToolChain.cpp clang/test/Driver/sanitizer-ld.c compiler-rt/cmake/Modules/AddCompilerRT.cmake Index: compiler-rt/cmake/Modules/AddCompilerRT.cmake =

[PATCH] D37278: Restore clang_rt library name on i686-android.

2017-08-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL312048: Restore clang_rt library name on i686-android. (authored by eugenis). Changed prior to commit: https://reviews.llvm.org/D37278?vs=113167&id=113170#toc Repository: rL LLVM https://reviews.llv

[PATCH] D26764: [compiler-rt] [cmake] Remove i686 target that is duplicate to i386

2017-08-29 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. I've landed the android special case in r312048 Repository: rL LLVM https://reviews.llvm.org/D26764 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37656: [cfi] Set function attributes for __cfi_* functions.

2017-09-08 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. Herald added subscribers: hiraditya, kristof.beyls, srhines, aemerson. Set target_cpu and target_features attributes on __cfi_check_fail and __cfi_check. Make cfi_check use Thumb encoding on ARM target. https://reviews.llvm.org/D37656 Files: clang/lib/CodeGen/CG

[PATCH] D37871: [ASAN] Add macro denoting availability of new `__asan_handle_no_return()` function.

2017-09-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. This function was added to the header recently, but it has been provided by ASan runtime library since the beginning. Why not simply declare it in libc++abi? https://reviews.llvm.org/D37871 ___ cfe-commits mailing list cfe

[PATCH] D37867: [MSan] Add flag to disable use-after-dtor.

2017-09-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Have you looked at performance? https://reviews.llvm.org/D37867 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37867: [MSan] Add flag to disable use-after-dtor.

2017-09-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. Oh right, I was looking at https://reviews.llvm.org/D37860. https://reviews.llvm.org/D37867 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listin

[PATCH] D37860: [MSan] Enable use-after-dtor instrumentation by default.

2017-09-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Looking at __sanitizer_dtor_callback implementation, this change will add a (fast) stack unwind in every destructor. In extreme cases (like a tight loop doing string operations) it could be bad for performance. I've seen ~15% AFAIR. https://reviews.llvm.org/D37860 _

[PATCH] D37925: Allow specifying sanitizers in blacklists

2017-09-15 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: include/clang/Basic/SanitizerSpecialCaseList.h:33 + + bool inSection(SanitizerMask Mask, StringRef Prefix, StringRef Query, + StringRef Category = StringRef()) const; Please add a comment on the meaning

[PATCH] D37925: Allow specifying sanitizers in blacklists

2017-09-18 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: docs/SanitizerSpecialCaseList.rst:57 + +Sections are regular expressions written in square brackets that denote which +sanitizer the following entries apply to. For example, ``[address]`` specifies Section names are regu

[PATCH] D38063: [MSan] Disable sanitization for __sanitizer_dtor_callback.

2017-09-19 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. A test, please. Comment at: clang/lib/CodeGen/CGClass.cpp:1592 + llvm::CallInst *I = CGF.EmitNounwindRuntimeCall(Fn, Args); + I->setMetadata("nosanitize", llvm::MDNode::get(CGF.getLLVMContext(), + llv

[PATCH] D38063: [MSan] Disable sanitization for __sanitizer_dtor_callback.

2017-09-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. Please also add a tiny LLVM test that call instructions with nosanitize metadata are not instrumented. https://reviews.llvm.org/D38063 ___ cfe

[PATCH] D37925: Allow specifying sanitizers in blacklists

2017-09-20 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a subscriber: dberris. eugenis added inline comments. Comment at: include/clang/Basic/SanitizerSpecialCaseList.h:39 + // Initialize SanitizerSections. + void sanitizerCompile(); + "compile" in this method name is confusing. It's used in the base c

[PATCH] D37656: [cfi] Set function attributes for __cfi_* functions.

2017-09-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. ping https://reviews.llvm.org/D37656 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37656: [cfi] Set function attributes for __cfi_* functions.

2017-09-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/lib/CodeGen/CGExpr.cpp:2917 +CodeGenFunction &CGF, llvm::Function *F, +bool ForceThumb) { + StringRef TargetCPU = CGF.getTarget().getTargetOpts().CPU; ---

[PATCH] D61479: Finish "Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO"

2019-07-11 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/docs/UndefinedBehaviorSanitizer.rst:207 +equivalence by pointer, not also by name (even on platforms that would +otherwise fall back to checking equivalence by name). I don't think this is true. As far as I can s

[PATCH] D63967: Handle IntToPtr in isBytewiseValue

2019-07-11 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis 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/D63967/new/ https://reviews.llvm.org/D63967 _

[PATCH] D64169: ARM MTE stack sanitizer.

2019-07-12 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 209578. eugenis marked 4 inline comments as done. eugenis added a comment. addressed review comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64169/new/ https://reviews.llvm.org/D64169 Files: clang/incl

[PATCH] D64169: ARM MTE stack sanitizer.

2019-07-12 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/lib/CodeGen/SanitizerMetadata.cpp:28 + if (!CGM.getLangOpts().Sanitize.hasOneOf( + SanitizerKind::Address | SanitizerKind::KernelAddress | + SanitizerKind::HWAddress | SanitizerKind::KernelHWAddress | ---

[PATCH] D61479: Finish "Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO"

2019-07-15 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM, but please update the summary: An alternative would be to disallow -fsanitize=function ... CHANGES SINCE LAST ACTION https://reviews.llvm.org/D61479/new/ https://reviews.llvm.org

[PATCH] D64169: ARM MTE stack sanitizer.

2019-07-15 Thread Evgenii Stepanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL366123: ARM MTE stack sanitizer. (authored by eugenis, committed by ). Changed prior to commit: https://reviews.llvm.org/D64169?vs=209578&id=209936#toc Repository: rL LLVM CHANGES SINCE LAST ACTION

[PATCH] D64843: hwasan: Initialize the pass only once.

2019-07-17 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a subscriber: chandlerc. eugenis added a comment. I don't know what is the best practice here. Other sanitizers have both module and function passes, is there a reason to do things differently here? @chandlerc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION http

[PATCH] D64843: hwasan: Initialize the pass only once.

2019-07-17 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. OK, sure. As I understand functon passes also have better data locality by running a sequence of passes over a single function. Not sure how important that is. LGTM Repository: rG LLVM Gi

[PATCH] D65629: cfi-icall: Allow the jump table to be optionally made non-canonical.

2019-08-09 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: clang/test/CodeGen/cfi-icall-canonical-jump-tables.c:15 +// CHECK: define void @g({{.*}} [[ATTR2:#[0-9]+]] +__attribute__((cfi_jump_table_canonical)) void g() {} + would it be more natural to spell it "cfi_canonical_jump

[PATCH] D65629: cfi-icall: Allow the jump table to be optionally made non-canonical.

2019-08-09 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis 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/D65629/new/ https://reviews.llvm.org/D65629 _

[PATCH] D64169: ARM MTE stack sanitizer.

2019-07-03 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis created this revision. eugenis added reviewers: pcc, hctim, vitalybuka, ostannard. Herald added subscribers: dexonsmith, steven_wu, cryptoad, hiraditya, kristof.beyls, javed.absar, mehdi_amini, srhines. Herald added projects: clang, LLVM. Add "memtag" sanitizer that detects and mitigates

[PATCH] D64169: ARM MTE stack sanitizer.

2019-07-03 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis updated this revision to Diff 207920. eugenis added a comment. fix bitcode docs Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64169/new/ https://reviews.llvm.org/D64169 Files: clang/include/clang/Basic/Features.def clang/include/clang/

[PATCH] D63908: hwasan: Improve precision of checks using short granule tags.

2019-07-03 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: compiler-rt/lib/hwasan/hwasan_allocator.cpp:159 ? (t ? t->GenerateRandomTag() : kFallbackAllocTag) : 0; +uptr tag_size = orig_size ? orig_size : 1; When !(flags()->tag_in_mal

[PATCH] D63908: hwasan: Improve precision of checks using short granule tags.

2019-07-09 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis 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/D63908/new/ https://reviews.llvm.org/D63908 _

[PATCH] D64385: GodeGen, NFC: Add test to track emitStoresForConstant behavior

2019-07-10 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM Comment at: clang/test/CodeGen/init-memset.c:36 + int a[16] = {0, 0, 1}; + // CHECK: call void @llvm.memset.{{.*}} + // CHECK: store i32 1 Would it

[PATCH] D63854: [NFC] Convert large lambda into method

2019-07-10 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. LGTM if it's really NFC Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D63854/new/ https://reviews.llvm.org/D63854 __

[PATCH] D63940: [NFC] Pass DataLayout into isBytewiseValue

2019-07-10 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis accepted this revision. eugenis 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/D63940/new/ https://reviews.llvm.org/D63940 _

[PATCH] D60593: [GwpAsan] Introduce GWP-ASan.

2019-05-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. Ha, I think it matches LLVM perfectly :) G, of course, stands for "Galaxy". Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D60593/new/ https://reviews.llvm.org/D60593 ___ cfe-com

[PATCH] D61923: [GWP-ASan] Mutex implementation [2].

2019-05-14 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added a comment. I think the idea is that implementing our own spinlock is not much harder than having 3 platform-specific implementations (posix, window, fuchsia). Also, scudo_standalone is doing the same ( @cryptoad, why? ). As Mitch mentioned, we should move the implementation into a

[PATCH] D61923: [GWP-ASan] Mutex implementation [2].

2019-05-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: compiler-rt/lib/gwp_asan/mutex.h:27 +private: +#include "gwp_asan/platform_specific/mutex_members.inc" +}; What's the point of this include? You are leaking platform details into this common header anyway. We can make

[PATCH] D61923: [GWP-ASan] Mutex implementation [2].

2019-05-21 Thread Evgenii Stepanov via Phabricator via cfe-commits
eugenis added inline comments. Comment at: compiler-rt/lib/gwp_asan/platform_specific/mutex_posix.cpp:43 + +Mutex::Mutex() : PImpl(new Impl) {} +Mutex::~Mutex() { delete PImpl; } This is a dependency on libc++ / libstdc++. I'm not sure about using malloc() insid

  1   2   3   >