John McCall
0562caaad6
Update the comment on the default-argument conversion fix; thanks to
...
Johannes Schaub for talking me around to sense.
llvm-svn: 138784
2011-08-29 23:55:37 +00:00
Caitlin Sadowski
ccdceb5aac
Thread safety: Adding a name to the thread safety diagnostic group to prevent typos
...
llvm-svn: 138783
2011-08-29 23:33:18 +00:00
Nico Weber
f926a45df5
Do not warn about [super finalize] in arc mode.
...
llvm-svn: 138776
2011-08-29 22:59:14 +00:00
Ivan Krasin
69a990badb
Clang/PNaCl: Improve test coverage for PNaClTargetInfo (type aligns), fixes nits:
...
- wrong alignment for double (it was 4, but 8 is desired),
- added checks for _REENTRANT define,
- fixed the issue that defines were not tested (because the check for inside #ifdef).
llvm-svn: 138775
2011-08-29 22:39:12 +00:00
Caitlin Sadowski
dd5fd87a6d
Thread safety: added basic handling for pt_guarded_by/var and guarded_by/var annotations. We identify situations where we are accessing (reading or writing) guarded variables, and report an error if the appropriate locks are not held.
...
llvm-svn: 138774
2011-08-29 22:27:51 +00:00
Fariborz Jahanian
abc11aa3bc
Fix a rewriter bug caused by recent changes in objc's
...
group decls.
llvm-svn: 138772
2011-08-29 22:21:46 +00:00
Eli Friedman
f8cb480528
Add missing function _mm_ucomige_sd to emmintrin.h. PR10803.
...
llvm-svn: 138769
2011-08-29 21:26:24 +00:00
Anna Zaks
50dd696339
[analyzer] MacOSKeychainAPIChecker: Simplify getSymbolForRegion by using existing API. Thanks Jordy.
...
llvm-svn: 138765
2011-08-29 21:10:00 +00:00
Anna Zaks
814adf7752
Fix: Bug 10798 - [analyzer] Crash when analyzing ICU. (A slight improvement on the previous commit.)
...
llvm-svn: 138762
2011-08-29 20:43:37 +00:00
Anna Zaks
cda129eb1c
Fix bug 10797: Crash: "cast<Ty>() argument of incompatible type!" assert when analyzing ICU.
...
Patch by Jean-Daniel Dupas. Thanks for spotting and fixing!
llvm-svn: 138757
2011-08-29 20:05:54 +00:00
Eli Friedman
d62d51c84d
Some minor updates to the Linux search path handling for Slackware. Patch by Will Dietz. PR10692.
...
llvm-svn: 138753
2011-08-29 18:56:43 +00:00
Fariborz Jahanian
4327b32654
Minor clean up of objc's decl context stuff.
...
No change in functionality.
llvm-svn: 138742
2011-08-29 17:33:12 +00:00
Douglas Gregor
26858b7e10
Add and document __has_feature values for the remaining C++0x
...
features, so clients can check for the availability of these features
even before we get around to implementing them.
llvm-svn: 138741
2011-08-29 17:28:38 +00:00
Caitlin Sadowski
293d24a5ba
Thread safety: various minor bugfixes, with test cases
...
This patch is by DeLesley Hutchins.
llvm-svn: 138738
2011-08-29 17:12:27 +00:00
Matt Beaumont-Gay
d6238f4717
Fix type mismatch in initialization (caught by -Wliteral-conversion)
...
llvm-svn: 138736
2011-08-29 16:37:29 +00:00
Jeffrey Yasskin
74231381a3
Print 'int' instead of 'const int' in the narrowing conversion error, since the
...
qualification of a type doesn't affect whether a conversion is a narrowing
conversion.
This doesn't work in template cases because SubstTemplateTypeParmType gets in
the way.
llvm-svn: 138735
2011-08-29 15:59:37 +00:00
Nico Weber
1fb82667dd
Warn on missing [super finalize] calls.
...
This matches gcc's logic. Second half of PR10661.
llvm-svn: 138730
2011-08-28 22:35:17 +00:00
Jordy Rose
7881affdbf
[analyzer] Header cleanup to decrease coupling (and recompilation). No functionality change.
...
llvm-svn: 138729
2011-08-28 19:45:32 +00:00
Jordy Rose
58a20d31b7
[analyzer] Introduce a new callback for checkers, printState, to be used for debug-printing the contents of a ProgramState.
...
Unlike the other callbacks, this one is a simple virtual method, since it is only to be used for debugging.
This new callback replaces the old ProgramState::Printer interface, and allows us to move the printing of refcount bindings from CFRefCount to RetainReleaseChecker.
llvm-svn: 138728
2011-08-28 19:11:56 +00:00
Nico Weber
5d8f912f50
[analyzer] update bug report url
...
llvm-svn: 138721
2011-08-28 11:50:56 +00:00
Jordy Rose
e9ff97b850
[analyzer] Remove the ProgramState argument from ExprEngine::evalBind; we were ignoring it anyway. No functionality change.
...
llvm-svn: 138720
2011-08-28 06:02:28 +00:00
Jordy Rose
d26e9e7f7c
[analyzer] Eliminate almost all uses of TransferFuncs from ExprEngine.
...
llvm-svn: 138719
2011-08-28 05:54:23 +00:00
Jordy Rose
d188d66e69
[analyzer] Migrate argument invalidation from CFRefCount to ExprEngine.
...
This is a common path for function and C++ method calls, Objective-C messages and property accesses, and C++ construct-exprs.
As support, add message receiver accessors to ObjCMessage and CallOrObjCMessage.
llvm-svn: 138718
2011-08-28 05:16:28 +00:00
Jordy Rose
1fad663126
[analyzer] Change the check::RegionChanges callback to include the regions explicitly requested for invalidation.
...
Also, allow CallOrObjCMessage to wrap a CXXConstructExpr as well.
Finally, this allows us to remove the clunky whitelisting system from CFRefCount/RetainReleaseChecker. Slight regression due to CXXNewExprs not yet being handled in post-statement callbacks (PR forthcoming).
llvm-svn: 138716
2011-08-27 22:51:26 +00:00
John McCall
4bb057d321
Disable the l-value to r-value conversion on C++ class types passed
...
to varargs functions in unevaluated contexts. AFAICT, there is no
standards justification for this, but it matches what other compilers do
and therefore preserves compatibility with certain template metaprogramming
idioms.
Should fix self-host.
llvm-svn: 138715
2011-08-27 22:06:17 +00:00
Fariborz Jahanian
83aa8ab3ae
objective-c - Make warning on unimplemented protocols point
...
to class implementation where it is supposed to be
implemented. // rdar://10009982.
llvm-svn: 138714
2011-08-27 21:55:47 +00:00
Ted Kremenek
996bfab499
[analyzer] Rename current PathDiagnosticClient::HandlePathDiagnostic() to HandlePathDiagnosticImpl(), and slot in new HandlePathDiagnostic() for potentially handling concurrent access to PathDiagnosticClients (in the future).
...
llvm-svn: 138713
2011-08-27 21:39:14 +00:00
Ted Kremenek
60120fb1b1
[analyzer] Pull body of loop in AnalysisConsumer::HandleDeclContext() into its own method. No real functionality change.
...
llvm-svn: 138712
2011-08-27 21:28:09 +00:00
Ted Kremenek
6eb83cfacd
[analyzer] Add test case for handling of __bridge_transfer that previously resulted in a 'stack address' warning (that was fixed in r138616). Fixes <rdar://problem/10018376>.
...
llvm-svn: 138710
2011-08-27 21:15:48 +00:00
Fariborz Jahanian
3a039e339f
objective-c: Treat top-level objective-c declarations
...
, such as list of forward @class decls, in a DeclGroup
node. Deal with its consequence throught clang. This
is in preparation for more Sema work ahead. // rdar://8843851.
Feel free to reverse if it breaks something important
and I am unavailable.
llvm-svn: 138709
2011-08-27 20:50:59 +00:00
Benjamin Kramer
1174675c7b
Remove unused variables noticed by GCC.
...
llvm-svn: 138707
2011-08-27 17:54:32 +00:00
Douglas Gregor
d90c3c92d5
Take an entirely different approach to handling the "parsing" of
...
__import__ within the preprocessor, since the prior one foolishly
assumed that Preprocessor::Lex() was re-entrant. We now handle
__import__ at the top level (only), after macro expansion. This should
fix the buildbot failures.
llvm-svn: 138704
2011-08-27 06:37:51 +00:00
Argyrios Kyrtzidis
bd0a6019a2
[arcmt] Xfail the test for windows.
...
llvm-svn: 138696
2011-08-27 03:38:05 +00:00
John McCall
29ad95b232
The lvalue-to-rvalue on structs in C++ is actually part
...
of default argument promotion and needs to happen unconditionally.
This is particularly semantically important in C++0x.
llvm-svn: 138691
2011-08-27 01:09:30 +00:00
Benjamin Kramer
79cfba180a
Twinify.
...
llvm-svn: 138689
2011-08-27 00:34:29 +00:00
Douglas Gregor
e89397ac1e
XFAIL one of the module tests on win32, until we figure out what's happening
...
llvm-svn: 138688
2011-08-27 00:29:32 +00:00
Douglas Gregor
472f85d86b
In C++0x mode, suggest nullptr as the initializer for an uninitialized
...
pointer variable. Patch by David Blaikie!
llvm-svn: 138687
2011-08-27 00:18:50 +00:00
Ted Kremenek
183875f671
Control 'invalid conversion specifier' warnings under a subflag (-Wformat-invalid-specifier) of -Wformat. Fixes <rdar://problem/10031930>.
...
llvm-svn: 138686
2011-08-27 00:16:45 +00:00
Douglas Gregor
afeabec7e1
Improve caret location for the GNU old-style field designator warning, from David Blaikie
...
llvm-svn: 138684
2011-08-27 00:13:16 +00:00
Douglas Gregor
be861783d2
Silence a GCC warning
...
llvm-svn: 138683
2011-08-27 00:10:53 +00:00
Douglas Gregor
c67bcd5b65
Remove the -import-module option. It's no longer useful
...
llvm-svn: 138681
2011-08-27 00:03:05 +00:00
Douglas Gregor
5be7a1c818
Try to unbreak the build on systems where uint64_t isn't something that StringRef::getAsInteger can handle as its second argument
...
llvm-svn: 138680
2011-08-26 23:57:29 +00:00
Douglas Gregor
081425343b
Introduce support for a simple module import declaration, which
...
loads the named module. The syntax itself is intentionally hideous and
will be replaced at some later point with something more
palatable. For now, we're focusing on the semantics:
- Module imports are handled first by the preprocessor (to get macro
definitions) and then the same tokens are also handled by the parser
(to get declarations). If both happen (as in normal compilation),
the second one is redundant, because we currently have no way to
hide macros or declarations when loading a module. Chris gets credit
for this mad-but-workable scheme.
- The Preprocessor now holds on to a reference to a module loader,
which is responsible for loading named modules. CompilerInstance is
the only important module loader: it now knows how to create and
wire up an AST reader on demand to actually perform the module load.
- We search for modules in the include path, using the module name
with the suffix ".pcm" (precompiled module) for the file name. This
is a temporary hack; we hope to improve the situation in the
future.
llvm-svn: 138679
2011-08-26 23:56:07 +00:00
Argyrios Kyrtzidis
1045430525
[arcmt] Add a test case for r138671 and improve the loop.
...
llvm-svn: 138674
2011-08-26 23:20:23 +00:00
Andrew Trick
3df2824c59
FreeBSD (apparently) does not support crash-recovery tests.
...
These tests have been failing since the beginning of buildbot time:
crash-recovery-code-complete.c
crash-recovery-reparse.c
crash-recovery.c
llvm-svn: 138672
2011-08-26 22:46:31 +00:00
Argyrios Kyrtzidis
3da6bc16bb
[arcmt] Fix horrible bug where migrating files if there is a space in the paths
...
of the migrated files. rdar://10022801
llvm-svn: 138671
2011-08-26 22:40:55 +00:00
Chad Rosier
97c373793b
Cleanup r138662 per Ben and David's suggestions, thanks.
...
llvm-svn: 138670
2011-08-26 22:27:02 +00:00
Douglas Gregor
4e4c83e995
Teach the ASTReader how to avoid cycles when loading declarations that
...
are lexically within a particular DeclContext. Test forthcoming.
llvm-svn: 138668
2011-08-26 22:04:51 +00:00
Chad Rosier
f0be551d68
Make sure the std::string isn't deallocated prior to use. Many thanks to Eli
...
for catching this.
llvm-svn: 138666
2011-08-26 21:47:20 +00:00
Chad Rosier
39ab743e59
[driver] When generating temporary files allow a prefix to be added. In many
...
cases we want the prefix to be the original file name less the suffix. For an
input such as test.c to named temporary would be something like test-3O4Clq.o
Part of <rdar://problem/8314451>
llvm-svn: 138662
2011-08-26 21:28:44 +00:00
Douglas Gregor
f337ae9477
When we're deserializing declarations lexically stored in a RecordDecl
...
after having already deserialized the fields, clear out the fields
first. This makes sure that we keep all of the declarations in the
lexical context (including those implicitly added by later
type-checking) within the same list. A test case for this behavior is
coming as part of another commit; testing for this problem in
isolation is a nightmare.
llvm-svn: 138661
2011-08-26 21:23:06 +00:00
Fariborz Jahanian
97b6ac5407
objc-arc: Mention property's attribute by name when
...
finding life-time conflict with its declared ivar.
// rdar://10007230
llvm-svn: 138659
2011-08-26 21:21:19 +00:00
John McCall
17054bd670
Slight optimization enabled by the previous assert:
...
emit all gl-value arguments as reference bindings.
llvm-svn: 138655
2011-08-26 21:08:13 +00:00
Jordy Rose
256a6dd13b
[analyzer] Remove a couple of unnecessary returns after llvm_unreachables.
...
llvm-svn: 138649
2011-08-26 20:32:01 +00:00
Eli Friedman
755c0c996a
Don't assert on taking the address of a non-type template parameter. Fixes PR10766.
...
llvm-svn: 138648
2011-08-26 20:28:17 +00:00
Eli Friedman
79b2d3a4d4
Make sure we don't crash printing builtin candidates for overloads of deleted operators. Fixes PR10757.
...
llvm-svn: 138645
2011-08-26 19:46:22 +00:00
John McCall
0a76c0cf68
Assert that a call argument is a gl-value iff the parameter is a reference type.
...
llvm-svn: 138639
2011-08-26 18:42:59 +00:00
John McCall
1cd60a2670
In -Wno-error=non-pod-varargs, initialize a temporary with
...
the crazy comma expression so that we get an r-value in the
varargs position.
llvm-svn: 138638
2011-08-26 18:41:18 +00:00
Chad Rosier
f29d9aa5f5
[driver] Remove a few more options when clang invokes cc1plus for i386 kexts.
...
<rdar://problem/10027287>
llvm-svn: 138637
2011-08-26 18:30:43 +00:00
Axel Naumann
cb2c52f7ac
From Vassil Vassilev: unnamed decls cannot be removed from the lookup map.
...
llvm-svn: 138631
2011-08-26 14:06:12 +00:00
John McCall
cac93853ae
What say we document some of these AggValueSlot flags a bit
...
better.
llvm-svn: 138628
2011-08-26 08:02:37 +00:00
John McCall
46759f4f46
Since the 'is aliased' bit is critical for correctness in C++, it
...
really shouldn't be optional. Fix the remaining place where a
temporary was being passed as potentially-aliased memory.
Fixes PR10756.
llvm-svn: 138627
2011-08-26 07:31:35 +00:00
John McCall
a8a39bc346
An initialization does not alias.
...
llvm-svn: 138624
2011-08-26 05:38:08 +00:00
Chad Rosier
aedf7d5f4e
Take 2: Actually fix spacing.
...
llvm-svn: 138617
2011-08-26 00:49:52 +00:00
John McCall
eb07554d9c
Be sure to do unary conversions on the operand to an ARC
...
bridged cast. Noticed by AST inspection by Ted Kremenek!
llvm-svn: 138616
2011-08-26 00:48:42 +00:00
John McCall
35e4f0cd0f
The allocated exception slot does not alias anything; should fix self-host.
...
llvm-svn: 138615
2011-08-26 00:46:38 +00:00
Chad Rosier
3b561ebd44
80-column.
...
llvm-svn: 138614
2011-08-26 00:44:04 +00:00
Jeffrey Yasskin
0e9cdbbb06
Handle CXXTempObjectRegion in StackAddrEscapeChecker.
...
Also convert stack-addr-ps.cpp to use the analyzer instead of just Sema, now
that it doesn't crash, and extract the stack-block test into another file since
it errors, and that prevents the analyzer from running.
llvm-svn: 138613
2011-08-26 00:41:31 +00:00
Chad Rosier
ba3df1d3ca
[driver] Add -mglobal-merge/-mno-global-merge machine options to enable/disable merging of
...
globals during codegen.
Fixes <rdar://problem/10017909>.
llvm-svn: 138612
2011-08-26 00:26:29 +00:00
Francois Pichet
35bc5de3bd
revert 138610, accidental commit.
...
llvm-svn: 138611
2011-08-26 00:22:34 +00:00
Francois Pichet
9a98454a7d
(no commit message)
...
llvm-svn: 138610
2011-08-26 00:18:13 +00:00
Jordy Rose
9942fe7c87
[analyzer] Increase the number of possible checks for a checker.
...
llvm-svn: 138609
2011-08-26 00:08:00 +00:00
Ivan Krasin
9b2cbdfcff
PNaClTargetInfo: add __ELF__, _REENTRANT and _GNU_SOURCE defines and update the test
...
llvm-svn: 138607
2011-08-25 23:49:20 +00:00
Matt Beaumont-Gay
045bde420b
Fix a crash-on-invalid.
...
Much to everyone's surprise, the default constructor for TypeResult produces
an instance with Invalid == false. This seems like a decision we may want to
revisit.
llvm-svn: 138601
2011-08-25 23:22:24 +00:00
John McCall
a5efa7386a
Track whether an AggValueSlot is potentially aliased, and do not
...
emit call results into potentially aliased slots. This allows us
to properly mark indirect return slots as noalias, at the cost
of requiring an extra memcpy when assigning an aggregate call
result into a l-value. It also brings us into compliance with
the x86-64 ABI.
llvm-svn: 138599
2011-08-25 23:04:34 +00:00
Fariborz Jahanian
5cc730cdef
Don't warn on category implementing a method, if
...
declated method in the class belongs to a synthesized
property getter/setter. // rdar://10014946
llvm-svn: 138598
2011-08-25 22:58:42 +00:00
Douglas Gregor
2ed0ee1ace
Eliminate the -chained-pch flag and all of the frontend and libclang options associated with it. Chained PCH is the only way to build a PCH file that includes another PCH file
...
llvm-svn: 138597
2011-08-25 22:54:01 +00:00
Douglas Gregor
36db4f9602
Remove the Chaining argument from the PCH/module generator. It's no longer used
...
llvm-svn: 138596
2011-08-25 22:35:51 +00:00
Douglas Gregor
69f74f80db
Introduce a -cc1 option "-emit-module", that creates a binary module
...
from the given source. -emit-module behaves similarly to -emit-pch,
except that Sema is somewhat more strict about the contents of
-emit-module. In the future, there are likely to be more interesting
differences.
llvm-svn: 138595
2011-08-25 22:30:56 +00:00
Fariborz Jahanian
371376010f
objc - fix a bug exposed by my recent decl context
...
changes. // rdar://10015110
llvm-svn: 138594
2011-08-25 22:26:53 +00:00
Argyrios Kyrtzidis
440f954d6f
[libclang] Fix getting a cursor that points inside tag definition that is part
...
of a type specifier.
e.g. for:
typedef struct _MyS {
int foo;
} MyS;
pointing at field 'foo' would give a cursor for the typedef declaration 'MyS'
instead of the field.
llvm-svn: 138593
2011-08-25 22:24:47 +00:00
Douglas Gregor
d09937fde0
Clean up the reloading of identifier information following the load of
...
a top-level module. This code is still horrible and should go away,
but we're not there yet.
llvm-svn: 138586
2011-08-25 21:19:59 +00:00
Douglas Gregor
a918babff4
Preload source location entries as soon as we've loaded a particular
...
AST file, rather than waiting until we finish loading the top-level
AST file.
llvm-svn: 138585
2011-08-25 21:09:44 +00:00
Fariborz Jahanian
d8114f7560
Reverse r138567 until a buildbot failure is investigated.
...
llvm-svn: 138584
2011-08-25 21:09:22 +00:00
Douglas Gregor
2fdb6b5391
Move file validation in the ASTReader from "top of chain" validation
...
to "when loading a particular module" validation, since it was only
validating local information anyway. This shouldn't change anything.
llvm-svn: 138583
2011-08-25 20:58:51 +00:00
Douglas Gregor
d44252ec03
Factor the Module and ModuleManager classes out into separate headers
...
and .cpp files, since ASTReader.cpp was getting way too large. No
functionality change.
llvm-svn: 138582
2011-08-25 20:47:51 +00:00
John McCall
8d6fc9583d
Use stronger typing for the flags on AggValueSlot and require
...
creators to tell us whether something needs GC barriers.
No functionality change.
llvm-svn: 138581
2011-08-25 20:40:09 +00:00
Argyrios Kyrtzidis
7aecbc7661
Make Lexer::ComputePreamble accept a LangOptions parameter, otherwise it may be
...
out-of-sync how a file is compiled. Patch by Matthias Kleine!
llvm-svn: 138580
2011-08-25 20:39:19 +00:00
Chad Rosier
9c286cce2e
80-column and spacing.
...
llvm-svn: 138578
2011-08-25 20:17:19 +00:00
Ted Kremenek
1b7f49c2d6
Teach -Wunreachable-code about dead code caused by macro expansions. This should suppress false positives resulting from 'assert' and friends.
...
llvm-svn: 138576
2011-08-25 19:28:55 +00:00
Douglas Gregor
69e9464340
Switch ASTReader::GetHeaderFileInfo() from a walk over the module
...
chain to a proper search.
llvm-svn: 138574
2011-08-25 18:14:34 +00:00
Douglas Gregor
14f771695a
Switch the forward walk through the module chain over to a depth-first
...
search in ASTReader::ReadPreprocessedEntities().
llvm-svn: 138572
2011-08-25 18:03:05 +00:00
Fariborz Jahanian
35d0e66bee
Fixes a typo in my last patch.
...
llvm-svn: 138571
2011-08-25 18:01:27 +00:00
Fariborz Jahanian
73d5f67f5a
objc -arse: Use DeclGroup for forward class declarations;
...
as in @class foo, bar. More cleanup to follow.
llvm-svn: 138567
2011-08-25 17:47:31 +00:00
Chad Rosier
160276dc93
[driver] Do not add -kext to the link command line when compiling with
...
-fapple-kext.
Fixes <rdar://problem/10013310>. Reverts <rdar://problem/7809940>.
llvm-svn: 138564
2011-08-25 17:33:03 +00:00
Douglas Gregor
aa7cbfd259
Remove a bogus assertion from the AST reader, which assumed that
...
redeclarations of a particular entity would occur in source
order. Friend declarations that occur within class templates (or
member classes thereof) do not follow this, nor would modules. Big
thanks to Erik Verbruggen for reducing this problem from the Very
Large Qt preamble testcase he found.
llvm-svn: 138557
2011-08-25 15:28:26 +00:00
Douglas Gregor
c10edd6dd0
Use the module manager's search facility to look for methods with a
...
given selector, rather than walking the chain backwards. Teach its
visitor how to merge multiple result sets into a single result set,
combining the results of selector lookup in several different modules
into a single result set.
llvm-svn: 138556
2011-08-25 14:51:20 +00:00
Jordy Rose
15484daafe
[analyzer] Move the leak bugs from CFRefCount to RetainReleaseChecker, with a level of indirection to handle GC vs. non-GC.
...
llvm-svn: 138538
2011-08-25 01:14:38 +00:00
Anna Zaks
5be8a4d104
[analyzer] MacOSKeychainAPIChecker: Cleanup AllocationState structure.
...
llvm-svn: 138535
2011-08-25 00:59:06 +00:00
Francois Pichet
f2fb411d4a
Add support for Microsoft __ptr32 keyword.
...
Patch by Chris Cudmore!
llvm-svn: 138533
2011-08-25 00:36:46 +00:00
Jordy Rose
4ba0ba42e2
[analyzer] Move the easy bug types from CFRefCount to RetainReleaseChecker.
...
(These bug types may have just been leaked before...!)
llvm-svn: 138532
2011-08-25 00:34:03 +00:00
Anna Zaks
85913db489
[analyzer] MacOSKeychainAPIChecker: Add the custom BugReport visitor(which highlights the allocation site) to all the relevant reports within the checker.
...
llvm-svn: 138531
2011-08-25 00:32:42 +00:00
Jordy Rose
8b289a2cbd
[analyzer] Move the RetainSummaryManager from CFRefCount to RetainReleaseChecker.
...
Because Checkers live for an entire translation unit, this persists summary caches across multiple code bodies and avoids repeated initialization (but probably at the cost of memory). This removes the last references from RetainReleaseChecker to CFRefCount.
llvm-svn: 138529
2011-08-25 00:10:37 +00:00
Fariborz Jahanian
5c4b2ca699
blocks - capturing logic of byref block variable's expression
...
statement initializer makes safe assumption when a substatement
is encounterred (with a fix me).
llvm-svn: 138528
2011-08-25 00:06:26 +00:00
Jordy Rose
a4c41bb875
[analyzer] Better fix for the "missing return" error, from Ted.
...
llvm-svn: 138526
2011-08-24 23:41:46 +00:00
Jordy Rose
34a83e911f
[analyzer] Silence another incorrect warning ("control reaches end of non-void function")
...
llvm-svn: 138510
2011-08-24 22:58:49 +00:00
Jordy Rose
763982b82d
[analyzer] Remove experimental FIXME that never actually applied to the code in trunk.
...
llvm-svn: 138508
2011-08-24 22:45:12 +00:00
Jordy Rose
184bd1430b
[analyzer] CFRefReport and friends no longer depend on CFRefCount.
...
llvm-svn: 138506
2011-08-24 22:39:09 +00:00
Douglas Gregor
754ff8b622
Remove long-dead FIXME
...
llvm-svn: 138498
2011-08-24 22:09:40 +00:00
Anna Zaks
f880cff209
[analyzer] Do not use references in std::pair.
...
llvm-svn: 138497
2011-08-24 21:58:55 +00:00
Douglas Gregor
a3e59b49e7
Don't force the complete deserialization of the visible-declarations
...
table when serializing an AST file. This was a holdover from the days
before chained PCH, and is a complete waste of time and storage
now. It's a good thing it's useless, because I have no idea how I
would have implemented MaterializeVisibleDecls efficiently in the
presence of modules.
llvm-svn: 138496
2011-08-24 21:56:08 +00:00
Anna Zaks
0d67579497
[analyzer] Unbreak the release buildbot.
...
llvm-svn: 138493
2011-08-24 21:40:10 +00:00
Douglas Gregor
1257f97003
Introduce a depth-first search of modules into the module manager,
...
which supports both pre-order and post-order traversal via a visitor
mechanism. Use this depth-first search with a post-order traversal to
give predictable ordering semantics when walking all of the lexical
declarations in the translation unit.
Eventually, module imports will occur in the source code rather than
at the beginning, and we'll have to revisit this walk.
llvm-svn: 138490
2011-08-24 21:27:34 +00:00
Ivan Krasin
7a09d12242
Follow up to r138470 (Add PNaCl TargetInfo). I've occasionally submitted wrong patch.
...
llvm-svn: 138489
2011-08-24 21:22:25 +00:00
Anna Zaks
be460898bb
[analyzer] MacOSKeychainAPIChecker: Provide reacher diagnostic trace by pointing to the allocation site when reporting a leak.
...
llvm-svn: 138479
2011-08-24 20:52:46 +00:00
Jordy Rose
9ff0299935
[analyzer] Silence an (incorrect) uninitialized variable warning, caught by Cameron.
...
llvm-svn: 138477
2011-08-24 20:38:42 +00:00
Jordy Rose
38eea65acd
[analyzer] Copy GC mode setting from CFRefCount to RetainReleaseChecker in preparation for getting rid of CFRefCount.
...
This is a little hacky for now but will get better once we decide the best way to handle this.
llvm-svn: 138476
2011-08-24 20:33:55 +00:00
Argyrios Kyrtzidis
b87ea9871d
Silence 'may be used uninitialized' warnings.
...
llvm-svn: 138475
2011-08-24 20:33:05 +00:00
Anna Zaks
45aa208554
[analyzer] Allow checker writes to specify that no region should be accosiated with the report. (Useful when we report an error on endOfPath or deadSymbols, when the range of the last expression might have nothing to do with the error.)
...
llvm-svn: 138474
2011-08-24 20:31:06 +00:00
Ivan Krasin
dd7403e612
Add PNaCl TargetInfo.
...
llvm-svn: 138470
2011-08-24 20:22:22 +00:00
Jordy Rose
e8743a7499
[analyzer] Remove unused DoNothingByRef and the special case for CFDictionaryCreate.
...
This is a very small regression (actually introduced in r138309) because it won't catch leaks of objects passed by reference to CFDictionaryCreate (they're considered to have escaped and are ignored). If this is important we can put in a specific eval::Call to restore the functionality.
llvm-svn: 138464
2011-08-24 19:10:50 +00:00
Douglas Gregor
94619c81fc
In the AST reader, switch name lookup within a DeclContect over to the
...
module DAG-based lookup scheme. This required some reshuffling, so
that each module stores its own mapping from DeclContexts to their
lexical and visible sets for those DeclContexts (rather than one big
"chain").
Overall, this allows simple qualified name lookup into the translation
unit to gather results from multiple modules, with the lookup results
in module B shadowing the lookup results in module A when B imports A.
Walking all of the lexical declarations in a module DAG is still a
mess; we'll end up walking the loaded module list backwards, which
works fine for chained PCH but doesn't make sense in a DAG. I'll
tackle this issue as a separate commit.
llvm-svn: 138463
2011-08-24 19:03:07 +00:00
Jordy Rose
5df640dc33
[analyzer] Slightly clean up the fix in 138432, so that it doesn't depend on the relative ordering of path-sensitive and path-insensitive checks. Still not ideal, but I think a real fix would require infrastructure that doesn't exist yet.
...
llvm-svn: 138462
2011-08-24 18:56:32 +00:00
Caitlin Sadowski
726003e79d
Thread safety: Fix a few typos in last commit -- use LockID instead of Lock in comments and start a couple methods with a lowercase letter
...
llvm-svn: 138460
2011-08-24 18:46:20 +00:00
Evan Cheng
494eb062b5
Match LLVM change: TargetRegistry and TargetSelect have been moved to Support.
...
llvm-svn: 138451
2011-08-24 18:09:14 +00:00
Axel Naumann
744f121e5b
Reset FirstID (first diagnostic's file ID) to allow for invocations of the VerifyDiagnosticsClient on several input files.
...
llvm-svn: 138434
2011-08-24 13:36:19 +00:00
Jordy Rose
95589f13ff
[analyzer] Fix a Heisenbug concerning object lifetimes with a hack. Hopefully a better fix coming soon. See comment for more details.
...
llvm-svn: 138432
2011-08-24 09:27:24 +00:00
Jordy Rose
58428b914d
[analyzer] Reapply 138390 "Clean up unused bits of CFRefCount", reverted in 138405. Ended up unrelated to any problems.
...
llvm-svn: 138431
2011-08-24 09:22:31 +00:00
Jordy Rose
14de7c5a88
[analyzer] Fix potential crasher with RAII. No functionality change. (No test because this particular circumstance requires an impossible series of events, but this is future-proofing.)
...
llvm-svn: 138430
2011-08-24 09:02:37 +00:00
Jordy Rose
7a53498f20
[analyzer] Reapply 138382 and 138388 (reverted in 138419 and 138420). The issue seems to have been with the uninitialized variable fixed in 138424; a fix for another Heisencrasher coming soon.
...
llvm-svn: 138426
2011-08-24 05:47:39 +00:00
Jordy Rose
03a8f9e578
[analyzer] Correctly initialize a variable and hopefully fix crashes.
...
llvm-svn: 138424
2011-08-24 04:48:19 +00:00
Bruno Cardoso Lopes
fbb8b84f5f
Add testcase for r138411
...
llvm-svn: 138422
2011-08-24 01:35:04 +00:00
Eric Christopher
aa8b6a5cf4
Revert "[analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to their uses. No functionality change."
...
This reverts commit d02b4af7bd6ca4a743c7074d64e205d718aa221d.
llvm-svn: 138420
2011-08-24 00:39:51 +00:00
Eric Christopher
1825e7a260
Revert "[analyzer] Make CFRefBug and CFRefReportVisitor not dependent on CFRefCount. Unfortunately, CFRefReport still is. No functionality change."
...
This reverts commit e3fb7e428b7ba0d5d902dfe3f165d70e09b03a15.
llvm-svn: 138419
2011-08-24 00:39:48 +00:00
Eric Christopher
b58b3e879d
Make constant aggregate constant initializers private linkage.
...
After talking with John making this the case for all of these is
the right way to go.
Fixes rdar://9804564 and PR10414
llvm-svn: 138418
2011-08-24 00:33:55 +00:00
Anna Zaks
0897a23517
[analyzer] MacOSKeychainAPIChecker: Add reasoning about functions which MIGHT deallocate the memory region allocated with SecKeychain APIs. Specifically, when the buffer is passed to CFStringCreateWithBytesNoCopy along with a custom deallocator, which might potentially correctly release the memory.
...
llvm-svn: 138417
2011-08-24 00:06:27 +00:00
Anna Zaks
f9e9c4e9bc
[analyzer] MacOSKeychainAPIChecker: Retrieve the memory region which we are tracking even when it's no longer a SymbolicRegion, for example, when it is cast to char*.
...
llvm-svn: 138415
2011-08-23 23:56:12 +00:00
Anna Zaks
bb167011e3
Move creation of the deallocation mismatch report into a separate function for future reuse.
...
llvm-svn: 138414
2011-08-23 23:47:36 +00:00
Eric Christopher
d28d107099
Whitespace and 80-col cleanup.
...
llvm-svn: 138413
2011-08-23 23:44:09 +00:00
Fariborz Jahanian
73952fc263
objc - fix up the builtin type for objc_assign_ivar.
...
// rdar://9362887.
llvm-svn: 138412
2011-08-23 23:33:09 +00:00
Bruno Cardoso Lopes
7a98a7e681
Fix _mm256_shuffle_ps mask! Example, for mask=203, Instead of:
...
<i32 3, i32 2, i32 8, i32 11, i32 3, i32 6, i32 12, i32 15>
generate:
<i32 3, i32 2, i32 8, i32 11, i32 7, i32 6, i32 12, i32 15>
llvm-svn: 138411
2011-08-23 23:29:45 +00:00
Ted Kremenek
bd91371381
Start reworking -Wunreachable-code. The original analysis had serious flaws with how it
...
handled SCC's of dead code, or simply having false negatives by overly suppressing warnings.
WIP.
llvm-svn: 138410
2011-08-23 23:05:11 +00:00
Ted Kremenek
6b9964d237
CFG: record set of C++ 'try' dispatch blocks, which could be of interest to various analyses (e.g., reachability).
...
llvm-svn: 138409
2011-08-23 23:05:07 +00:00
Ted Kremenek
adfb445466
Constify the result of CFGStmt::getStmt().
...
llvm-svn: 138408
2011-08-23 23:05:04 +00:00
Ted Kremenek
4183a62a53
Add 'const' version of CompoundStmt::children().
...
llvm-svn: 138407
2011-08-23 23:05:01 +00:00
Eric Christopher
fba570c9d8
Revert "[analyzer] Clean up unused bits of CFRefCount."
...
This reverts commit 6886a92640f5bffc972f67c0a1f302d6c6e7c322.
llvm-svn: 138405
2011-08-23 22:38:04 +00:00
Eric Christopher
31ab13047d
Whitespace.
...
llvm-svn: 138404
2011-08-23 22:38:00 +00:00
Eli Friedman
3fa64df543
Refactor and fix checking for initialization of flexible array members. The old version had the checks scattered across the code, missed some checks, and had a couple nasty bugs in existing checks.
...
Fixes PR10648 and another similar accepts-invalid bug.
llvm-svn: 138398
2011-08-23 22:24:57 +00:00
Jordy Rose
5aa9b1dd3f
[analyzer] Clean up unused bits of CFRefCount.
...
llvm-svn: 138390
2011-08-23 21:51:36 +00:00
Eric Christopher
c3fc262423
Right now this requires asserts.
...
llvm-svn: 138389
2011-08-23 21:47:58 +00:00