| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 168095
|
| |
|
|
|
|
| |
"<invalid loc>" for summary.
llvm-svn: 168087
|
| |
|
|
|
|
|
| |
- An LLVM unique_file() bug could cause us to infinite loop on the later test
case.
llvm-svn: 168082
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In code like this:
void foo() {
bar();
baz();
}
...the location for the call to 'bar()' was being used as a backup location
for the call to 'baz()'. This is fine unless the call to 'bar()' is deemed
uninteresting and that part of the path deleted.
(This looks like a logic error as well, but in practice the only way 'baz()'
could have an invalid location is if the entire body of 'foo()' is
synthesized, meaning the call to 'bar()' will be using the location of the
call to 'foo()' anyway. Nevertheless, the new version better matches the
intent of the code.)
Found by Matt Beaumont-Gay using ASan. Thanks, Matt!
llvm-svn: 168080
|
| |
|
|
|
|
| |
- Realized I could use the /dev/fd filesystem to make a simple portable test.
llvm-svn: 168079
|
| |
|
|
| |
llvm-svn: 168077
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a few cases where we'd emit path notes like this:
+---+
1| v
p = malloc(len);
^ |2
+---+
In general this should make path notes more consistent and more correct,
especially in cases where the leak happens on the false branch of an if
that jumps directly to the end of the function. There are a couple places
where the leak is reported farther away from the cause; these are usually
cases where there are several levels of nested braces before the end of
the function. This still matches our current behavior for when there /is/
a statement after all the braces, though.
llvm-svn: 168070
|
| |
|
|
|
|
|
| |
Also, don't bother to stop tracking symbols in the return value, either.
They are now properly considered live during checkDeadSymbols.
llvm-svn: 168069
|
| |
|
|
|
|
|
| |
Also, don't bother to stop tracking symbols in the return value, either.
They are now properly considered live during checkDeadSymbols.
llvm-svn: 168068
|
| |
|
|
|
|
|
| |
Also, don't bother to stop tracking symbols in the return value, either.
They are now properly considered live during checkDeadSymbols.
llvm-svn: 168067
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to properly remove dead bindings at the end of the top-level
stack frame, using the ReturnStmt, if there is one, to keep the return value
live. This in turn removes the need for a check::EndPath callback in leak
checkers.
This does cause some changes in the path notes for leak checkers. Previously,
a leak would be reported at the location of the closing brace in a function.
Now, it gets reported at the last statement. This matches the way leaks are
currently reported for inlined functions, but is less than ideal for both.
llvm-svn: 168066
|
| |
|
|
|
|
|
|
| |
to a cc1 -fencode-extended-block-signature and pass it
to cc1 and recognize this option to produce extended block
type signature. // rdar://12109031
llvm-svn: 168063
|
| |
|
|
|
|
| |
instead of messing with virtual files.
llvm-svn: 168062
|
| |
|
|
|
|
| |
as the include location of the main file of an imported module.
llvm-svn: 168061
|
| |
|
|
|
|
| |
FileCheck feature. This will hopefully make tests less fragile.
llvm-svn: 168056
|
| |
|
|
| |
llvm-svn: 168055
|
| |
|
|
| |
llvm-svn: 168047
|
| |
|
|
|
|
|
|
|
|
| |
It may become a dangling pointer if the underlying SmallVector reallocates.
Sadly the testcase is really large and doesn't reduce well because of
SmallVector's reallocation patterns.
Fixes PR14336.
llvm-svn: 168045
|
| |
|
|
| |
llvm-svn: 168041
|
| |
|
|
|
|
| |
Clang part.
llvm-svn: 168039
|
| |
|
|
|
|
| |
Fixes PR14073!
llvm-svn: 168031
|
| |
|
|
|
|
|
| |
more sense anyway - it determines how expressions are codegen'd. It also ensures
that -ffp-contract=fast has the intended effect when compiling LLVM IR.
llvm-svn: 168027
|
| |
|
|
|
|
| |
can't handle the input file type. This resulted in PR14338.
llvm-svn: 168024
|
| |
|
|
|
|
| |
-Wtautological-constant-out-of-range-compare and added test case.
llvm-svn: 168023
|
| |
|
|
|
|
| |
The matchers rely on the complete AST being traversed as shown by the new test cases.
llvm-svn: 168022
|
| |
|
|
| |
llvm-svn: 168020
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We do this by using the "most recent" good location: if a synthesized
function 'A' calls another function 'B', the path notes for the call to 'B'
will be placed at the same location as the path note for calling 'A'.
Similarly, the call to 'A' will have a note saying "Entered call from...",
and now we just don't emit that (since the user doesn't have a body to look
at anyway).
Previously, we were doing this for the "Calling..." notes, but not for the
"Entered call from..." or "Returning to caller". This caused a crash when
the path entered and then exiting a call within a synthesized body.
<rdar://problem/12657843>
llvm-svn: 168019
|
| |
|
|
|
|
|
|
|
|
|
| |
not ReadExpr().
Also add a test case making sure the thread safety attributes work as expected
when they come from a PCH.
Fixes rdar://12584141 & http://llvm.org/PR13982
llvm-svn: 168017
|
| |
|
|
|
|
| |
current list of powerpc-darwin8 failures.
llvm-svn: 168016
|
| |
|
|
| |
llvm-svn: 168015
|
| |
|
|
|
|
|
|
|
|
| |
type-name is looked up in the context of the complete postfix-expression. Don't
forget to pass the scope into this lookup when the type-name is a template-id;
it might name an alias template which can't be found within the class itself.
Bug spotted by Johannes Schaub on #llvm.
llvm-svn: 168011
|
| |
|
|
|
|
|
|
|
| |
BinaryOperator::Opcode. This is bad form, and the behavior of the static_cast
in this case is unspecified according to the standard.
Fixes a warning that showed up from r167992 on self-host.
llvm-svn: 168010
|
| |
|
|
|
|
| |
the default. // rdar://12109031
llvm-svn: 168007
|
| |
|
|
|
|
| |
PR14342.
llvm-svn: 168005
|
| |
|
|
|
|
|
|
|
| |
working with preprocessed testcases. This causes source locations in
diagnostics to point at the spelling location instead of the presumed location,
while still keeping the semantic effects of the line directives (entering and
leaving system-header mode, primarily).
llvm-svn: 168004
|
| |
|
|
| |
llvm-svn: 168003
|
| |
|
|
|
|
|
|
| |
it is
local or loaded.
llvm-svn: 168002
|
| |
|
|
|
|
|
|
| |
generate expanded signature encoding to include types as we
already do this for protocol method lists.
// rdar://12109031
llvm-svn: 167997
|
| |
|
|
| |
llvm-svn: 167995
|
| |
|
|
|
|
|
|
| |
This is also a false-positive test case for <rdar://problem/12415065>.
<rdar://problem/12687586>
llvm-svn: 167994
|
| |
|
|
|
|
|
|
|
| |
type conversion between integers. This allows the warning to be more accurate.
Also, turned the warning off in an analyzer test. The relavent test cases
are covered by the tests in Sema.
llvm-svn: 167992
|
| |
|
|
|
|
| |
<rdar://problem/12676166>, and tested on the LLDB side of the world.
llvm-svn: 167990
|
| |
|
|
|
|
|
|
|
|
| |
type as written from the ParmVarDecl; it's unclear whether the standard
(C99 6.9.1p10) requires this, but we're following the precedent set by gcc,
and hopefully nobody will ever ask about this again.
PR9559 / <rdar://problem/12621983>.
llvm-svn: 167985
|
| |
|
|
|
|
| |
Approved by Chris Lattner.
llvm-svn: 167983
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ParseSingleDeclarationAfterTemplate(), for now. [-Wdocumentation]
/// \param TemplateParams if non-NULL, the template parameter lists
/// that preceded this declaration. In this case, the declaration is a
/// template declaration, out-of-line definition of a template, or an
/// explicit template specialization. When NULL, the declaration is an
/// explicit template instantiation.
///
/// \param TemplateLoc when TemplateParams is NULL, the location of
/// the 'template' keyword that indicates that we have an explicit
/// template instantiation.
llvm-svn: 167982
|
| |
|
|
| |
llvm-svn: 167981
|
| |
|
|
|
|
|
|
|
| |
pointer, otherwise we will double free it when ExpressionEvaluationContextRecord
gets copied.
Fixes crash in rdar://12645424 & http://llvm.org/PR14252
llvm-svn: 167946
|
| |
|
|
|
|
|
| |
which is not coincidentally the only place it works, either (because
of how it tests for EH_TYPE symbols).
llvm-svn: 167935
|
| |
|
|
| |
llvm-svn: 167934
|
| |
|
|
| |
llvm-svn: 167932
|