John McCall
1b93f1ba9f
Tame an assert; the scope depth of a jump destination does not
...
necessarily enclose the innermost normal cleanup depth, because
the top of the jump scope stack might be an EH cleanup or EH scope.
Fixes PR9303.
llvm-svn: 126472
2011-02-25 04:19:13 +00:00
Douglas Gregor
144548072d
Use NestedNameSpecifierLoc within out-of-line variables, function, and
...
tag definitions. Also, add support for template instantiation of
NestedNameSpecifierLocs.
llvm-svn: 126470
2011-02-25 02:25:35 +00:00
Ted Kremenek
b6f9ab6378
Teach TextDiagnosticPrinter to print out '-Werror' in addition to the warning flag for a warning mapped to an error.
...
For example:
t.c:7:9: error: using the result of an assignment as a condition without parentheses [-Werror,-Wparentheses]
llvm-svn: 126466
2011-02-25 01:28:26 +00:00
Douglas Gregor
4d0779a754
Nth time's a charm?
...
llvm-svn: 126461
2011-02-25 00:46:48 +00:00
Douglas Gregor
61e58aecbc
CMake target check.deps only exists when LLVM_INCLUDE_TESTS
...
llvm-svn: 126460
2011-02-25 00:43:05 +00:00
Douglas Gregor
a9d87bc6ac
Update UsingDecl, UnresolvedUsingTypenameDecl, and
...
UnresolvedUsingValueDecl to use NestedNameSpecifierLoc rather than the
extremely-lossy NestedNameSpecifier/SourceRange pair it used to use,
improving source-location information.
Various infrastructure updates to support NestedNameSpecifierLoc:
- AST/PCH (de-)serialization
- Recursive AST visitor
- libclang traversal (including the first tests of this
functionality)
llvm-svn: 126459
2011-02-25 00:36:19 +00:00
Douglas Gregor
49709e75bb
LLVM_INCLUDE_TESTS applies to unit tests, not the normal Clang tests
...
llvm-svn: 126458
2011-02-25 00:32:30 +00:00
Douglas Gregor
0e066c0238
Don't include Clang's unit tests if LLVM's unit tests aren't being built
...
llvm-svn: 126455
2011-02-25 00:12:04 +00:00
Argyrios Kyrtzidis
17bee3e70a
Intoduce '-analyzer-checker-help' flag which outputs a list of all available static analyzer checkers.
...
This is pretty basic for now, eventually checkers should be grouped according to package, hidden checkers should be indicated etc.
llvm-svn: 126454
2011-02-25 00:09:51 +00:00
Chandler Carruth
4322a2864e
Fix the rest of PR9316 along with some other bugs spotted by inspection.
...
I tried to add test cases for these, but I can't because variables
aren't warned on the way functions are and the codegen layer appears to
use different logic for determining that 'a' and 'g' in the test case
should receive C mangling. I've included the test so that if we ever
switch the codegen layer to use these functions, we won't regress due to
latent bugs.
llvm-svn: 126453
2011-02-25 00:05:02 +00:00
Ted Kremenek
a8890833f2
Don't warn about using PredefinedExprs as format string literals. These never can be a real security issue.
...
Fixes PR 9314.
llvm-svn: 126447
2011-02-24 23:03:04 +00:00
Argyrios Kyrtzidis
b388f77ad9
[analyzer] Remove '-analyzer-experimental-internal-checks' flag, it doesn't have any checkers associated with it anymore.
...
llvm-svn: 126440
2011-02-24 21:43:08 +00:00
Argyrios Kyrtzidis
51695bbb0a
[analyzer] Allow a checker to be hidden even if its package is hidden & enabled.
...
For example, if 'core.experimental.UnreachableCode' is hidden, it should not be enabled with 'core.experimental'.
Note that this requires llvm commit r126436.
llvm-svn: 126439
2011-02-24 21:42:52 +00:00
Argyrios Kyrtzidis
8b08906411
[analyzer] Migrate CastSizeChecker to CheckerV2.
...
llvm-svn: 126438
2011-02-24 21:42:49 +00:00
Fariborz Jahanian
74405b02f9
Fix a rewrite bug. // rdar://9039342
...
llvm-svn: 126435
2011-02-24 21:29:21 +00:00
Rafael Espindola
eb4fd01f7a
Use private linkage to avoid symbol conflicts in corner cases like the one
...
in PR9301.
llvm-svn: 126422
2011-02-24 20:31:44 +00:00
Chandler Carruth
9682a2fd3a
Likely fix for PR9316 and other unknown bugs: don't use the anonynmous
...
namespace blanket rule for variables and functions declared 'extern
"C"'.
llvm-svn: 126400
2011-02-24 19:03:39 +00:00
Douglas Gregor
869ad45f8f
Retain complete source-location information for C++
...
nested-name-specifiers throughout the parser, and provide a new class
(NestedNameSpecifierLoc) that contains a nested-name-specifier along
with its type-source information.
Right now, this information is completely useless, because we don't
actually store the source-location information anywhere in the
AST. Call this Step 1/N.
llvm-svn: 126391
2011-02-24 17:54:50 +00:00
Chandler Carruth
e721185799
Simplify messages as requested by Chris.
...
llvm-svn: 126389
2011-02-24 17:13:15 +00:00
Axel Naumann
016538ad2a
From Vassil Vassilev:
...
Add an interface for last resort, unqualified lookup. It can provide results for unqualified lookup when Sema fails to find anything itself.
llvm-svn: 126387
2011-02-24 16:47:47 +00:00
Daniel Dunbar
30cdc7022b
Revert "Use CharUnits values for Size and DataSize outside of the bitfield
...
layout", it broke some GCC tests.
llvm-svn: 126386
2011-02-24 16:40:53 +00:00
Argyrios Kyrtzidis
c08d89e6c2
Allow passing a list of comma separated checker names to -analyzer-checker, e.g:
...
-analyzer-checker=cocoa,unix
llvm-svn: 126372
2011-02-24 08:42:20 +00:00
Argyrios Kyrtzidis
dd407f423b
[analyzer] Migrate ArrayBoundChecker to CheckerV2.
...
llvm-svn: 126371
2011-02-24 08:42:12 +00:00
Argyrios Kyrtzidis
8f38c3843d
[analyzer] Don't pass a GRState to CheckerManager::runCheckersForLocation, terrible mistake.
...
If the state is new, make sure an ExplodedNode is associated with it.
llvm-svn: 126370
2011-02-24 08:42:04 +00:00
Argyrios Kyrtzidis
7bc0141043
[analyzer] Migrate ReturnPointerRangeChecker to CheckerV2.
...
llvm-svn: 126369
2011-02-24 08:41:57 +00:00
Chris Lattner
abcf38a064
compute the integer width, not the memory width here. We want to know that
...
_Bool is 1 bit, not 8. This fixes an assertion on the testcase, which is
PR9304 and rdar://9045501.
llvm-svn: 126368
2011-02-24 07:31:28 +00:00
Chris Lattner
d767a0300e
Reimplement DefineTypeSize in terms of APInt. This eliminates some
...
magic integer arithmetic and allows it to work with types larger
than 64 bits.
llvm-svn: 126365
2011-02-24 06:54:56 +00:00
Chris Lattner
190aa10fe6
rework processing of unavailable and deprecated attributes to avoid
...
unneeded allocation of an empty StringLiteral when these don't have
a message.
llvm-svn: 126364
2011-02-24 05:42:24 +00:00
Ted Kremenek
d813801384
Fix tiny error in CFG construction for BinaryConditionalOperators, making sure the branch always has two successors. Also teach Environment::getSVal() about OpaqueValueExprs.
...
This fixes a crash reported in PR9287, and also fixes a false positive involving the value of such ternary
expressions not properly getting propagated.
llvm-svn: 126362
2011-02-24 03:09:15 +00:00
Chandler Carruth
f8da8c7fa7
Tweak this test a bit further to make it easier on grep. Who knows what
...
characters get dropped into the regular expression from %t.
llvm-svn: 126361
2011-02-24 02:39:40 +00:00
Douglas Gregor
d7295bad84
Test case for previous commit
...
llvm-svn: 126360
2011-02-24 02:37:39 +00:00
Douglas Gregor
7b26ff912f
Teach NestedNameSpecifier to keep track of namespace aliases the same
...
way it keeps track of namespaces. Previously, we would map from the
namespace alias to its underlying namespace when building a
nested-name-specifier, losing source information in the process.
llvm-svn: 126358
2011-02-24 02:36:08 +00:00
Ken Dyck
8e74e79145
Use CharUnits values for Size and DataSize outside of the bitfield layout
...
methods, when they are known to be exact multiples of the width of the char
type.
llvm-svn: 126357
2011-02-24 02:12:14 +00:00
Ken Dyck
3c215f2fd1
Use Context.getCharWidth() in place of literal '8's in assertions.
...
llvm-svn: 126356
2011-02-24 01:33:05 +00:00
Ken Dyck
ecfc75529f
Make the Size and DataSize members more CharUnits-friendly by wrapping them
...
with getter and setter methods in both bit units and CharUnits. This will help
simplify some of the unit mismatch in the parts of the code where sizes are
known to be exact multiples of the width of the char type.
Assertions in the getters help guard against accidentally converting to
CharUnits when sizes are not exact multiples of the char width.
llvm-svn: 126354
2011-02-24 01:13:28 +00:00
Argyrios Kyrtzidis
4769e9376e
[analyzer] Remove unused functions from CheckerManager.
...
llvm-svn: 126352
2011-02-24 01:05:37 +00:00
Argyrios Kyrtzidis
785459a2a9
[analyzer] Migrate StreamChecker to CheckerV2.
...
llvm-svn: 126351
2011-02-24 01:05:33 +00:00
Argyrios Kyrtzidis
c26f15dbad
[analyzer] Migrate CStringChecker to CheckerV2.
...
llvm-svn: 126350
2011-02-24 01:05:30 +00:00
Douglas Gregor
2ab3fee3f3
Tweak the CXXScopeSpec API a bit, so that we require the
...
nested-name-specifier and source range to be set at the same time.
llvm-svn: 126347
2011-02-24 00:49:34 +00:00
Douglas Gregor
90c9972fb2
Teach CXXScopeSpec to handle the extension of a nested-name-specifier
...
with another component in the nested-name-specifiers, updating its
representation (a NestedNameSpecifier) and source-location information
(currently a SourceRange) simultaneously. This is groundwork for
adding source-location information to nested-name-specifiers.
llvm-svn: 126346
2011-02-24 00:17:56 +00:00
Chandler Carruth
60ed89dc54
Handle value dependent LHS as well as RHS. Test both of these, they
...
don't seem to have been covered by our tests previously.
This should fix bootstrap failure.
llvm-svn: 126345
2011-02-24 00:03:53 +00:00
Chandler Carruth
220617c1ba
Clean up the CMake test execution by nuking this directory before we try
...
to create it. Lit doesn't apparently clean up test directories
effectively, and so this broke randomly on subsequent runs.
Also XFAIL the test on windows, as there's not much hope for these
commands doing the right thing there.
Paired with Nick Lewycky.
llvm-svn: 126344
2011-02-23 23:52:14 +00:00
Chandler Carruth
4c6fdca035
Implement a warning for known shift overflows on constant shift
...
expressions. Consider the code:
int64_t i = 10 << 30;
This compiles fine, but most developers expect it to produce the value
for 10 gigs, not -2 gigs. This is actually undefined behavior because
the LHS is a signed integer type.
The warning is currently gated behind -Wshift-overflow.
There is a special case where only the sign bit is overridden that gets
a custom error message and is by default ignored. This case is much less
likely to cause observed buggy behavior, it's just undefined behavior
according to the spec. This warning can be enabled with
-Wshift-sign-overflow.
Original patch by Oleg Slezberg, with style tweaks and some correctness
fixes by me.
llvm-svn: 126342
2011-02-23 23:34:11 +00:00
Ted Kremenek
e4b316c15c
Fix bogus -Warray-bounds warning involving 'array[true]' reported in PR 9296.
...
llvm-svn: 126341
2011-02-23 23:06:04 +00:00
Nick Lewycky
3607989847
Preserve what the user passed to -include when emitting .d files. Fixes PR8974!
...
llvm-svn: 126334
2011-02-23 21:16:44 +00:00
Argyrios Kyrtzidis
506220fef7
[analyzer] Migrate StackAddrLeakChecker to CheckerV2.
...
llvm-svn: 126333
2011-02-23 21:04:54 +00:00
Argyrios Kyrtzidis
f1b5d1f01b
[analyzer] Refactor EndOfFunctionNodeBuilder.
...
-Introduce EndOfFunctionNodeBuilder::withCheckerTag to allow it be "specialized" with a
checker tag and not require the checkers to pass a tag.
-For EndOfFunctionNodeBuilder::generateNode, reverse the order of tag/P parameters since
there are actual calls that assume the second parameter is ExplodedNode.
llvm-svn: 126332
2011-02-23 21:04:49 +00:00
Argyrios Kyrtzidis
66b38c2261
[analyzer] Migrate IdempotentOperationChecker to CheckerV2.
...
llvm-svn: 126331
2011-02-23 21:04:44 +00:00
Matt Beaumont-Gay
b7edc188e2
fix typo in *all* of the test cases
...
llvm-svn: 126328
2011-02-23 19:40:41 +00:00
Matt Beaumont-Gay
006cdae008
fix typo in test too
...
llvm-svn: 126327
2011-02-23 19:39:05 +00:00
Argyrios Kyrtzidis
68cab73ab9
[analyzer] const goodness.
...
llvm-svn: 126326
2011-02-23 19:38:45 +00:00
Argyrios Kyrtzidis
d0732a660a
[analyzer] Rename runPathSensitiveCheckers -> expandGraphWithCheckers.
...
llvm-svn: 126325
2011-02-23 19:38:41 +00:00
Argyrios Kyrtzidis
da02a25ae6
[analyzer] Migrate ChrootChecker to CheckerV2.
...
llvm-svn: 126324
2011-02-23 19:38:39 +00:00
Matt Beaumont-Gay
5d2144602f
fix typo
...
llvm-svn: 126323
2011-02-23 18:55:30 +00:00
Chandler Carruth
e71b378dc7
Fix the behavior of -Wignored-qualifiers on return type qualifiers in
...
several ways. We now warn for more of the return types, and correctly
locate the ignored ones. Also adds fix-it hints to remove the ignored
qualifiers. Fixes much of PR9058, although not all of it.
Patch by Hans Wennborg, a couple of minor style tweaks from me.
llvm-svn: 126321
2011-02-23 18:51:59 +00:00
Douglas Gregor
4a4e0eb782
Mention libclang in the Doxygen documentation
...
llvm-svn: 126316
2011-02-23 17:45:25 +00:00
David Chisnall
8aab5de75c
Fix type mismatch between property function that CGObjCGNU was returning and the one CGObjC was calling. Fixes bug r9294.
...
llvm-svn: 126312
2011-02-23 14:05:31 +00:00
NAKAMURA Takumi
ff75d8d502
CMake: Don't use ${CMAKE_CFG_INTDIR} for installed llvm-lit on Visual Studio.
...
llvm-svn: 126310
2011-02-23 12:07:49 +00:00
Argyrios Kyrtzidis
bf61d97a98
[analyzer] Migrate UnreachableCodeChecker to CheckerV2.
...
llvm-svn: 126308
2011-02-23 07:19:23 +00:00
Argyrios Kyrtzidis
aad8372516
[analyzer] Migrate to CheckerV2:
...
NSAutoreleasePoolChecker
ObjCAtSyncChecker
llvm-svn: 126307
2011-02-23 07:19:18 +00:00
Argyrios Kyrtzidis
99ea46462a
[analyzer] Add LangOptions in CheckerManager.
...
llvm-svn: 126306
2011-02-23 07:19:14 +00:00
Ted Kremenek
1a241d1619
Teach CFGBuilder about null pointer constants in conditionals, and how they can be used to prune branches. Fixes false null pointer dereference warning in PR 8183.
...
llvm-svn: 126305
2011-02-23 05:11:46 +00:00
Ted Kremenek
c49211c79a
Add null check in CursorVisitor::RunVisitorWorkList() when visiting LabelDecls. Fixes <rdar://problem/9040579>.
...
llvm-svn: 126304
2011-02-23 04:54:51 +00:00
Anders Carlsson
d99dbcc2a9
Don't give an error for 'try' and 'throw' if they occur in system headers.
...
llvm-svn: 126303
2011-02-23 03:46:46 +00:00
Anders Carlsson
33e56a047f
Add a -fcxx-exceptions flag to clang -cc1. This controls the newly added CXXExceptions flag.
...
llvm-svn: 126300
2011-02-23 03:16:42 +00:00
Anders Carlsson
6bbd268396
Add a CXXExceptions flag to LangOptions.
...
llvm-svn: 126299
2011-02-23 03:04:54 +00:00
Ted Kremenek
204f1d26d4
Add doxygen comments to Sema::DiagRuntimeBehavior().
...
llvm-svn: 126296
2011-02-23 02:26:43 +00:00
Ted Kremenek
ef59fe7845
Add test case (from PR 8876) for suppressing 'indirection of non-volatile null pointer...' warning due to reachability analysis.
...
llvm-svn: 126294
2011-02-23 02:15:19 +00:00
Peter Collingbourne
4b66c47a16
Sema: diagnose kernel calls to non-global functions
...
llvm-svn: 126292
2011-02-23 01:53:29 +00:00
Ted Kremenek
477c8f5440
Add test case for PR 9284, a false positive for -Warray-bounds that is now addressed using basic reachability analysis.
...
llvm-svn: 126291
2011-02-23 01:52:07 +00:00
Ted Kremenek
3427fac7c8
Enhance Sema::DiagRuntimeBehavior() to delay some diagnostics to see if the related code is reachable. This suppresses some
...
diagnostics that occur in unreachable code (e.g., -Warray-bound).
We only pay the cost of doing the reachability analysis when we issue one of these diagnostics.
llvm-svn: 126290
2011-02-23 01:52:04 +00:00
Ted Kremenek
80861ca9b5
Migrate CFGReachabilityAnalysis out of the IdempotentOperationsChecker and into its own analysis file.
...
llvm-svn: 126289
2011-02-23 01:51:59 +00:00
Ted Kremenek
cc7f1f8c2e
Have IdempotentOperationsChecker pull its CFGStmtMap from AnalysisContext.
...
llvm-svn: 126288
2011-02-23 01:51:53 +00:00
Ted Kremenek
1767a27b3e
Issue AnalysisBasedWarnings as part of calling Sema::PopBlockOrFunctionScope(). No real functionality change.
...
llvm-svn: 126287
2011-02-23 01:51:48 +00:00
Ted Kremenek
55ae319a28
Update Sema::DiagRuntimeBehavior() to take an optional Stmt* to indicate the code the diagnostic is associated with.
...
This Stmt* is unused, but we will use it shortly for pruning diagnostics associated
with unreachable code.
llvm-svn: 126286
2011-02-23 01:51:43 +00:00
Ted Kremenek
db3333df71
Change -Warray-bounds logic to use DiagRuntimeBehavior in preparation for using basic dataflow to suppress warnings on unreachable array bounds checks.
...
llvm-svn: 126285
2011-02-23 01:51:40 +00:00
Argyrios Kyrtzidis
dff865d10b
[analyzer] Migrate to CheckerV2:
...
CastToStructChecker
FixedAddressChecker
MacOSXAPIChecker
PointerArithChecker
PointerSubChecker
PthreadLockChecker
UnixAPIChecker
llvm-svn: 126284
2011-02-23 01:05:36 +00:00
Chandler Carruth
1aef0c5621
Switch the VerifyDiagnosticsClient to use PresumedLocs now that they
...
exist. Cheat and do this by adding some wrappers around the PresumedLoc
machinery that directly return the line and column number.
llvm-svn: 126281
2011-02-23 00:47:48 +00:00
Richard Smith
bb7dcf59a0
Update the www to indicate that auto is now implemented.
...
llvm-svn: 126280
2011-02-23 00:41:16 +00:00
Richard Smith
2abf6767e3
Fix PR9276: We were missing the checks for auto deducing to different types in the same declaration group in the template instantiation case.
...
llvm-svn: 126279
2011-02-23 00:37:57 +00:00
Argyrios Kyrtzidis
dd058d8a50
[analyzer] Migrate the BasicObjCFoundationChecks to CheckerV2:
...
NilArgChecker
CFNumberCreateChecker
ClassReleaseChecker
llvm-svn: 126275
2011-02-23 00:16:10 +00:00
Argyrios Kyrtzidis
22f2586bfb
[analyzer] Fix CheckerManager::runCheckersForObjCMessage.
...
It would run PostObjCMessage checkers even for PreObjCMessage checking.
llvm-svn: 126274
2011-02-23 00:16:07 +00:00
Argyrios Kyrtzidis
9631dbe5ce
Silence a MSVC warning.
...
llvm-svn: 126273
2011-02-23 00:16:04 +00:00
Argyrios Kyrtzidis
a1540db6e4
[analyzer] Refactor BugTypes and their ownership model.
...
-In general, don't have the BugReporter deleting BugTypes, BugTypes will eventually become owned by checkers
and outlive the BugReporter. In the meantime, there will be some leaks since some checkers assume that
the BugTypes they create will be destroyed by the BugReporter.
-Have BugReporter::EmitBasicReport create BugTypes that are reused if the same name & category strings
are passed to EmitBasicReport. These BugTypes are owned and destroyed by the BugReporter.
This allows bugs reported through EmitBasicReport to be coalesced.
-Remove the llvm::FoldingSet<BugReportEquivClass> from BugType and move it into the BugReporter.
For uniquing BugReportEquivClass also use the BugType* so that we can iterate over all of them using only one set.
llvm-svn: 126272
2011-02-23 00:16:01 +00:00
Argyrios Kyrtzidis
b9abca0000
In the clang.xcodeproj modify the 'clang' target to do nothing, not try to build anything.
...
llvm-svn: 126270
2011-02-23 00:15:56 +00:00
Fariborz Jahanian
82ff1e52df
Better parser recovery when method is
...
errornously defined inside an objc class.
// rdar://7029784
llvm-svn: 126269
2011-02-23 00:11:21 +00:00
Richard Smith
e97a53a446
DeclGroup's operator[] always returned the first Decl in the group.
...
llvm-svn: 126268
2011-02-23 00:09:59 +00:00
Matt Beaumont-Gay
06de2553f3
Clean up the error recovery at the bottom of Sema::LookupMemberExpr. This
...
mostly just shuffles various possibilities for recovery into a more
straightforward order, but also unifies a couple of diagnostics.
llvm-svn: 126266
2011-02-22 23:52:53 +00:00
Douglas Gregor
385d3fd97d
When checking for abstract types, don't crash when we have a
...
FunctionProtoTypeLoc with NULL function parameter types, which can
occur in invalid code. Fixes PR9247 / <rdar://problem/9037911>.
llvm-svn: 126262
2011-02-22 23:21:06 +00:00
Fariborz Jahanian
bb6db56028
Provide Fixit warning when 'auto' is intended as storage
...
specifier in legacy code. Patch is reviewed offline by Doug.
// rdar://9036633.
llvm-svn: 126261
2011-02-22 23:17:49 +00:00
John McCall
147d021b75
Emit the structure layout of the block literal parameter to a block
...
invocation function into the debug info. Rather than faking up a class,
which is tricky because of the custom layout we do, we just emit a struct
directly from the layout information we've already got.
Also, don't emit an unnecessarily parameter alloca for this "variable".
llvm-svn: 126255
2011-02-22 22:38:33 +00:00
John McCall
550d13aebb
Give ImplicitParamDecl a public constructor so that it can be allocated on
...
the stack.
llvm-svn: 126254
2011-02-22 22:25:56 +00:00
John McCall
b67608fe83
Provide a Decl::getNonClosureContext to look through any "closure" (i.e.
...
block and, eventually, C++ lambda) contexts.
llvm-svn: 126252
2011-02-22 22:25:23 +00:00
Douglas Gregor
996a735b88
We need a longer long when testing this pathe Microsoft fixed-underlying-type extension for enumeration types
...
llvm-svn: 126250
2011-02-22 21:42:31 +00:00
Devang Patel
b6ed369e77
A constructor call should force class's debug info even if -flimit-debug-info is enabled.
...
llvm-svn: 126246
2011-02-22 20:55:26 +00:00
Chris Lattner
ba9006df9e
improve support for SUSE Linux Enterprise Server 11 SP1 (x86_64).
...
Patch by Csaba Raduly!
llvm-svn: 126245
2011-02-22 20:47:07 +00:00
Douglas Gregor
a1aec29a2d
Enable enumeration types with a fixed underlying type, e.g.,
...
enum X : long { Value = 0x100000000 };
when in Microsoft-extension mode (-fms-extensions). This (now C++0x)
feature has been supported since Microsoft Visual Studio .NET 2003.
llvm-svn: 126243
2011-02-22 20:32:04 +00:00
Matt Beaumont-Gay
7a24210ebd
Use an unused-except-in-Debug variable.
...
llvm-svn: 126240
2011-02-22 20:00:16 +00:00
Devang Patel
d7185b755d
Use LLVM coding standard.
...
llvm-svn: 126232
2011-02-22 18:56:36 +00:00
Douglas Gregor
e2f943b5cb
Implement the GNU C extension which permits the initialization of an
...
array from a constant array compound literal. Fixes PR9261.
llvm-svn: 126230
2011-02-22 18:29:51 +00:00
Argyrios Kyrtzidis
ed35cf271d
[analyzer] Start moving the path-sensitive checkers to CheckerV2.
...
-Migrate ObjCSelfInitChecker to CheckerV2. In the process remove the 'preCallSelfFlags' field
from the checker class and use GRState for storing that info.
-Get ExprEngine to start delegating checker running to CheckerManager.
llvm-svn: 126229
2011-02-22 17:30:38 +00:00
Argyrios Kyrtzidis
98e35dda03
[analyzer] Separate CheckerContext into its own include file. No functionality change.
...
llvm-svn: 126228
2011-02-22 17:30:32 +00:00
Argyrios Kyrtzidis
b9eae65c63
[analyzer] Fix GRStatePartialTrait<bool> and introduce GRStatePartialTrait<unsigned>.
...
llvm-svn: 126227
2011-02-22 17:30:28 +00:00
Joerg Sonnenberger
fe74286a48
Remove the storage for -cxx-system-include. Make libcxx toolchain
...
use -nostdinc++ and -cxx-isystem.
llvm-svn: 126223
2011-02-22 15:19:35 +00:00
Peter Collingbourne
f29ce975ba
Reimplement __pragma support using a TokenLexer
...
llvm-svn: 126221
2011-02-22 13:49:06 +00:00
Peter Collingbourne
2c9f966600
Make TokenLexer capable of storing preprocessor directive tokens
...
llvm-svn: 126220
2011-02-22 13:49:00 +00:00
Oscar Fuentes
e16dc2a6e7
CMAKE_EXECUTABLE_SUFFIX is undefined when a cmake script is executed
...
with cmake -P ... so we need to deduce the correct executable prefix.
Fixes PR9286.
llvm-svn: 126219
2011-02-22 13:05:15 +00:00
John McCall
9e2e22f5c6
Establish the iteration variable of an ObjC for-in loop before
...
emitting the collection expression. Fixes some really, really broken
code.
llvm-svn: 126193
2011-02-22 07:16:58 +00:00
John McCall
c533cb7008
Reorganize the emission of local variables.
...
llvm-svn: 126189
2011-02-22 06:44:22 +00:00
Ted Kremenek
fb1a79af7a
Add CStringChecker support for strncpy. Patch by Lenny Maiorani!
...
llvm-svn: 126188
2011-02-22 04:58:34 +00:00
Ted Kremenek
280a01fa1b
Add CStringChecker support for strnlen. Patch by Lenny Maiorani!
...
llvm-svn: 126187
2011-02-22 04:55:05 +00:00
NAKAMURA Takumi
f8a6e802f9
lib/CodeGen/TargetInfo.cpp: On Win64, arg i128 should be emitted as INDIRECT.
...
mingw-w64's i128 tweak should be done with x86_64-mingw32.
llvm-svn: 126186
2011-02-22 03:56:57 +00:00
Douglas Gregor
6cd5ae4dfa
Fix a little bug in the handling of enumeration types with a fixed
...
underlying type: we weren't parsing unnamed enumeration types with a
fixed underlying type.
llvm-svn: 126184
2011-02-22 02:55:24 +00:00
Douglas Gregor
a78f193e7e
Warn about implicit conversions between values of different, named
...
enumeration types. Fixes <rdar://problem/8559831>.
llvm-svn: 126183
2011-02-22 02:45:07 +00:00
Anders Carlsson
3320e1575f
Make clang -cc1 disable Objective-C exceptions by default, and add a -fobjc-exceptions flag to turn them on.
...
Update all tests accordingly.
llvm-svn: 126177
2011-02-22 01:52:06 +00:00
Anders Carlsson
4fc229ef69
Move some Objective-C tests to SemaObjC and CodeGenObjC.
...
llvm-svn: 126175
2011-02-22 01:23:29 +00:00
Richard Smith
23eb9f707b
In Objective-C, there are no trailing return types, so don't produce diagnostics suggesting they are missing.
...
llvm-svn: 126174
2011-02-22 01:22:29 +00:00
Joerg Sonnenberger
cc9c8eb837
Bug#8945: Add -cxx-isystem option to specify C++ system directories.
...
It works like -isystem and the search path keeps -isystem and
-cxx-isystem in order relative to each other. -cxx-isystem is only used
for C++ sources though. Drop the existing -cxx-system-include option for
cc1 as it is now redundant.
llvm-svn: 126167
2011-02-22 00:40:56 +00:00
Richard Smith
59006e4338
Fix a few auto-related issues:
...
* 'auto' was being rejected on abstract-declarators with trailing return
types and on typedefs with trailing return types. 'auto' is always
allowed in these cases. This was found while testing the fix for PR 9278.
* A very poor diagnostic was being issued for auto (f() -> int): "return
type must be 'auto', not 'auto'". This is closely related to PR 9060.
* Trailing return type handling was happening slightly too late,
resulting in the checks for functions returning arrays and functions
returning functions being missed.
llvm-svn: 126166
2011-02-22 00:36:53 +00:00
Richard Smith
e51cb7dedf
Add reference to PR 9278 for archaeologists.
...
llvm-svn: 126164
2011-02-22 00:19:36 +00:00
Fariborz Jahanian
d7b0cb5388
Warn when type modifiers on objc method declarations in
...
protocols do not match with method implementation.
// rdar://7076235
llvm-svn: 126162
2011-02-21 23:49:15 +00:00
David Chisnall
055f064756
The instance size of a metaclass should be the size of a class. This is not, in fact, 0, even for very small classes. (GNU runtime)
...
llvm-svn: 126161
2011-02-21 23:47:40 +00:00
Richard Smith
27e39b11b1
C++0x's deduced auto is illegal in typedefs.
...
This actually rules out too much, since it also catches typedefs for pointers to functions with trailing return types:
typedef auto (*F)() -> int;
Fix for that (and the same issue in all abstract-declarators) to follow shortly.
llvm-svn: 126153
2011-02-21 23:18:00 +00:00
Daniel Dunbar
13adc7fefd
Targets/Darwin: mcount name on Darwin needs to be unmangled.
...
llvm-svn: 126152
2011-02-21 23:12:51 +00:00
Ted Kremenek
828f631af1
Fix a CFGBuilder bug exposed on convoluted control-flow in the Linux kernel.
...
llvm-svn: 126149
2011-02-21 22:11:26 +00:00
Chris Lattner
93ede02045
add one more case of mismatched input/output constraints.
...
When the mismatch is due to a larger input operand that is
a constant, truncate it down to the size of the output. This
allows us to accept some cases in the linux kernel and elsewhere.
Pedantically speaking, we generate different code than GCC, though
I can't imagine how it would matter:
Clang:
movb $-1, %al
frob %al
GCC:
movl $255, %eax
frob %al
llvm-svn: 126148
2011-02-21 22:09:29 +00:00
Chris Lattner
e3694b166a
more code restructuring, no functionality change.
...
llvm-svn: 126146
2011-02-21 21:50:25 +00:00
Chris Lattner
70a4e9b5e2
split the iteration loop out to a helper function, no functionality change.
...
llvm-svn: 126145
2011-02-21 21:40:33 +00:00
Chris Lattner
169766f306
fix a comment.
...
llvm-svn: 126143
2011-02-21 21:15:10 +00:00
Stuart Hastings
b6a4d3ebd2
Test case for r126127 and r126141. Radar 9012638.
...
llvm-svn: 126142
2011-02-21 21:08:21 +00:00
Richard Smith
5503805555
Mangling of undeduced 'auto' types, as specified by Itanium C++ ABI.
...
llvm-svn: 126140
2011-02-21 20:10:02 +00:00
Richard Smith
b2bc2e6752
Tweaks to C++0x deduced auto type support:
...
* Flag indicating 'we're parsing this auto typed variable's initializer' moved from VarDecl to Sema
* Temporary template parameter list for auto deduction is now allocated on the stack.
* Deduced 'auto' types are now uniqued.
llvm-svn: 126139
2011-02-21 20:05:19 +00:00
Ted Kremenek
bda17491c4
Fix call to send_error() in scan-view. An int error code is expected but a string was being sent. Patch by Andrew Price!
...
llvm-svn: 126138
2011-02-21 19:26:48 +00:00
John McCall
15dd404c46
Don't warn about static const integral data members with in-line constant
...
initializers just because they don't have a proper out-of-line definition.
Such code is technically ill-formed but is too common and too unlikely to be
a problem to be seriously worth worrying about.
llvm-svn: 126137
2011-02-21 19:25:48 +00:00
Fariborz Jahanian
786e04cda5
Turn on 'auto' in plain objc mode.
...
llvm-svn: 126134
2011-02-21 18:37:13 +00:00
Chris Lattner
d0257f79bc
Pass the right linker flag in openbsd::Link::ConstructJob,
...
patch by Matthew Dempsky!
llvm-svn: 126133
2011-02-21 18:36:51 +00:00
Fariborz Jahanian
f5bfc46c95
Remove warning on future change in ivar lookup rule
...
when doing the property default synthesis.
// rdar://9027673.
llvm-svn: 126128
2011-02-21 17:31:28 +00:00
John McCall
5decec97e5
Reorganize subelement initialization checking, no functionality change.
...
llvm-svn: 126116
2011-02-21 07:57:55 +00:00
John McCall
66884dd93c
Small optimization: avoid redundant checks of whether a type is an array
...
when checking an initialization.
llvm-svn: 126115
2011-02-21 07:22:22 +00:00
John McCall
701417a0ac
Pseudo-revirtualize CallExpr::getSourceRange by making it follow the
...
logic from CXXMemberCallExpr and by making it check for
CXXOperatorCallExpr in order to defer. This is not really an awesome solution,
but I don't have a better idea.
llvm-svn: 126114
2011-02-21 06:23:05 +00:00
John McCall
e9dab636df
Bind references to opaque r-values correctly. Add a few test cases
...
for ?: on record types.
llvm-svn: 126113
2011-02-21 05:25:38 +00:00
NAKAMURA Takumi
19c9fb6cbc
CMake: Eliminate duplicate -D__STDC_LIMIT_MACROS and -D__STDC_CONSTANT_MACROS. llvm/cmake/modules/HandleLLVMOptions.cmake defines them.
...
llvm-svn: 126105
2011-02-21 03:19:49 +00:00
John McCall
f2e9110a9f
Rename test/CodeGenCXX/gnu-conditional-scalar-ext.cpp to conditional-gnu-ext.cpp
...
for consistency with other tests (and to remove "scalar" from the name).
llvm-svn: 126104
2011-02-21 02:28:50 +00:00
Chandler Carruth
d05b352b0e
Clean up the tests for warning about unused function results given the
...
appropriate attribute. Add a bit more testing that finds a pretty bad
regression (since ~forever) in this warning. Fix it with a nice 2 line
change. =]
llvm-svn: 126098
2011-02-21 00:56:56 +00:00
Chandler Carruth
468b5cbd40
Allow -Wformat to be enabled without -Wformat-security. GCC gates
...
-Wformat-security on -Wformat, not vice-versa.
Fixes PR8486. Patch by Oleg Slezberg.
llvm-svn: 126096
2011-02-21 00:07:51 +00:00
Oscar Fuentes
15fe190027
Put targets on folders, if the IDE supports the feature.
...
Requires CMake 2.8.3 or newer.
llvm-svn: 126094
2011-02-20 22:06:44 +00:00
Oscar Fuentes
6f72540e46
New function for tablegenning: clang_tablegen.
...
llvm-svn: 126093
2011-02-20 22:06:32 +00:00
Oscar Fuentes
e9c7994669
Correct name of dependent target.
...
CMake complained about this while generating VS project files but was
okay with it while generating makefiles on Linux.
llvm-svn: 126090
2011-02-20 19:41:34 +00:00
Daniel Dunbar
bd466d404a
tests: Fix test on Win32.
...
llvm-svn: 126087
2011-02-20 17:41:24 +00:00
Benjamin Kramer
ae1e5c250c
Remove unused function.
...
llvm-svn: 126084
2011-02-20 16:04:14 +00:00
Richard Smith
7ee0d5664e
Turn on __has_feature(cxx_auto_type). The feature is now fully implemented.
...
llvm-svn: 126078
2011-02-20 12:13:05 +00:00
Daniel Dunbar
67e556249c
Remove a dead variable.
...
llvm-svn: 126073
2011-02-20 06:15:13 +00:00
Richard Smith
30482bc786
Implement the C++0x deduced 'auto' feature.
...
This fixes PR 8738, 9060 and 9132.
llvm-svn: 126069
2011-02-20 03:19:35 +00:00
Ken Dyck
6d90e8937c
Expand use of CharUnits in LayoutField(). No change in functionality
...
intended.
llvm-svn: 126066
2011-02-20 02:06:09 +00:00
Ken Dyck
d24099de04
Add const qualifier to getTypeInfoInChars().
...
llvm-svn: 126064
2011-02-20 01:55:18 +00:00
Richard Smith
1daeacbda8
Test commit.
...
llvm-svn: 126063
2011-02-20 00:59:54 +00:00
Anders Carlsson
08ce5ed1b1
Add a LangOptions::areExceptionsEnabled and start using it.
...
llvm-svn: 126062
2011-02-20 00:20:27 +00:00
Anders Carlsson
ce8dd3a5d4
Add a new ObjCExceptions member variable to LangOptions. This controls whether Objective-C exceptions are enabled or not (they are by default).
...
llvm-svn: 126061
2011-02-19 23:53:54 +00:00
Peter Collingbourne
8f5cf74c77
Re-instate r125819 and r125820 with no functionality change
...
llvm-svn: 126060
2011-02-19 23:03:58 +00:00
Chris Lattner
29eb47bd68
Fix PR9253, allowing attribute(aligned) to reduce the alignment of
...
a typedef.
llvm-svn: 126059
2011-02-19 22:55:41 +00:00
Douglas Gregor
5b05454f24
Don't produce "comparison is always (true|false)" warnings when the
...
comparison itself is a constant expression. Fixes PR7536.
llvm-svn: 126057
2011-02-19 22:34:59 +00:00
Chris Lattner
b0ed51da10
implement a tiny amount of codegen support for gnu array range
...
designators: allowing codegen when the element initializer is a
constant or something else without a side effect. This unblocks
enough to let process.c in the linux kernel build, PR9257.
llvm-svn: 126056
2011-02-19 22:28:58 +00:00
Douglas Gregor
d66828daf6
In addition to in-class member functions marked with the "used"
...
attribute, we also care about those with the "constructor"
attribute. Fixes PR6521.
llvm-svn: 126055
2011-02-19 21:54:50 +00:00
Anders Carlsson
b94ad3ec22
There's no need to return early if we encounter a try/throw and exceptions are disabled.
...
llvm-svn: 126053
2011-02-19 21:53:09 +00:00
Rafael Espindola
a6d2bff0c5
Revert 125820 and 125819 to fix PR9266.
...
llvm-svn: 126050
2011-02-19 21:39:31 +00:00
Oscar Fuentes
f7fa56f25f
Fix some add_dependencies.
...
The syntax is (add_dependencies target-name depend-target1 ...).
llvm-svn: 126049
2011-02-19 21:38:48 +00:00
Douglas Gregor
b491ed36b4
Handle the resolution of a reference to a function template (which
...
includes explicitly-specified template arguments) to a function
template specialization in cases where no deduction is performed or
deduction fails. Patch by Faisal Vali, fixes PR7505!
llvm-svn: 126048
2011-02-19 21:32:49 +00:00
Peter Collingbourne
5de2850efb
Reimplement Token::isAnnotation() using TokenKinds.def. No functionality change.
...
llvm-svn: 126045
2011-02-19 20:06:59 +00:00
Anders Carlsson
68b36aff46
Disallow try/catch/throw when exceptions are disabled.
...
llvm-svn: 126039
2011-02-19 19:26:44 +00:00
Douglas Gregor
bf2b26d805
The member classes of a current instantiation aren't necessarily a
...
current instantiation, even though we have a RecordDecl describing
them. Fixes PR9255.
Amusingly, I've had this patch sitting around for a month or two
because it was "obviously" wrong, but hadn't gotten around to writing
a test case to submit the fix :)
llvm-svn: 126038
2011-02-19 19:24:40 +00:00
Anders Carlsson
479d6f51e3
Pass -fexceptions to all tests that use try/catch/throw.
...
llvm-svn: 126037
2011-02-19 19:23:03 +00:00
Douglas Gregor
0cf82f6ad0
Teach the virtual-functions-without-virtual-destructor warning to only
...
warn about polymorphic classes (which have virtual functions) rather
than dynamic classes (which are polymorphic or have virtual bases).
llvm-svn: 126036
2011-02-19 19:14:36 +00:00
Douglas Gregor
f05c0958e2
Remove the Fix-It for "main must return 'int'", which is not always
...
correct and is not worth fixing. Fixes PR8396.
llvm-svn: 126035
2011-02-19 19:04:23 +00:00
Ken Dyck
85ef0431a7
Expand use of CharUnits for alignments further. No change in functionality
...
intended.
llvm-svn: 126034
2011-02-19 18:58:07 +00:00
Douglas Gregor
b11aad8cba
Revert all of my commits that devirtualized the Decl hierarchy, which
...
lead to a serious slowdown (4%) on parsing of Cocoa.h. This memory
optimization should be revisited later, when we have time to look at
the generated code.
llvm-svn: 126033
2011-02-19 18:51:44 +00:00
Jeffrey Yasskin
39a5820059
Use PARSE_ARGUMENTS to clean up add_clang_unittest's calling convention.
...
It would be nice to propagate this into the other functions to replace
LLVM_LINK_COMPONENTS and friends, but I don't plan to do that.
llvm-svn: 126032
2011-02-19 18:06:01 +00:00
Argyrios Kyrtzidis
3b1b3fe039
[analyzer] '-analyzer-check-objc-mem' can go through the llvm/clang codebase without crashing; enable it for C++.
...
llvm-svn: 126026
2011-02-19 08:03:21 +00:00
Argyrios Kyrtzidis
eb8357c1d8
[analyzer] Fix crash when analyzing C++ code.
...
llvm-svn: 126025
2011-02-19 08:03:18 +00:00
Jeffrey Yasskin
ecdd68d760
Remove support and mc from the clang unittests' dependencies because they're not
...
needed or provided by the libraries under test.
The next step is to import http://www.itk.org/Wiki/CMakeMacroParseArguments to
make the empty string parameter unnecessary.
llvm-svn: 126024
2011-02-19 06:07:17 +00:00
Daniel Dunbar
1094bb101b
Driver/Darwin: Support -Wl, with -Xarch_. This doesn't work naturally because of
...
the special way we model "linker input" arguments.
llvm-svn: 126023
2011-02-19 05:33:51 +00:00
Argyrios Kyrtzidis
12f146a3ef
Use PointerUnion::getAddrOf instead of messing with PointerUnion & reinterpret_cast.
...
llvm-svn: 126021
2011-02-19 04:02:34 +00:00
Ted Kremenek
ff6fd0f4b0
Change 'StoreRef' back to 'Store' in GRState, shrinking the size of GRState back by one pointer.
...
llvm-svn: 126020
2011-02-19 03:56:19 +00:00
John McCall
68cc3350a8
Fix a -Wuninitialized warning; it's actually a false positive,
...
but it's not reasonable for the diagnostic to figure that out.
Pointed out by Benjamin Kramer.
Also clarify the logic here.
llvm-svn: 126017
2011-02-19 03:13:26 +00:00
John McCall
8377967543
Warn about code that uses variables and functions with internal linkage
...
without defining them. This should be an error, but I'm paranoid about
"uses" that end up not actually requiring a definition. I'll revisit later.
Also, teach IR generation to not set internal linkage on variable
declarations, just for safety's sake. Doing so produces an invalid module
if the variable is not ultimately defined.
Also, fix several places in the test suite where we were using internal
functions without definitions.
llvm-svn: 126016
2011-02-19 02:53:41 +00:00
Argyrios Kyrtzidis
21f347e729
[analyzer] Fix crash when analyzing C++ code.
...
llvm-svn: 126013
2011-02-19 01:59:41 +00:00
Ted Kremenek
fda3687515
Add 'StoreRef' smart pointer to allow more fine-grain memory lifetime control of Store objects.
...
This yields a minor memory reduction (for larger functions) on Sqlite at the cost of slightly
higher memory usage on some functions because of the increased size of GRState (which can be optimized).
I expect the real memory savings from this enhancement will come when we aggressively
canabilize more of the ExplodedGraph.
llvm-svn: 126012
2011-02-19 01:59:33 +00:00
Argyrios Kyrtzidis
e34245b30b
[analyzer] Fix crash when analyzing C++ code.
...
llvm-svn: 126007
2011-02-19 01:08:41 +00:00
Argyrios Kyrtzidis
1227f3afca
[analyzer] Disable a test until inlining CXXConstructExprs is fully investigated.
...
llvm-svn: 126006
2011-02-19 01:08:37 +00:00
Chandler Carruth
4c4f8de421
Improve bool and char integral template argument printing in
...
diagnostics, resolving PR9227.
Patch originally by Mihai Rusu and Stephen Hines with some minimal style
tweaks from me.
llvm-svn: 125999
2011-02-19 00:21:00 +00:00
Chandler Carruth
9c9127eace
Fix a missed case in the NULL operand to conditional operator
...
diagnostics.
Patch by Stephen Hines.
llvm-svn: 125998
2011-02-19 00:13:59 +00:00
Chandler Carruth
fc1ad1f371
Update the test error messages to match the update I made to the actual
...
messages.
llvm-svn: 125997
2011-02-19 00:12:23 +00:00
Chandler Carruth
98e3c568bf
Fix PR8767, improve diagnostic wording when allocating an object of an
...
abstract class type.
Patch by Stephen Hines, with a wording tweak from Doug applied by me.
llvm-svn: 125996
2011-02-18 23:59:51 +00:00
Chandler Carruth
a8bea4b90e
Initial steps to improve diagnostics when there is a NULL and
...
a non-pointer on the two sides of a conditional expression.
Patch by Stephen Hines and Mihai Rusu.
llvm-svn: 125995
2011-02-18 23:54:50 +00:00
Chandler Carruth
241b31378d
Check for NULL child expressions before visiting them, as the first
...
thing the visit does is dyn_cast<>, which leads to a nasty segfault.
llvm-svn: 125993
2011-02-18 23:42:00 +00:00
Douglas Gregor
3a69eafa88
When code-completing a case statement for a switch on a value of
...
enumeration type, prioritize the enumeration constants and don't
provide completions for any other expressions. Fixes <rdar://problem/7283668>.
llvm-svn: 125991
2011-02-18 23:30:37 +00:00
Devang Patel
2d6390d47b
Start using enums from DIBuilder.
...
llvm-svn: 125990
2011-02-18 23:29:22 +00:00
Daniel Dunbar
5423b497ab
More correct fix for CMake breakage I was seeing, my buildbots use
...
LLVM_INCLUDE_TESTS:=OFF, which may no longer be necessary for all I know.
llvm-svn: 125985
2011-02-18 22:55:32 +00:00
Ted Kremenek
dcc45f6ec1
Update text for where to file analyzer bugs.
...
llvm-svn: 125983
2011-02-18 22:42:04 +00:00
Fariborz Jahanian
0dcb2a0d99
Test case for // rdar://8850818
...
llvm-svn: 125982
2011-02-18 22:37:54 +00:00
Chris Lattner
fa222dfbed
If -fno-builtin is passed, tell TargetLibraryInfo to
...
turn off all builtin optimizations.
llvm-svn: 125979
2011-02-18 22:34:47 +00:00