[PATCH] D43928: [analyzer] Correctly measure array size in security.insecureAPI.strcpy

2018-03-02 Thread András Leitereg via Phabricator via cfe-commits
leanil added inline comments. Comment at: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp:517 if (const auto *Array = dyn_cast(DeclRef->getType())) { - uint64_t ArraySize = BR.getContext().getTypeSize(Array) / 8; + auto ArraySize =

[PATCH] D43928: [analyzer] Correctly measure array size in security.insecureAPI.strcpy

2018-03-01 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 136474. leanil added a comment. `getQuantity()` returns a signed type https://reviews.llvm.org/D43928 Files: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp Index: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp

[PATCH] D43928: [analyzer] Correctly measure array size in security.insecureAPI.strcpy

2018-03-01 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. leanil added reviewers: dcoughlin, xazax.hun, NoQ. Herald added subscribers: a.sidorin, rnkovacs, szepet. Herald added a reviewer: george.karpenkov. This will handle those platforms that don't have 8-bit chars. This is a follow up fix to review

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2018-02-24 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 135795. leanil marked an inline comment as done. leanil added a comment. Use `getTypeSizeInChars` to get array size. https://reviews.llvm.org/D41384 Files: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp test/Analysis/security-syntax-checks.m

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2018-01-12 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 2 inline comments as done. leanil added a comment. In https://reviews.llvm.org/D41384#973851, @NoQ wrote: > Do you have commit access or should someone else commit it for you? I don't have, please commit it. Comment at:

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2018-01-12 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 129676. leanil marked an inline comment as done. leanil added a comment. Measure array size in bytes instead of elements. https://reviews.llvm.org/D41384 Files: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2018-01-11 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 3 inline comments as done. leanil added inline comments. Comment at: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp:526 + } + if (StrLenFound && ArraySize >= StrLen + 1) +return; george.karpenkov wrote: > Why not put this

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2018-01-11 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 129508. leanil added a comment. Nest condition checking. Add positive test. https://reviews.llvm.org/D41384 Files: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp test/Analysis/security-syntax-checks.m Index:

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2018-01-11 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 129465. leanil added a comment. Change result types to match the query return types. https://reviews.llvm.org/D41384 Files: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp test/Analysis/security-syntax-checks.m Index:

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2017-12-20 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 127739. leanil added a comment. Move negative test next to the positive ones, because the necessary macros and run-lines are already defined there. https://reviews.llvm.org/D41384 Files: lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp

[PATCH] D38171: [clang-tidy] Implement clang-tidy check aliases

2017-12-20 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 2 inline comments as done. leanil added a comment. Does anyone have any more thoughts about this? https://reviews.llvm.org/D38171 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D38171: [clang-tidy] Implement clang-tidy check aliases

2017-12-20 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 127736. leanil added a comment. Remove redundant empty lines. Make list-clang-diagnostics test less strict. Update getAllDiagnostics to use std::vector. https://reviews.llvm.org/D38171 Files: clang-tidy/ClangTidy.cpp

[PATCH] D41451: Make DiagnosticIDs::getAllDiagnostics use std::vector

2017-12-20 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. leanil added reviewers: rsmith, xazax.hun. Herald added a subscriber: rnkovacs. The size of the result vector is currently around 4600 with Flavor::WarningOrError, which makes std::vector a better candidate than llvm::SmallVector. https://reviews.llvm.org/D41451

[PATCH] D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy

2017-12-19 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. leanil added reviewers: dcoughlin, xazax.hun. Herald added subscribers: a.sidorin, rnkovacs, szepet. It is safe to copy a string literal to an array which is compile time known to be large enough. This reduces the number of false positives, while (hopefully) not

[PATCH] D39372: Make DiagnosticIDs::getAllDiagnostics static.

2017-10-27 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. It doesn't depend on instance specific data, so this would make it easier to use, for example here : https://reviews.llvm.org/D39372 Files: include/clang/Basic/DiagnosticIDs.h lib/Basic/DiagnosticIDs.cpp Index:

[PATCH] D38171: Implement clang-tidy check aliases.

2017-10-27 Thread András Leitereg via Phabricator via cfe-commits
leanil added a comment. In https://reviews.llvm.org/D38171#901427, @xazax.hun wrote: > One problem to think about when we add all clang-diagnostic as "first or > second" class citizen, `checkes=*` might now enable all the warnings which > make no sense and might be surprising to the users.

[PATCH] D38171: Implement clang-tidy check aliases.

2017-09-26 Thread András Leitereg via Phabricator via cfe-commits
leanil added a comment. In https://reviews.llvm.org/D38171#880021, @xazax.hun wrote: > In https://reviews.llvm.org/D38171#878808, @alexfh wrote: > > > András, that's definitely an interesting idea. However, it might be > > interesting to explore a more principled approach: > > > > 1. Make

[PATCH] D38171: Implement clang-tidy check aliases.

2017-09-26 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 116694. leanil added a comment. Add more tests and minor fixes. https://reviews.llvm.org/D38171 Files: clang-tidy/ClangTidy.cpp clang-tidy/ClangTidyDiagnosticConsumer.cpp clang-tidy/ClangTidyDiagnosticConsumer.h clang-tidy/ClangTidyModule.h

[PATCH] D38171: Implement clang-tidy check aliases.

2017-09-22 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. Herald added a subscriber: JDevlieghere. Clang warnings can be mapped to virtual check names as aliases. The mappings can be set in the appropriate ClangTidyModules. If the virtual check is enabled, then - the corresponding warning options get passed to clang, and

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-04-04 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 94028. leanil added a comment. fix new lines Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp clang-tidy/misc/ForwardingReferenceOverloadCheck.h

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-04-02 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 93774. leanil added a comment. Simplify checking the presence of copy and move ctors. Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-27 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 2 inline comments as done. leanil added inline comments. Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:119 + DisabledMove = false; + for (const auto *OtherCtor : Ctor->getParent()->ctors()) { +if (OtherCtor->isCopyConstructor()) {

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-27 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 93114. leanil added a comment. Correct earlier diff issue with outdated master. Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-23 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 3 inline comments as done. leanil added inline comments. Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:125-126 +} +diag(Ctor->getLocation(), "function %0 can hide copy and move constructors") +<< Ctor; + }

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-23 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 92765. leanil added a comment. Simplify the note generation and correct the documentation. Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-21 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 92542. leanil added a comment. Suppress warning only on std::enable_if. Make note on copy and move constructors. Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-09 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 3 inline comments as done. leanil added inline comments. Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:31 + ->getName() + .find("enable_if") != StringRef::npos; + }; aaron.ballman wrote: > This should

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-09 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 91144. leanil added a comment. Fix enable_if detection in pointer and reference types. Improve test coverage for these cases. Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-04 Thread András Leitereg via Phabricator via cfe-commits
leanil marked 6 inline comments as done. leanil added inline comments. Comment at: test/clang-tidy/misc-forwarding-reference-overload.cpp:21 + Person(T &); + // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: function 'Person' can hide copy and move constructors

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-04 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 90569. leanil added a comment. Added changes according to the comments. Repository: rL LLVM https://reviews.llvm.org/D30547 Files: clang-tidy/misc/CMakeLists.txt clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-02 Thread András Leitereg via Phabricator via cfe-commits
leanil added inline comments. Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:22 +// Check if the given type is related to std::enable_if. +AST_MATCHER(QualType, isEnableIf) { + auto checkTemplate = [](const TemplateSpecializationType *Spec) {

[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors

2017-03-02 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. leanil added a project: clang-tools-extra. Herald added subscribers: JDevlieghere, mgorny. Perfect forwarding constructors are called instead of copy constructors if the forwarding reference provides a closer match (e.g. with non-const parameter). This can be

[PATCH] D28667: [clang-tidy] Don't modernize-raw-string-literal if replacement is longer.

2017-01-19 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 85014. leanil added a comment. Add config parameter to control new functionality. Update the test cases accordingly. https://reviews.llvm.org/D28667 Files: clang-tidy/modernize/RawStringLiteralCheck.cpp clang-tidy/modernize/RawStringLiteralCheck.h

[PATCH] D28667: [clang-tidy] Don't modernize-raw-string-literal if replacement is longer.

2017-01-19 Thread András Leitereg via Phabricator via cfe-commits
leanil added a comment. In https://reviews.llvm.org/D28667#650585, @LegalizeAdulthood wrote: > In https://reviews.llvm.org/D28667#649626, @LegalizeAdulthood wrote: > > > Don't do this without introducing an option to turn it off. > > > To clarify my reasoning: > You imposing your subjective

[PATCH] D28667: [clang-tidy] Don't modernize-raw-string-literal if replacement is longer.

2017-01-18 Thread András Leitereg via Phabricator via cfe-commits
leanil updated this revision to Diff 84805. leanil added a comment. Add test cases for the new functionality. These should not produce warnings, because their raw string replacement would be longer. https://reviews.llvm.org/D28667 Files: clang-tidy/modernize/RawStringLiteralCheck.cpp

[PATCH] D28667: [clang-tidy] Don't modernize-raw-string-literal if replacement is longer.

2017-01-15 Thread András Leitereg via Phabricator via cfe-commits
leanil added inline comments. Comment at: test/clang-tidy/modernize-raw-string-literal.cpp:94 +char const *const Concatenated("\"foo\"" + "\"bar\""); alexfh wrote: > Does this test fail without the patch? Also, should there be a

[PATCH] D28667: [clang-tidy] Don't modernize-raw-string-literal if replacement is longer.

2017-01-13 Thread András Leitereg via Phabricator via cfe-commits
leanil created this revision. leanil added reviewers: alexfh, LegalizeAdulthood, xazax.hun. leanil added a subscriber: cfe-commits. leanil added a project: clang-tools-extra. Herald added a subscriber: JDevlieghere. modernize-raw-string-literal suggests to replace e.g.: std::string s{ "foo \""