WWeverythingInline function calls.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Inline function calls. Fix unused variable in non-assert builds after 300fbf56f89aebbe2ef9ed490066bab23e5356d1 | 3 年前 | |
clang-analyzer plugins require LLVM_ENABLE_PLUGINS also The clang-analyzer plugins are not linked to a particular tool, so they can only be compiled if plugins are broadly supported. We could opt instead to decide whether to link them to specifically against clang or with undefined symbols, depending on the value of LLVM_ENABLE_PLUGINS, but we do not currently expect there to be a use case for that rather niche configuration. Differential Revision: https://reviews.llvm.org/D119591 | 4 年前 | |
[clang] Add a raw_ostream operator<< overload for QualType Under the hood this prints the same as QualType::getAsString() but cuts out the middle-man when that string is sent to another raw_ostream. Also cleaned up all the call sites where this occurs. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D123926 | 4 年前 | |
[clang] Use value instead of getValue (NFC) | 3 年前 | |
[analyzer] Structured binding to tuple-like types Introducing support for creating structured binding to tuple-like types. Differential Revision: https://reviews.llvm.org/D128837 | 3 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[CFG] NFC: Remove implicit conversion from CFGTerminator to Stmt *. Turn it into a variant class instead. This conversion does indeed save some code but there's a plan to add support for more kinds of terminators that aren't necessarily based on statements, and with those in mind it becomes more and more confusing to have CFGTerminators implicitly convertible to a Stmt *. Differential Revision: https://reviews.llvm.org/D61814 llvm-svn: 361586 | 6 年前 | |
[clang][dataflow] Add base types for building dataflow analyses This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev. Reviewed By: ymandel, xazax.hun, gribozavr2 Differential Revision: https://reviews.llvm.org/D114234 | 4 年前 | |
[[Clang CallGraph]] CallGraph should still record calls to decls. Discovered by a downstream user, we found that the CallGraph ignores callees unless they are defined. This seems foolish, and prevents combining the report with other reports to create unified reports. Additionally, declarations contain information that is likely useful to consumers of the CallGraph. This patch implements this by splitting the includeInGraph function into two versions, the current one plus one that is for callees only. The only difference currently is that includeInGraph checks for a body, then calls includeCalleeInGraph. Differential Revision: https://reviews.llvm.org/D76435 | 6 年前 | |
[clang] Don't use Optional::getValue (NFC) | 3 年前 | |
[AST, Analysis] Use llvm::reverse (NFC) | 4 年前 | |
[analyzer] Fix more analyzer warnings on analyzer and libAnalysis. llvm-svn: 370263 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[analyzer] Lambda capture non-POD type array This patch introduces a new ConstructionContext for lambda capture. This ConstructionContext allows the analyzer to construct the captured object directly into it's final region, and makes it possible to capture non-POD arrays. Differential Revision: https://reviews.llvm.org/D129967 | 3 年前 | |
[NFC] Refactor representation of materialized temporaries Summary: this patch refactor representation of materialized temporaries to prevent an issue raised by rsmith in https://reviews.llvm.org/D63640#inline-612718 Reviewers: rsmith, martong, shafik Reviewed By: rsmith Subscribers: thakis, sammccall, ilya-biryukov, rnkovacs, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D69360 | 6 年前 | |
Make a buildbot using a buggy gcc happy When specializing a template in a namespace, it has to be in a namespace block, else gcc will get confused. Hopefully this fixes the issue. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480 llvm-svn: 365030 | 6 年前 | |
[clang-tidy] implement new check 'misc-const-correctness' to add 'const' to unmodified variables This patch connects the check for const-correctness with the new general utility to add const to variables. The code-transformation is only done, if the detected variable for const-ness is not part of a group-declaration. The check allows to control multiple facets of adding const, e.g. if pointers themself should be marked as const if they are not changed. Reviewed By: njames93 Differential Revision: https://reviews.llvm.org/D54943 | 3 年前 | |
Revert "Revert "[analyzer] NFC: Move IssueHash to libAnalysis."" This reverts commit 662ed9e67adace3d011f42478bc8bcb1773a2821. | 5 年前 | |
[analyzer] Structured binding to tuple-like types Introducing support for creating structured binding to tuple-like types. Differential Revision: https://reviews.llvm.org/D128837 | 3 年前 | |
PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 C++23 will make these conversions ambiguous - so fix them to make the codebase forward-compatible with C++23 (& a follow-up change I've made will make this ambiguous/invalid even in <C++23 so we don't regress this & it generally improves the code anyway) | 4 年前 | |
Use llvm::is_contained (NFC) | 4 年前 | |
[clang] Use value instead of getValue (NFC) | 3 年前 | |
AnalysisDeclContext::ManagedAnalyses: Use unique_ptr to simplify memory management | 6 年前 | |
[AST] Remove DeclCXX.h dep on ASTContext.h Saves only 36 includes of ASTContext.h and related headers. There are two deps on ASTContext.h: - C++ method overrides iterator types (TinyPtrVector) - getting LangOptions For #1, duplicate the iterator type, which is TinyPtrVector<>::const_iterator. For #2, add an out-of-line accessor to get the language options. Getting the ASTContext from a Decl is already an out of line method that loops over the parent DeclContexts, so if it is ever performance critical, the proper fix is to pass the context (or LangOpts) into the predicate in question. Other changes are just header fixups. | 6 年前 | |
[clang] Don't use Optional::getValue (NFC) | 3 年前 | |
Revert "[clang] Implement ElaboratedType sugaring for types written bare" This reverts commit 7c51f02effdbd0d5e12bfd26f9c3b2ab5687c93f because it stills breaks the LLDB tests. This was re-landed without addressing the issue or even agreement on how to address the issue. More details and discussion in https://reviews.llvm.org/D112374. | 3 年前 | |
Thread safety analysis: Support builtin pointer-to-member operators We consider an access to x.*pm as access of the same kind into x, and an access to px->*pm as access of the same kind into *px. Previously we missed reads and writes in the .* case, and operations to the pointed-to data for ->* (we didn't miss accesses to the pointer itself, because that requires an LValueToRValue cast that we treat independently). We added support for overloaded operator->* in D124966. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D129514 | 3 年前 | |
Thread safety analysis: Store capability kind in CapabilityExpr This should make us print the right capability kind in many more cases, especially when attributes name multiple capabilities of different kinds. Previously we were trying to deduce the capability kind from the original attribute, but most attributes can name multiple capabilities, which could be of different kinds. So instead we derive the kind when translating the attribute expression, and then store it in the returned CapabilityExpr. Then we can extract the corresponding capability name when we need it, which saves us lots of plumbing and almost guarantees that the name is right. I didn't bother adding any tests for this because it's just a usability improvement and it's pretty much evident from the code that we don't fall back to "mutex" anymore (save for a few cases that I'll address in a separate change). Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D124131 | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[clang] Use value instead of getValue (NFC) | 3 年前 |