| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the code guarded with ANDROIDEABI are not
ARM-specific, and having no relation with arm-eabi.
Thus, it will be more natural to call this
environment "Android" instead of "ANDROIDEABI".
Note: We are not using ANDROID because several projects
are using "-DANDROID" as the conditional compilation
flag.
llvm-svn: 163088
|
| |
|
|
|
|
|
| |
items, remove redundant names from doc comments, fix various typos, and tidy
up some wording.
llvm-svn: 163085
|
| |
|
|
|
|
| |
Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review.
llvm-svn: 163083
|
| |
|
|
| |
llvm-svn: 163079
|
| |
|
|
|
|
| |
incomplete type member pointer size calculation under the MS ABI.
llvm-svn: 163078
|
| |
|
|
| |
llvm-svn: 163077
|
| |
|
|
|
|
| |
tools can have access to it.
llvm-svn: 163076
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 163073
|
| |
|
|
| |
llvm-svn: 163072
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
code-recursively.
This can blow the stack with extremely deep hierarchies. Switch it to data-recursive.
This is implemented by introducing a post-children visitation callback that the
CursorVisitor is calling after child nodes of a cursor have been visited.
This is used by the annotate-tokens visitor to do extra work at that point.
rdar://11979525.
llvm-svn: 163071
|
| |
|
|
|
|
|
|
|
|
| |
All clients of BasicValueFactory should be using QualTypes instead, and
indeed it seems they are. This caught the (fortunately harmless) bug
fixed in the previous commit.
No intended functionality change.
llvm-svn: 163069
|
| |
|
|
|
|
|
|
|
|
|
| |
The current logic would actually create a float- or double-sized signed
integer value of 1, which is not at all the same.
No test because the value would be swallowed by an Unknown as soon as it
gets added or subtracted to the original value, but it enables the cleanup
in the next patch.
llvm-svn: 163068
|
| |
|
|
|
|
|
|
|
| |
Any future exceptions need to go INSIDE the test that checks if the
IdentifierInfo is non-null!
No functionality change. Thanks for the review, Ted.
llvm-svn: 163067
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to correctly symbolicate the fields of structs returned by
value, as well as get the proper 'this' value for when methods are called
on structs returned by value.
This does require a moderately ugly hack in the StoreManager: if we assign
a "struct value" to a struct region, that now appears as a Loc value being
bound to a region of struct type. We handle this by simply "dereferencing"
the struct value region, which should create a LazyCompoundVal.
This should fix recent crashes analyzing LLVM and on our internal buildbot.
<rdar://problem/12137950>
llvm-svn: 163066
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we preferred to get a result type by looking at the callee's
declared result type. This allowed us to handlereferences, which are
represented in the AST as lvalues of their pointee type. (That is, a call
to a function returning 'int &' has type 'int' and value kind 'lvalue'.)
However, this results in us preferring the original type of a function
over a casted type. This is a problem when a function pointer is casted
to another type, because the conjured result value will have the wrong
type. AdjustedReturnValueChecker is supposed to handle this, but still
doesn't handle the case where there is no "original function" at all,
i.e. where the callee is unknown.
Now, we instead look at the call expression's value kind (lvalue, xvalue,
or prvalue), and adjust the expr's type accordingly. This will have no
effect when the function is inlined, and will conjure the value that will
actually be used when it is not.
This makes AdjustedReturnValueChecker /nearly/ unnecessary; unfortunately,
the cases where it would still be useful are where we need to cast the
result of an inlined function or a checker-evaluated function, and in these
cases we don't know what we're casting /from/ by the time we can do post-
call checks. In light of that, remove AdjustedReturnValueChecker, which
was already not checking quite a few calls.
llvm-svn: 163065
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The helper allows us to define how the initialization of functions should
behave. We use this patch to provide an informative error message, in case a
function is not available:
"LibclangError: /home/grosser/Projekte/llvm/install/lib/libclang.so: undefined
symbol: clang_method_added_in_2020. Please ensure that your python bindings are
compatible with your libclang.so version."
This patch also ensures that no spelling mistakes slip into the library
initialization. At the moment, there are a couple of 'argtype' -> 'argtypes'
mispellings that have been overlooked.
llvm-svn: 163057
|
| |
|
|
| |
llvm-svn: 163055
|
| |
|
|
|
|
| |
cygming yet.
llvm-svn: 163054
|
| |
|
|
| |
llvm-svn: 163052
|
| |
|
|
|
|
|
| |
This is similar to how we divide up the StaticAnalyzer libraries to separate
core functionality to what is clearly associated with Frontend actions.
llvm-svn: 163050
|
| |
|
|
| |
llvm-svn: 163039
|
| |
|
|
|
|
| |
expression expanded from a macro. This is of dubious utility in general, but is specifically a major issue for the linux kernel. This resolves PR13747.
llvm-svn: 163034
|
| |
|
|
| |
llvm-svn: 163032
|
| |
|
|
|
|
| |
While there fix a dead assert.
llvm-svn: 163031
|
| |
|
|
|
|
| |
latest definition of a function is always used when computing lock expressions.
llvm-svn: 163028
|
| |
|
|
|
|
| |
instead of referring to the flag name.
llvm-svn: 163027
|
| |
|
|
|
|
| |
expressions, which should be ignored right now.
llvm-svn: 163026
|
| |
|
|
| |
llvm-svn: 163025
|
| |
|
|
| |
llvm-svn: 163024
|
| |
|
|
| |
llvm-svn: 163023
|
| |
|
|
|
|
| |
considering commas from nested macro expansions as argument separators. Fixes parsing of VS 2012 headers.
llvm-svn: 163022
|
| |
|
|
|
|
|
| |
property-dot syntax is used on an object whose
capture causes retain cycle. // rdar://11702054
llvm-svn: 163017
|
| |
|
|
|
|
| |
instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins.
llvm-svn: 163013
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a hard-to-reach crash when calling a non-member overloaded operator
with arguments that may be callbacks.
Future-proofing: don't make the same assumption in MallocSizeofChecker.
Aside from possibly respecting attributes in the future, it might be
possible to call 'malloc' through a function pointer.
I audited all other uses of FunctionDecl::getIdentifier() in the analyzer;
they all now correctly test to see if the identifier is present before
using it.
llvm-svn: 163012
|
| |
|
|
|
|
| |
call, we need to replace it with the new one returned. This was triggering an assert under MSVC 2012 and making all the ARCMT/ tests fail.
llvm-svn: 163007
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More generally, this adds a new configuration option 'c++-inlining', which
controls which C++ member functions can be considered for inlining. This
uses the new -analyzer-config table, so the cc1 arguments will look like this:
... -analyzer-config c++-inlining=[none|methods|constructors|destructors]
Note that each mode implies that all the previous member function kinds
will be inlined as well; it doesn't make sense to inline destructors
without inlining constructors, for example.
The default mode is 'methods'.
llvm-svn: 163004
|
| |
|
|
|
|
| |
in the diagnbostic. // rdar://11303469
llvm-svn: 163003
|
| |
|
|
| |
llvm-svn: 162986
|
| |
|
|
| |
llvm-svn: 162985
|
| |
|
|
|
|
|
| |
AnalysisManager, allowing the StringMap of configuration values to
be propagated.
llvm-svn: 162978
|
| |
|
|
| |
llvm-svn: 162977
|
| |
|
|
|
|
| |
function from Tooling.
llvm-svn: 162976
|
| |
|
|
| |
llvm-svn: 162975
|
| |
|
|
|
|
| |
explicitly visible in test cases which language variant is used.
llvm-svn: 162974
|
| |
|
|
| |
llvm-svn: 162971
|
| |
|
|
| |
llvm-svn: 162970
|
| |
|
|
|
|
| |
TableGen-generated string matcher.
llvm-svn: 162969
|
| |
|
|
|
|
|
| |
This reverts commit befc0f648c83f65e1f3567f2058c7c18b4bc3ad8 now that
plist-html diagnostics are working again.
llvm-svn: 162966
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PathDiagnostics are actually profiled and uniqued independently of the
path on which the bug occurred. This is used to merge diagnostics that
refer to the same issue along different paths, as well as by the plist
diagnostics to reference files created by the HTML diagnostics.
However, there are two problems with the current implementation:
1) The bug description is included in the profile, but some
PathDiagnosticConsumers prefer abbreviated descriptions and some
prefer verbose descriptions. Fixed by including both descriptions in
the PathDiagnostic objects and always using the verbose one in the profile.
2) The "minimal" path generation scheme provides extra information about
which events came from macros that the "extensive" scheme does not.
This resulted not only in different locations for the plist and HTML
diagnostics, but also in diagnostics being uniqued in the plist output
but not in the HTML output. Fixed by storing the "end path" location
explicitly in the PathDiagnostic object, rather than trying to find the
last piece of the path when the diagnostic is requested.
This should hopefully finish unsticking our internal buildbot.
llvm-svn: 162965
|
| |
|
|
|
|
|
| |
Basically, do the correct thing to fix the XML generation error, rather
than making it even worse by unilaterally dereferencing a null pointer.
llvm-svn: 162964
|