Douglas Gregor
1d1d16c43e
Make canonicalization of overloaded function declarations match the
...
Itanium C++ ABI's name mangling, since both are related to the notion
of "equivalent" function templates.
llvm-svn: 77678
2009-07-31 16:07:31 +00:00
Douglas Gregor
c97f09f565
Canonicalize template template parameters. We can't test this yet, but
...
it's "obviously correct" :)
llvm-svn: 77677
2009-07-31 15:46:56 +00:00
Douglas Gregor
70317123c9
Canonicalize function parameters
...
llvm-svn: 77676
2009-07-31 15:45:02 +00:00
Daniel Dunbar
1087599185
MultiTestRunner: Add module for lexing 'sh' commands.
...
llvm-svn: 77668
2009-07-31 07:59:05 +00:00
Daniel Dunbar
20a8d48e76
Add missing test suffixes.
...
llvm-svn: 77666
2009-07-31 05:57:11 +00:00
Daniel Dunbar
3667b99af3
MultiTestRunner: Simplify, cleanup, and rename!
...
- MultiTestRunner will eventually be renamed to 'lit', for LLVM integrated
tester/testing. This has the pros of being pronouncable and short.
- "Project" level configuration lives in 'lit.cfg', which is also what lit uses
to find the root testing directory in some cases. This can be overridden for
use in project files which want to precisely specify where things are.
- TestRunner.py is not longer able to be invoked directly.
- Moved some code to Util.py.
- Introduced a configuration object.
- Cleaned up --help, removed a few not-very-useful options.
- Tried not to break anything that works. :)
llvm-svn: 77665
2009-07-31 05:54:17 +00:00
Douglas Gregor
802a030d6e
Canonicalization and profiling for overloaded function declarations,
...
for those extra-esoteric cases. Not that any two given C++ compilers
agree on this test case, but this change gives us a strong definition
of equivalent types.
llvm-svn: 77664
2009-07-31 05:24:01 +00:00
Douglas Gregor
352169aed4
Canonicalize dependent extended vector types.
...
llvm-svn: 77663
2009-07-31 03:54:25 +00:00
Ryan Flynn
d963a49756
PR3679 - enable #pragma weak aliasing.
...
llvm-svn: 77660
2009-07-31 02:52:19 +00:00
John McCall
9bb74a5ef5
Rename Action::TagKind to Action::TagUseKind, which removes both a misnomer
...
and a name collision.
llvm-svn: 77658
2009-07-31 02:45:11 +00:00
John McCall
ef50e99783
sp.
...
llvm-svn: 77656
2009-07-31 02:20:35 +00:00
Mike Stump
e9c6ffc7d1
Whitespace around else canonicalization and fix 80-col violations.
...
llvm-svn: 77655
2009-07-31 02:02:20 +00:00
Eli Friedman
dfbd0c4b0d
Make the check for the linkage of a template handle the case of nested
...
linkage specifications correctly.
llvm-svn: 77653
2009-07-31 01:43:05 +00:00
Anders Carlsson
a076d14514
Add CK_DerivedToBase and use it PerformObjectMemberConversion.
...
llvm-svn: 77652
2009-07-31 01:23:52 +00:00
Mike Stump
5b78af9ed7
Fix build warnings.
...
llvm-svn: 77651
2009-07-31 01:10:29 +00:00
Anders Carlsson
a26159261c
Add a CastKind enum to CastExpr. Right now it's not used for much but it will be :)
...
llvm-svn: 77650
2009-07-31 00:48:10 +00:00
Ted Kremenek
df4b3dc3a4
Fix use-after-release bug introduced in r77585 where the PathDiagnosticClient
...
created by AnalysisConsumer would be released by an instance of AnalysisManager
and then reused by later instances of AnalysisManager. Ownership of the
PathDiagnosticClient now belongs (for now) in AnalysisConsumer.
We also need this layering (for now) because the HTMLDiagnostiClient requires
that the entire translation unit be processed before emitting diagnostics. This
is done in its destructor (which should also be fixed, but that is another
issue).
This fixes PR 4653.
llvm-svn: 77648
2009-07-31 00:34:52 +00:00
Douglas Gregor
f3f955279b
Build canonical types for dependently-sized array types.
...
llvm-svn: 77647
2009-07-31 00:23:35 +00:00
Ted Kremenek
bfe393fa0a
Add scan-build option '-no-failure-reports' to supress the creation of a 'failures' subdirectory that includes crash reports, preprocessed files, etc.
...
llvm-svn: 77644
2009-07-30 23:55:19 +00:00
Douglas Gregor
a21f6c3c71
Canonicalization of dependent C++0x decltype types.
...
llvm-svn: 77643
2009-07-30 23:36:40 +00:00
Fariborz Jahanian
6f14c73087
Synthesize the default constructor which has not
...
been declared as needed.
llvm-svn: 77641
2009-07-30 23:22:00 +00:00
Douglas Gregor
a5dd9f858f
Canonicalization for dependent typeof(expr) types.
...
llvm-svn: 77639
2009-07-30 23:18:24 +00:00
Owen Anderson
7ec07a573c
Update for LLVM API changes.
...
llvm-svn: 77638
2009-07-30 23:11:26 +00:00
Anders Carlsson
5c5f160c7f
Diagnose unused expression results for all statements, just not compound statements.
...
llvm-svn: 77631
2009-07-30 22:39:03 +00:00
Anders Carlsson
499de4252d
Add casts to avoid a bunch of unused expr warnings. (They aren't reported right now due to a bug that I intend to fix). Ted, please review.
...
llvm-svn: 77630
2009-07-30 22:37:41 +00:00
Mike Stump
658fe02d17
Canonicalize else spacing.
...
llvm-svn: 77629
2009-07-30 22:28:39 +00:00
Anders Carlsson
59a2ab9720
Factor code out into a DiagnoseUnusedExprResult function.
...
llvm-svn: 77628
2009-07-30 22:17:18 +00:00
Mike Stump
a523b2d7a0
Note some other limitations.
...
llvm-svn: 77626
2009-07-30 21:47:44 +00:00
Mike Stump
57724c2f7e
Update based upon comments. Explain why we have an assert.
...
llvm-svn: 77612
2009-07-30 18:01:44 +00:00
Mike Stump
44b8e90369
We'll also need a vtable pointer if we have virtual bases.
...
llvm-svn: 77610
2009-07-30 17:53:53 +00:00
Douglas Gregor
833834fcab
What luck! Clang obtains support for refering to members of the
...
current instantiation when that current instantiation is a class
template partial specialization.
llvm-svn: 77609
2009-07-30 17:50:56 +00:00
Fariborz Jahanian
aa01d2a532
Patch for future ir-gen for destructor calls.
...
llvm-svn: 77608
2009-07-30 17:49:11 +00:00
Ted Kremenek
118cef36b8
Lexically order files.
...
llvm-svn: 77607
2009-07-30 17:41:23 +00:00
Douglas Gregor
1530138fd0
Support out-of-line definitions of the members of class template
...
partial specializations.
llvm-svn: 77606
2009-07-30 17:40:51 +00:00
Douglas Gregor
4e5a974c00
Initialize an otherwise-wild pointer. Fixes a crashy analyzer
...
llvm-svn: 77599
2009-07-30 16:10:26 +00:00
Benjamin Kramer
2a94b3dcdb
fix cmake build
...
llvm-svn: 77589
2009-07-30 10:38:43 +00:00
Zhongxing Xu
4b5d6bc33a
simple fixes.
...
llvm-svn: 77587
2009-07-30 09:14:54 +00:00
Zhongxing Xu
4b03d4913a
Make AnalysisManager into its own source file and a pure data management class.
...
Move all components creation code into AnalysisConsumer::DigestAnalyzerOptions().
llvm-svn: 77585
2009-07-30 09:11:52 +00:00
Daniel Dunbar
7be573f05a
Update CMakeLists.txt
...
llvm-svn: 77577
2009-07-30 03:55:04 +00:00
Argyrios Kyrtzidis
fc2ed30ab8
Fix Selector <-> GlobalSelector conversion.
...
llvm-svn: 77575
2009-07-30 03:42:08 +00:00
Ryan Flynn
7d470f3466
PR3679 - handle #pragma weak
...
llvm-svn: 77573
2009-07-30 03:15:39 +00:00
Daniel Dunbar
874450c433
Add -fblocks.
...
llvm-svn: 77571
2009-07-30 02:43:05 +00:00
Daniel Dunbar
ba848438e3
MultiTestRunner: Stop printing XFAILs on every run, this doesn't really have any
...
value.
llvm-svn: 77566
2009-07-30 01:57:45 +00:00
Zhongxing Xu
14407bf25a
This patch collects all analysis context data into a new class
...
AnalysisContext.
llvm-svn: 77563
2009-07-30 01:17:21 +00:00
Eli Friedman
e8caa2a72f
Remove bogus "unsupported" case for vectors (which shouldn't
...
ever trigger). Add an "unsupported" case that triggers for C++ code.
It would be nice if someone would implement this properly... it
shouldn't be too hard, but I haven't looked closely at the relevant
code.
llvm-svn: 77562
2009-07-30 01:10:26 +00:00
Mike Stump
776d3401d2
Fix type to be consistent with the rest of the code.
...
llvm-svn: 77560
2009-07-30 01:02:10 +00:00
Mike Stump
3dc7eb9440
Add ability to layout the vtable pointer in trivial cases. I noticed
...
that we would silently do bad things with virtual bases in the layout
code, so, we just turn them off. When people do better things with
them, we can turn them back on.
llvm-svn: 77556
2009-07-30 00:22:38 +00:00
Eli Friedman
13ddd8514f
Fix gcc warning.
...
llvm-svn: 77555
2009-07-30 00:11:31 +00:00
Fariborz Jahanian
d375454dcf
ir-gen for nested non-virtual base member access
...
in current class.
llvm-svn: 77554
2009-07-30 00:10:25 +00:00
Eli Friedman
b0e2986baf
Add support for -Wno-long-long.
...
llvm-svn: 77552
2009-07-30 00:04:39 +00:00
Argyrios Kyrtzidis
bd92767014
Add support for ObjC message expressions, in the Analyzer:
...
-Accept an ObjC method and find all message expressions that this method may respond to.
-Accept an ObjC message expression and find all methods that may respond to it.
llvm-svn: 77551
2009-07-30 00:03:55 +00:00
Argyrios Kyrtzidis
ce60c5ea60
Update CMake.
...
llvm-svn: 77548
2009-07-30 00:02:19 +00:00
Argyrios Kyrtzidis
2eff90515f
Support ObjC methods as Entities.
...
llvm-svn: 77547
2009-07-29 23:41:46 +00:00
Douglas Gregor
82c80a59ee
There's no point in going through the getAs<TagType> stuff to find the definition of a tag, since tags rarely have more than one or two declarations
...
llvm-svn: 77546
2009-07-29 23:41:44 +00:00
Argyrios Kyrtzidis
97fb3e5323
Use a STL helper template 'pair_value_iterator', by both DeclReferenceMap and SelectorMap.
...
llvm-svn: 77545
2009-07-29 23:41:33 +00:00
Argyrios Kyrtzidis
2e592966f8
Add ObjCMethodDecl::isThisDeclarationADefinition().
...
llvm-svn: 77544
2009-07-29 23:41:26 +00:00
Argyrios Kyrtzidis
d70a92139f
Index the selectors and provide the translation units that contain them
...
through the IndexProvider.
llvm-svn: 77543
2009-07-29 23:41:18 +00:00
Argyrios Kyrtzidis
f7f56741e0
Add TranslationUnit::getSelectorMap().
...
llvm-svn: 77542
2009-07-29 23:41:08 +00:00
Argyrios Kyrtzidis
b8470e4f75
Introduce SelectorMap whose purpose is to map selectors to objc methods and message exprs,
...
inside a particular ASTContext.
llvm-svn: 77541
2009-07-29 23:40:58 +00:00
Argyrios Kyrtzidis
34be01b9f4
Find references inside blocks.
...
llvm-svn: 77540
2009-07-29 23:40:48 +00:00
Argyrios Kyrtzidis
c3deb79049
Use helper class ASTVisitor to fully traverse an AST.
...
llvm-svn: 77539
2009-07-29 23:40:39 +00:00
Argyrios Kyrtzidis
d219a9a763
Introduce the GlobalSelector class in the Indexing library.
...
GlobalSelector is an ASTContext-independent way to refer to Objective C selectors.
llvm-svn: 77538
2009-07-29 23:40:32 +00:00
Argyrios Kyrtzidis
ca8a0e24cb
Use an IdentifierTable for names used for Entities.
...
llvm-svn: 77537
2009-07-29 23:40:21 +00:00
Argyrios Kyrtzidis
91d3df0b53
-Introduce the idx::Analyzer class used for getting indexing information, like finding
...
references of a declaration across translation units.
-Modify the index-test tool to use it.
llvm-svn: 77536
2009-07-29 23:40:14 +00:00
Argyrios Kyrtzidis
a82e8848ee
Introduce TULocation and TULocationHandler classes.
...
TULocation is like ASTLocation but also contains the TranslationUnit* that
the ASTLocation originated from.
llvm-svn: 77535
2009-07-29 23:40:02 +00:00
Argyrios Kyrtzidis
af79296645
Modify the Indexer class so that it can return the TranslationUnit that internal
...
decls originated from.
llvm-svn: 77534
2009-07-29 23:39:52 +00:00
Argyrios Kyrtzidis
4560276cf5
Add Entity::getInternalDecl() to be used only on Entities that refer to internal
...
(in translation unit) declarations.
llvm-svn: 77533
2009-07-29 23:39:42 +00:00
Argyrios Kyrtzidis
bc6c64de44
Constify ASTLocation::print.
...
llvm-svn: 77532
2009-07-29 23:39:35 +00:00
Argyrios Kyrtzidis
f11952052c
Fix some comments.
...
llvm-svn: 77531
2009-07-29 23:39:25 +00:00
Argyrios Kyrtzidis
82150b38d2
Add getDeclReferenceMap() to the abstract interface of TranslationUnit class.
...
llvm-svn: 77530
2009-07-29 23:39:18 +00:00
Argyrios Kyrtzidis
ca9efa0271
Remove the TranslationUnit usage from clang-wpa.cpp since it's not really
...
necessary.
llvm-svn: 77529
2009-07-29 23:39:09 +00:00
Argyrios Kyrtzidis
f1a0fd852f
Introduce a helper template for the Handler classes and use it instead
...
of the iterator of the Indexer class.
llvm-svn: 77528
2009-07-29 23:39:03 +00:00
Argyrios Kyrtzidis
d3e037ff89
Add an assert.
...
llvm-svn: 77527
2009-07-29 23:38:51 +00:00
Argyrios Kyrtzidis
14df96c730
Accept Handler objects in parameters as references.
...
Reinforces that they shouldn't be null and it's a bit more natural when
they are passed as stack objects.
llvm-svn: 77526
2009-07-29 23:38:45 +00:00
Argyrios Kyrtzidis
9ddd99ade7
Rename EntityHandler::HandleEntity to Handle.
...
llvm-svn: 77525
2009-07-29 23:38:35 +00:00
Argyrios Kyrtzidis
dd9ee4aa04
-Make IndexProvider an abstract interface for getting indexing information.
...
-Introduce Indexer as an IndexProvider implementation.
llvm-svn: 77524
2009-07-29 23:38:21 +00:00
Douglas Gregor
b6b8f9e291
Make tag declarations redeclarable. This change has three purposes:
...
1) Allow the Index library (and any other interested client) to walk
the set of declarations for a given tag (enum, union, class,
whatever). At the moment, this information is not readily available.
2) Reduce our dependence on TagDecl::TypeForDecl being mapped down
to a TagType (for which getDecl() will return the tag definition, if
one exists). This property won't exist for class template partial
specializations.
3) Make the canonical declaration of a TagDecl actually canonical,
e.g., so that it does not change when the tag is defined.
llvm-svn: 77523
2009-07-29 23:36:44 +00:00
Douglas Gregor
716dabbb1b
Eliminate an unused-variable warning
...
llvm-svn: 77518
2009-07-29 22:40:58 +00:00
Owen Anderson
9793f0e4d7
Update for LLVM API change.
...
llvm-svn: 77514
2009-07-29 22:16:19 +00:00
Ted Kremenek
c23c7e6a51
Change uses of:
...
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsRecordType() -> Type::getAs<RecordType>()
Type::getAsPointerType() -> Type::getAs<PointerType>()
Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>()
Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>()
Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>()
Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>()
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsTagType() -> Type::getAs<TagType>()
And remove Type::getAsReferenceType(), etc.
This change is similar to one I made a couple weeks ago, but that was partly
reverted pending some additional design discussion. With Doug's pending smart
pointer changes for Types, it seemed natural to take this approach.
llvm-svn: 77510
2009-07-29 21:53:49 +00:00
Ted Kremenek
4301526e8d
Remove 'StoreManager::OldCastRegion()', TypedViewRegion (which only
...
OldCastRegion used), and the associated command line option
'-analyzer-store=old-basic-cast'.
llvm-svn: 77509
2009-07-29 21:43:22 +00:00
Fariborz Jahanian
e82da999e9
Fixed test.
...
llvm-svn: 77506
2009-07-29 21:26:28 +00:00
Fariborz Jahanian
4b12ed115a
Some refactoring of member access for
...
performace sake. Also added a test case.
llvm-svn: 77502
2009-07-29 20:41:46 +00:00
Eli Friedman
8e1433b370
Refactor base/member initializers, and construct them correctly in cases
...
with dependent types. Fixes PR4621 and PR4627.
llvm-svn: 77498
2009-07-29 19:44:27 +00:00
Fariborz Jahanian
3f15083f73
Check accessibility when converting object to the base
...
class.
llvm-svn: 77497
2009-07-29 19:40:11 +00:00
Owen Anderson
ade90fd1ba
Update for LLVM API change.
...
llvm-svn: 77492
2009-07-29 18:54:39 +00:00
Fariborz Jahanian
7be1ad814b
No longer need to keep base class offsets in the offset
...
table as it has its own place now.
llvm-svn: 77491
2009-07-29 18:50:06 +00:00
Fariborz Jahanian
bb67b827d9
Patch to provide cast of objects in member access
...
excpression, if needed, and remove some ir-gen code
now unnencessary.
llvm-svn: 77490
2009-07-29 18:40:24 +00:00
Douglas Gregor
aa87ebc0c1
[llvm up]
...
A template name can refer to a set of overloaded function
templates. Model this in TemplateName, which can now refer to an
OverloadedFunctionDecl that contains function templates. This removes
an unspeakable hack in Sema::isTemplateName.
llvm-svn: 77488
2009-07-29 18:26:50 +00:00
Ted Kremenek
3c6764cd3e
Add an XFAILed test case that currently crashes for RegionStore. This case will
...
be moved to misc-ps.m when it passes.
llvm-svn: 77486
2009-07-29 18:19:16 +00:00
Ted Kremenek
70b943f206
Add another analyzer test case involving an OSAtomic function.
...
llvm-svn: 77485
2009-07-29 18:18:25 +00:00
Ted Kremenek
87a7a451ad
Remove some uses of TypedViewRegion, and use getBaseRegion() in a context where
...
we don't care about ElementRegions layered on top of a base region.
llvm-svn: 77484
2009-07-29 18:17:40 +00:00
Ted Kremenek
bca70671e7
Make StoreManager::InvalidateRegion() virtual, move the current implementation
...
in StoreManager to RegionStoreManager, and create a special, highly reduced
version in BasicStoreManager.
These changes are in preparation for future RegionStore-specific changes to
InvalidateRegion.
llvm-svn: 77483
2009-07-29 18:16:25 +00:00
Ted Kremenek
ccf3335939
Add 'MemRegion::getBaseRegion()', a utility method to strip ElementRegions with
...
index 0. This will be used for refinements to InvalidateRegion and CastRegion.
llvm-svn: 77481
2009-07-29 18:14:27 +00:00
Ted Kremenek
bb902265af
canSymbolicate() should only return true for integer types that are scalars.
...
llvm-svn: 77479
2009-07-29 18:12:48 +00:00
Sebastian Redl
63c4da01c8
Check for identical types in C++ catch expression. Patch by Erik Verbruggen.
...
llvm-svn: 77475
2009-07-29 17:15:45 +00:00
Daniel Dunbar
a5b3351809
Don't use a formatted ostream when writing .ll either.
...
llvm-svn: 77474
2009-07-29 17:12:55 +00:00
Daniel Dunbar
d8c3178cee
Don't use a formatted ostream when writing .bc files. I don't really understand
...
this interface design, Chris please check.
llvm-svn: 77473
2009-07-29 17:10:26 +00:00
Douglas Gregor
b142c2d0a8
When lookup of an identifier preceding a '<' finds a set of overloaded
...
functions, only return those overloaded functions that are actually
function templates. Note that there is still a glaring problem with
treating an OverloadedFunctionDecl as a TemplateName.
llvm-svn: 77472
2009-07-29 16:56:42 +00:00
Daniel Dunbar
0a1fa85894
scan-build: Don't try to index plist-html output directories
...
llvm-svn: 77465
2009-07-29 16:21:23 +00:00
Douglas Gregor
ab60c7f60b
Remove an obsolete kludge based on the previous, completely broken handling of function templates
...
llvm-svn: 77464
2009-07-29 16:15:53 +00:00
Douglas Gregor
b55d8e914a
Test redefinition of class template partial specializations
...
llvm-svn: 77463
2009-07-29 16:13:25 +00:00
Douglas Gregor
0004417e81
Use the new statement/expression profiling code to unique dependent
...
template arguments, as in template specialization types. This permits
matching out-of-line definitions of members for class templates that
involve non-type template parameters.
llvm-svn: 77462
2009-07-29 16:09:57 +00:00
Fariborz Jahanian
72b1f24bd2
Use the existing API for base offset. Use suitable llvm type
...
for offset ir-gen.
llvm-svn: 77458
2009-07-29 15:54:56 +00:00
Douglas Gregor
436081940c
Make the Python TestRunner work for individual tests
...
llvm-svn: 77456
2009-07-29 15:32:08 +00:00
Steve Naroff
53fcbb89f9
Remove an ObjC-specific XFAIL (and tweak test).
...
llvm-svn: 77454
2009-07-29 15:24:47 +00:00
Steve Naroff
85d9715c24
Fix <rdar://problem/7100524> regression: "error: incompatible operand types ('void *' and 'NSString *')".
...
Remove XFAIL from 'conditional-expr-4.m' test case (which would have caught this).
Also tweaked several aspects of the test to jive with the current type checking.
llvm-svn: 77453
2009-07-29 15:09:39 +00:00
Steve Naroff
d390fd99d9
Incorporate feedback from Chris (on r76979).
...
llvm-svn: 77452
2009-07-29 14:06:03 +00:00
Sebastian Redl
955a067bdd
Make functional-style casts emit correct messages, and fix a crash-on-invalid.
...
llvm-svn: 77451
2009-07-29 13:50:23 +00:00
Zhongxing Xu
c2394f0ad9
add a fixme
...
llvm-svn: 77447
2009-07-29 08:13:37 +00:00
Zhongxing Xu
52bd6e8fee
delete an undefined method.
...
llvm-svn: 77446
2009-07-29 08:00:02 +00:00
Daniel Dunbar
1cb8d81b41
MultiTestRunner: Reenable --vg option.
...
- Simplified from before and using --error-exitcode so failures show up as
failures.
llvm-svn: 77424
2009-07-29 02:57:25 +00:00
Daniel Dunbar
13796e3b95
Destroy the ASTConsumer prior to the Context, HTMLPrinter for example wants to
...
do a significant amount of work in its destructor, which may access the
context. (PR4642).
llvm-svn: 77423
2009-07-29 02:40:09 +00:00
Daniel Dunbar
b9a68612e2
BlockScopeInfo::hasPrototype was uninitialized.
...
llvm-svn: 77421
2009-07-29 01:59:17 +00:00
Daniel Dunbar
a444cc2fa8
CharLiteralParser::IsMultiChar was sometimes uninitialized.
...
llvm-svn: 77420
2009-07-29 01:46:05 +00:00
Daniel Dunbar
841f14b609
Add missing '"'
...
llvm-svn: 77416
2009-07-29 01:10:25 +00:00
Fariborz Jahanian
82e2874270
Code refactoring to define getCXXRecordDeclForPointerType
...
and use it in several places.
llvm-svn: 77411
2009-07-29 00:44:13 +00:00
Mike Stump
d97c26921a
Be sure to turn on -fblocks.
...
llvm-svn: 77406
2009-07-29 00:17:20 +00:00
Mike Stump
93246cc475
Some minor cleanups, thanks Chris.
...
llvm-svn: 77402
2009-07-28 23:57:15 +00:00
Mike Stump
2adb4dab54
Some style fixes, thanks Chris.
...
llvm-svn: 77400
2009-07-28 23:47:15 +00:00
Mike Stump
bce7a27d22
Add support for -Wmissing-noreturn.
...
llvm-svn: 77391
2009-07-28 23:11:12 +00:00
Douglas Gregor
a8e02e7863
Refactor the code that produces a TemplateSpecializationType, so that
...
canonicalization for dependent TemplateSpecializationTypes occurs
within ASTContext::getTemplateSpecializationType. Also, move template
argument canonicalization into ASTContext::getCanonicalTemplateArgument.
llvm-svn: 77388
2009-07-28 23:00:59 +00:00
Chris Lattner
a58b3af802
remove extraneous braces
...
llvm-svn: 77386
2009-07-28 22:49:34 +00:00
Mike Stump
3bf1ab48d3
Add noreturn support for blocks.
...
llvm-svn: 77377
2009-07-28 22:04:01 +00:00
Fariborz Jahanian
f17071580f
ir-gen derived-to-base conversion in implicit casts.
...
llvm-svn: 77374
2009-07-28 22:00:58 +00:00
Owen Anderson
3cc120a51e
Update for LLVM API change.
...
llvm-svn: 77368
2009-07-28 21:22:35 +00:00
Anders Carlsson
019f414261
Remove the old RecordOrganizer.
...
llvm-svn: 77365
2009-07-28 21:03:34 +00:00
Ted Kremenek
a41d9dd1f1
Fix PR 4631. The compound initializers of unions were not being evaluated, which
...
could cause false positives if any the subexpressions had side-effects. These
initializers weren't evaluated because the StoreManager would need to handle
them, but that's an orthogonal problem of whether or not the StoreManager can
handle the binding.
llvm-svn: 77361
2009-07-28 20:46:55 +00:00
Ted Kremenek
2d2ee236cf
Add missing break statement.
...
llvm-svn: 77356
2009-07-28 19:34:30 +00:00
Mike Stump
9b706bcd98
Update comments.
...
llvm-svn: 77355
2009-07-28 19:31:47 +00:00
Ted Kremenek
faf0c64d9d
Fix regression in attribute 'nonnull' checking when a transition node
...
was created but not added to the destination NodeSet. This fixes PR 4630.
llvm-svn: 77353
2009-07-28 19:24:31 +00:00
Anders Carlsson
fc8cfa8b9f
Add a field for C++ specific data to ASTRecordLayout. Use it to store the non-virtual size and alignment + base offsets.
...
llvm-svn: 77352
2009-07-28 19:24:15 +00:00
Fariborz Jahanian
a399dfae19
More cleanup of data member access and then some.
...
llvm-svn: 77351
2009-07-28 18:54:57 +00:00
Owen Anderson
47034e1733
Update for LLVM API change.
...
llvm-svn: 77349
2009-07-28 18:33:04 +00:00
Chris Lattner
2706a55071
fix PR4633: cast to void should silence the 'unused expression' warning.
...
llvm-svn: 77344
2009-07-28 18:25:28 +00:00
Chris Lattner
1d0f16f22a
add some fixme's
...
llvm-svn: 77343
2009-07-28 18:25:06 +00:00
Chris Lattner
d829eb65ff
this test crashes, disable it harder.
...
llvm-svn: 77342
2009-07-28 18:22:50 +00:00
Fariborz Jahanian
b77659f4ae
Some code cleanup.
...
llvm-svn: 77339
2009-07-28 18:09:28 +00:00
Anders Carlsson
d5d6413aa5
More CGRecordLayoutBuilder cleanup.
...
llvm-svn: 77335
2009-07-28 17:56:36 +00:00
Fariborz Jahanian
5142fbd02e
More work toward data member access ir-gen.
...
llvm-svn: 77332
2009-07-28 17:38:28 +00:00
Anders Carlsson
32d105d8d4
Add two more tests.
...
llvm-svn: 77330
2009-07-28 17:14:18 +00:00
Douglas Gregor
8ce432e9eb
Add a template test that requires canonical expression comparison
...
llvm-svn: 77325
2009-07-28 16:39:54 +00:00
Douglas Gregor
32615a13f4
Fix a typo in a comment
...
llvm-svn: 77324
2009-07-28 16:39:25 +00:00
Douglas Gregor
d9aedfaa5a
Profiling the pointer of a canonical type is sufficient to uniquely identify the type
...
llvm-svn: 77321
2009-07-28 15:32:17 +00:00
Douglas Gregor
4488259d40
Finish profile support for statements.
...
llvm-svn: 77320
2009-07-28 15:27:13 +00:00
Douglas Gregor
a709509f96
Complete profile support for C++ and Objective-C expressions
...
llvm-svn: 77318
2009-07-28 14:44:31 +00:00
John McCall
8945266f3d
Bounds checking for address spaces.
...
llvm-svn: 77303
2009-07-28 06:52:18 +00:00
Daniel Dunbar
ec5ae3d75a
CallExpr's SubExprs sometimes were allocated in the wrong place.
...
llvm-svn: 77302
2009-07-28 06:29:46 +00:00
John McCall
7be52a8179
Reimplement QualifierSet using a single word, as requested by dgregor.
...
llvm-svn: 77299
2009-07-28 05:41:20 +00:00
Argyrios Kyrtzidis
f390c43c3c
Implement ObjCMethodDecl::getCanonicalDecl().
...
llvm-svn: 77298
2009-07-28 05:11:17 +00:00
Argyrios Kyrtzidis
a56fa19ac6
-Add ObjCCategoryImplDecl::getCategoryClass() which returns the category interface decl.
...
-Correct ObjCMethodDecl::getNextRedeclaration(); A method in a ObjCCategoryImplDecl should point to
a method in the associated ObjCCategoryDecl, not the ObjCInterfaceDecl.
llvm-svn: 77297
2009-07-28 05:11:05 +00:00
Argyrios Kyrtzidis
2cee40daa7
Use ObjCImplDecl in place of ObjCCategoryImplDecl/ObjCImplementationDecl.
...
llvm-svn: 77296
2009-07-28 05:10:52 +00:00
Mike Stump
a4de80b8b1
Make longjmp a real builtin.
...
llvm-svn: 77291
2009-07-28 02:25:19 +00:00
John McCall
caa1945306
Allow functions to be marked "implicit return zero" and so mark main().
...
Codegen by initializing the return value with its LLVM type's null value.
llvm-svn: 77288
2009-07-28 01:00:58 +00:00
Douglas Gregor
5c193b9e18
Add a Profile function for statements so that we can (eventually) determine
...
when statements and expressions are equivalent.
llvm-svn: 77284
2009-07-28 00:33:38 +00:00
Ted Kremenek
0799d4f0bb
Only generate preprocessed files during crashes using Clang, not GCC.
...
llvm-svn: 77281
2009-07-28 00:14:21 +00:00
Ted Kremenek
4c9f161fd5
Fix helper function GetNextStmt() to look for the first statement that has a
...
valid SourceLocation.
llvm-svn: 77280
2009-07-28 00:07:15 +00:00
Mike Stump
82a9e445b7
Make sure to move the comment with the code.
...
llvm-svn: 77279
2009-07-28 00:07:08 +00:00
Fariborz Jahanian
e309b48a22
Patch for objc's zero-const exception to not assume
...
that @catch(...) cathces all exceptions (c++ objects
are not cought by that).
llvm-svn: 77270
2009-07-27 23:12:41 +00:00
Owen Anderson
0e0189d64d
Update for LLVM API change.
...
llvm-svn: 77267
2009-07-27 22:29:56 +00:00
Mike Stump
31d9254f7a
Ensure we can work through typedefs.
...
llvm-svn: 77265
2009-07-27 22:25:19 +00:00
Ted Kremenek
04ade6f1cb
(1) Enable PlistDiagnostics to take an option "PathDiagnosticClientFactory"
...
object that it can use to forward PathDiagnostics for further processing. Along
with this feature, the PlistDiagnostics object logs which files are created by
the forwarding of the PathDiagnostics.
(2) Create a new PathDiagnosticClientFactory object for HTMLDiagnostics,
allowing other PathDiagnosticClients to forward PathDiagnostics through an
opaque interface.
(3) Create a "plist-html" diagnostics option in AnalysisConsumer to allow the
logging of HTML files created in a hybrid Plist+HTML diagnostic client.
llvm-svn: 77264
2009-07-27 22:13:39 +00:00
Ted Kremenek
5cc54863ce
Add scan-build support for 'plist-html', a hybrid mode that supports the
...
creation of both HTML and plist files. Plist files are currently not generated
using the same layout algorithm as just specifying '-plist', so this is mainly
intended to help support automated runs of the analyzer.
llvm-svn: 77263
2009-07-27 22:10:34 +00:00
Mike Stump
9e3b01f697
Add knowledge about _longjmp being noreturn.
...
llvm-svn: 77254
2009-07-27 21:45:16 +00:00
Mike Stump
9a9e0c2b17
Add builtin knowledge about longjmp being noreturn. Add printing for
...
the noreturn attribute.
llvm-svn: 77253
2009-07-27 21:33:40 +00:00
Owen Anderson
e05f2ed478
Update for LLVM API change.
...
llvm-svn: 77249
2009-07-27 21:00:51 +00:00
Fariborz Jahanian
7b2b1ec6b1
Some minor changes toward support of data
...
member access in the presense of non-virtual bases.
llvm-svn: 77246
2009-07-27 20:57:45 +00:00
Benjamin Kramer
8675976806
fix test (broken in r77224)
...
llvm-svn: 77241
2009-07-27 19:53:49 +00:00
Mike Stump
ca6c875e47
Add noreturn for exit.
...
llvm-svn: 77237
2009-07-27 19:14:18 +00:00
Argyrios Kyrtzidis
067c407c48
Make ObjCImplDecl inherit from ObjCContainerDecl.
...
ObjCContainerDecl now is the root class for objc decls that contain methods.
llvm-svn: 77235
2009-07-27 19:04:32 +00:00
Daniel Dunbar
b8aa9589bb
Tweak MultiTestRunner --path argument.
...
- Accept multiple values instead of embedding separator.
- Make sure this gets used when searching for 'clang' binary.
- Switch makefiles to using --path to stay in sync with cmake.
llvm-svn: 77234
2009-07-27 19:01:13 +00:00
Devang Patel
6a3b3fe98a
Use DICompositeType->replaceAllUsesWith()
...
llvm-svn: 77228
2009-07-27 18:42:03 +00:00
Douglas Gregor
4d37791bc3
Fix typo in error message
...
llvm-svn: 77224
2009-07-27 18:33:18 +00:00
Douglas Gregor
ed873d6767
Prepare CMake regression testing for Daniel's upcoming fix to the test runner
...
llvm-svn: 77223
2009-07-27 18:31:49 +00:00
Douglas Gregor
d612997e73
When instantiating a variable without an initializer, call
...
ActOnUninitializedDecl.
llvm-svn: 77211
2009-07-27 17:43:39 +00:00
Anders Carlsson
cabdeb4932
Use the CGRecordLayoutBuilder even if there are no fields, because in C++ an empty class will have a padding byte.
...
llvm-svn: 77205
2009-07-27 17:10:54 +00:00
Anders Carlsson
72fb384a65
Enable the new struct type builder now that the constant struct builder works. (The old code will still be there until we know that everything works well.
...
llvm-svn: 77190
2009-07-27 15:31:55 +00:00
Anders Carlsson
b97a3ec4e7
Fix a tail padding bug in the record layout builder code. The bug was found by an existing test.
...
llvm-svn: 77189
2009-07-27 14:55:54 +00:00
Anders Carlsson
b7130ed888
Enable the new constant struct builder by default. The old code is still in place but will be removed shortly. The new struct builder works on big endian systems.
...
llvm-svn: 77185
2009-07-27 05:54:15 +00:00
Chris Lattner
4ead0b9e1c
add bugzilla #
...
llvm-svn: 77183
2009-07-27 04:49:58 +00:00
Anders Carlsson
bff6b49cd0
More work on the constant struct builder, fix a couple of thinkos and add support for inserting part of a bitfield in the previous byte.
...
llvm-svn: 77180
2009-07-27 02:56:37 +00:00
Anders Carlsson
ba4c6d1c91
More work on bitfield support in the new constant struct builder.
...
llvm-svn: 77177
2009-07-27 01:23:51 +00:00
Mike Stump
21e0f895a1
Fix PR4624.
...
llvm-svn: 77176
2009-07-27 00:44:23 +00:00
Nuno Lopes
bd2cd92907
fix segfault (because of erasing after the vector boundaries) when the cached token position is at the end
...
llvm-svn: 77159
2009-07-26 16:36:45 +00:00
Nuno Lopes
0b797b1c9d
add gentoo 2009.0 g++ header locations
...
llvm-svn: 77158
2009-07-26 16:14:05 +00:00
Daniel Dunbar
e59313a298
Switch to getName()
...
llvm-svn: 77151
2009-07-26 09:28:40 +00:00
Daniel Dunbar
600dfac30a
Switch to using llvm::Value::getName()
...
llvm-svn: 77147
2009-07-26 08:32:30 +00:00
Daniel Dunbar
4f7dfaf650
Update for API change.
...
llvm-svn: 77112
2009-07-26 02:21:04 +00:00
Daniel Dunbar
6a82e424d0
Lookup targets by Triple instead of Module.
...
llvm-svn: 77108
2009-07-26 01:27:26 +00:00
Mike Stump
ea086c7263
Preserve qualifiers.
...
llvm-svn: 77097
2009-07-25 23:24:03 +00:00
Ryan Flynn
e5dc8594ea
PR3575 - warn on declared variable or function attributes after a definition, which are currently ignored.
...
llvm-svn: 77095
2009-07-25 22:29:44 +00:00
Argyrios Kyrtzidis
39c348d915
Refactor ObjCImplDecl::getInstanceMethod/getClassMethod into one
...
ObjCImplDecl::getMethod.
llvm-svn: 77094
2009-07-25 22:16:03 +00:00
Argyrios Kyrtzidis
553376be19
Refactor ObjCInterfaceDecl::lookupInstanceMethod/lookupClassMethod into one
...
ObjCInterfaceDecl::lookupMethod.
llvm-svn: 77093
2009-07-25 22:15:51 +00:00
Argyrios Kyrtzidis
e6ed65bee0
Refactor ObjCProtocolDecl::lookupInstanceMethod/lookupClassMethod into one
...
ObjCProtocolDecl::lookupMethod.
llvm-svn: 77092
2009-07-25 22:15:38 +00:00
Argyrios Kyrtzidis
6de0560b97
Refactor ObjCContainerDecl::getInstanceMethod/getClassMethod into one
...
ObjCContainerDecl::getMethod.
Avoids code duplication.
llvm-svn: 77091
2009-07-25 22:15:22 +00:00
Mike Stump
81db910eb9
Improve comments (Thanks Fariborz).
...
llvm-svn: 77090
2009-07-25 22:12:02 +00:00
Mike Stump
8c5d7996e8
Add noreturn as a type attribute, handle printing for them and handle
...
calls to noreturn function pointers when CFG building.
llvm-svn: 77089
2009-07-25 21:26:53 +00:00
Fariborz Jahanian
dedf1e4b1a
ir-gen for non-virtual base class initialization
...
in constructors.
llvm-svn: 77087
2009-07-25 21:12:28 +00:00
Sebastian Redl
9f831dbbcd
Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conversions, like vectors, but allows conversions via constructors and conversion operators.
...
Add custom conversions to static_cast.
llvm-svn: 77076
2009-07-25 15:41:38 +00:00
Daniel Dunbar
605bd11311
MultiTestRunner: Make sure to point at src dir, for out of tree builds.
...
Factor out routine for executing the script commands.
llvm-svn: 77075
2009-07-25 15:26:08 +00:00