Douglas Gregor
8b9575f27e
Top-level semicolons are allowed in C++0x. Fixes PR4755.
...
llvm-svn: 79912
2009-08-24 12:17:54 +00:00
Douglas Gregor
c8c277a1b3
Make sure to adjust function template declarations to their templated
...
declarations (e.g., FunctionTemplateDecl -> CXXConstructorDecl) before
performing semantic analysis on the declarations. Fixes PR4761.
llvm-svn: 79911
2009-08-24 11:57:43 +00:00
Daniel Dunbar
576d90d39b
Remove TargetInfo::getTargetPrefix().
...
llvm-svn: 79907
2009-08-24 09:54:37 +00:00
Daniel Dunbar
8100d01ecf
Switch to StringRef based BitstreamWriter APIs, where appropriate.
...
- There is lots of non-endian safe code in here... :/
llvm-svn: 79905
2009-08-24 09:31:37 +00:00
Daniel Dunbar
516bb9dd76
Remove arch normalization from Driver, this should be unnecessary now that
...
things have moved to llvm::Triple.
llvm-svn: 79902
2009-08-24 09:16:49 +00:00
Daniel Dunbar
40165180f7
Switch TargetInfo to store an llvm::Triple.
...
- Primarily to discourage clients form making decisions based on the string.
llvm-svn: 79901
2009-08-24 09:10:05 +00:00
Daniel Dunbar
e3532f82a7
Switch ABI selection to use llvm::Triple instead of string munging.
...
llvm-svn: 79900
2009-08-24 08:52:16 +00:00
Chris Lattner
dca19591f2
fix a GCC type punning warning.
...
llvm-svn: 79895
2009-08-24 05:19:01 +00:00
Chris Lattner
72bb4f602c
prune #includes.
...
llvm-svn: 79889
2009-08-24 04:11:30 +00:00
Chris Lattner
3441b4f77e
API changes to match llvm ToT.
...
llvm-svn: 79868
2009-08-23 22:45:33 +00:00
Daniel Dunbar
ccc60da5c7
Reenable clang using clang-cc for C++ and all archs by default.
...
llvm-svn: 79861
2009-08-23 19:41:53 +00:00
Daniel Dunbar
87db734400
Fix a few tests to be -Asserts agnostic.
...
- Ugh.
llvm-svn: 79860
2009-08-23 19:28:59 +00:00
Daniel Dunbar
b5bcd6b94a
Temporarily switch clang back to not using clang-cc by default for C++, and only
...
using clang-cc on i386 and x86_64.
llvm-svn: 79859
2009-08-23 18:42:54 +00:00
Benjamin Kramer
89b422c118
Replace cerr with errs().
...
llvm-svn: 79854
2009-08-23 12:08:50 +00:00
Daniel Dunbar
730a54bf28
cerr -> errs.
...
llvm-svn: 79844
2009-08-23 08:52:09 +00:00
Daniel Dunbar
0ad0c21248
Tests for C++ lex.trigraph, patch by Mats!
...
llvm-svn: 79841
2009-08-23 08:22:33 +00:00
Chris Lattner
817b3012bc
use errs() instead of cerr.
...
llvm-svn: 79829
2009-08-23 05:57:09 +00:00
Douglas Gregor
33870d908f
CMake: Improve installation of Clang
...
- Install clang-cc into libexec
- Install headers into lib/clang/<version>/include
- Don't install other clang-based tools (clang-wpa, clang-index, etc.)
llvm-svn: 79827
2009-08-23 05:28:29 +00:00
Douglas Gregor
76d8c5725f
Don't install Clang libraries.
...
llvm-svn: 79824
2009-08-23 05:02:18 +00:00
Chris Lattner
84cffc22d4
adjust for raw_fd_ostream api change.
...
llvm-svn: 79809
2009-08-23 02:59:41 +00:00
Anders Carlsson
622ddae92b
Whoops, comment this out for now. I'll fix it shortly.
...
llvm-svn: 79806
2009-08-23 01:28:08 +00:00
Anders Carlsson
d606de72ab
More work towards zero-initializing structs that contain member pointers in constant expressions.
...
llvm-svn: 79805
2009-08-23 01:25:01 +00:00
Anders Carlsson
beac2bef4d
Remove the PaddingFields member from CGRecordLayout, it wasn't used anyway.
...
llvm-svn: 79799
2009-08-23 01:01:04 +00:00
Eli Friedman
16c209610c
Catch a few more cases of illegal comparisons.
...
llvm-svn: 79793
2009-08-23 00:27:47 +00:00
Chris Lattner
d99bd52c73
Eli points out that we really must diagnose "void* > 0" as an extension.
...
Explicitly add it as an EXTENSION instead of an EXTWARN so that it only
comes out with -pedantic. Thanks Eli!
llvm-svn: 79791
2009-08-23 00:03:44 +00:00
Anders Carlsson
faeccc622f
Handle CK_NullToMemberPointer casts in the constant expr emitter.
...
llvm-svn: 79790
2009-08-23 00:02:11 +00:00
Anders Carlsson
3b0c5dcdd2
Change the constant expression emitter to look at the cast kind for to-union casts.
...
llvm-svn: 79789
2009-08-22 23:54:44 +00:00
Anders Carlsson
d7923c6ed7
Add CK_NullToMemberPointer and CK_BaseToDerivedMemberPointer cast kinds. Make -ast-dump print out the cast kinds of cast expressions.
...
llvm-svn: 79787
2009-08-22 23:33:40 +00:00
Anders Carlsson
9cedbefb24
Add a -fno-elide-constructors option to clang-cc.
...
llvm-svn: 79782
2009-08-22 22:30:33 +00:00
Fariborz Jahanian
a83c016d22
Type of a ?: expression whose either expression is a built-in 'id'
...
type is 'id' type.
llvm-svn: 79781
2009-08-22 22:27:17 +00:00
Fariborz Jahanian
cbf10f5de5
Don't issue warning on multiple selector found when
...
selector name is for a @selector expression.
llvm-svn: 79776
2009-08-22 21:13:55 +00:00
Fariborz Jahanian
780db208e0
Removed couple of FIXME comments.
...
llvm-svn: 79757
2009-08-22 20:32:44 +00:00
Fariborz Jahanian
1b5d6133f9
Removed -Wundeclared-selector and -Wreadonly-setter-attrs from
...
-Wmost group (too noisy). Placed warning on parameter type
misatch between methods in sub and super class under
-Wsuper-class-method-mismatch (also too noisy).
llvm-svn: 79745
2009-08-22 19:24:56 +00:00
Chris Lattner
f8344dbfdd
tweak some pointer sema checking stuff (which was added to implement PR4175) to
...
avoid emitting a warning on "someptr > 0". This is obviously questionable (they
could use != instead) but is reasonable, and the warning "ordered comparison
between pointer and integer" didn't make a ton of sense because 0 is a valid
null pointer constant.
Just silence the warning in this case, it is unlikely to indicate a bug.
llvm-svn: 79743
2009-08-22 18:58:31 +00:00
Edward O'Callaghan
856e4ff78d
Second half of, clang, AuroraUX toolchain support.
...
llvm-svn: 79713
2009-08-22 01:06:46 +00:00
Douglas Gregor
c45a40afd1
Implement delayed parsing for member function templates. Fixes PR4608.
...
llvm-svn: 79709
2009-08-22 00:34:47 +00:00
Fariborz Jahanian
8ba39c04ae
Updated statuc page to reflect recent implementations
...
of section 12 [special member functions]
llvm-svn: 79704
2009-08-22 00:18:52 +00:00
Ted Kremenek
cdf5f4aa7b
Remove 'AnalysisContext::setDecl()', as we the Decl associated with an
...
AnalysisContext should never change. Along the way, propagate some constness
around.
llvm-svn: 79701
2009-08-21 23:58:43 +00:00
Ted Kremenek
00aeae98b5
Constify LocationContext* (parent) and Stmt* fields in LocationContext.
...
llvm-svn: 79700
2009-08-21 23:39:58 +00:00
Douglas Gregor
da21f27e09
Add test taking the address of a member function template and converting it to a member pointer.
...
llvm-svn: 79699
2009-08-21 23:32:45 +00:00
Douglas Gregor
1d08135537
Update Clang C++ status to better reflect what is implemented.
...
llvm-svn: 79695
2009-08-21 23:27:46 +00:00
Ted Kremenek
608677a2e1
Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager.
...
SelfRegion represented the object bound to 'self' (when analyzing Objective-C
methods) upon entry to a method. Having this region stored on the side ignores
the current stack frame that we might be analyzing (among other things), and is
a problem for interprocedural analysis.
For RegionStoreManager, the value for SelfRegion is just lazily created.
For BasicStoreManager, the value for SelfRegion is bound eagerly to 'self', but
no explicit tracking of SelfRegion on the side is made.
As part of this change, remove the restriction in BasicStoreManager that we only
track ivars for 'self'. This shouldn't actually change anything in terms of
precision, and simplifies the logic.
llvm-svn: 79694
2009-08-21 23:25:54 +00:00
Douglas Gregor
05155d8d7b
Implement conversion function templates, along with the ability to use
...
template argument deduction from a conversion function (C++
[temp.deduct.conv]) with implicit conversions.
llvm-svn: 79693
2009-08-21 23:19:43 +00:00
Mike Stump
0b8c5ae7af
Calculate the address point for a vtable better, and start fleshing out the vcall
...
calculations better.
llvm-svn: 79687
2009-08-21 23:09:30 +00:00
Douglas Gregor
e839486de9
Refactor instantiation of destructors to use the common CXXMethodDecl
...
code, fixing a problem where instantiations of out-of-line destructor
definitions would had the wrong lexical context.
Introduce tests for out-of-line definitions of the constructors,
destructors, and conversion functions of a class template partial
specialization.
llvm-svn: 79682
2009-08-21 22:43:28 +00:00
Fariborz Jahanian
8adc973483
Patch to ir-gen copy assigning array members when synthesizing
...
a copy assignment operator function.
llvm-svn: 79681
2009-08-21 22:34:55 +00:00
Ted Kremenek
14536f6ee0
Add LocationContext* field to VarRegion. This is needed for interprocedural analysis.
...
llvm-svn: 79680
2009-08-21 22:28:32 +00:00
Douglas Gregor
25e8e363df
Add test for out-of-line definition of a conversion function
...
llvm-svn: 79679
2009-08-21 22:23:24 +00:00
Douglas Gregor
e5bbb7d4ef
Fix parsing for out-of-line definitions of constructors and
...
destructors of class templates.
llvm-svn: 79678
2009-08-21 22:16:40 +00:00
Douglas Gregor
5ed5ae476e
Introduce support for constructor templates, which can now be declared
...
and will participate in overload resolution. Unify the instantiation
of CXXMethodDecls and CXXConstructorDecls, which had already gotten
out-of-sync.
llvm-svn: 79658
2009-08-21 18:42:58 +00:00
Fariborz Jahanian
5626384384
Patch to provide ir-gen support in copying array members
...
when synthesizing a copy constructor. Arrays's base element
may have a trivial or non-trivial copy constructor.
llvm-svn: 79653
2009-08-21 18:30:26 +00:00
Mike Stump
62b6680def
Testcase for a recent checkin.
...
llvm-svn: 79646
2009-08-21 18:05:02 +00:00
Chris Lattner
3ede522ca9
remove a dead warning.
...
llvm-svn: 79641
2009-08-21 17:15:06 +00:00
Fariborz Jahanian
7481bd88bb
Array member construction in prologue of user-declared
...
constructors.
llvm-svn: 79640
2009-08-21 17:09:38 +00:00
Fariborz Jahanian
6c9e5a2b9e
Introduce getConstantArrayElementCount API and use it in
...
construction/destruction of array members.
llvm-svn: 79637
2009-08-21 16:31:06 +00:00
Mike Stump
c947a87655
Fix typo.
...
llvm-svn: 79632
2009-08-21 15:22:41 +00:00
Zhongxing Xu
54f87880e7
Eagerly bind 'self' to SelfRegion. Thus we do not need to get code decl from
...
GRStateManager to create the SelfRegion.
llvm-svn: 79628
2009-08-21 13:25:15 +00:00
Daniel Dunbar
145c59d079
Fix commentos
...
llvm-svn: 79610
2009-08-21 08:24:45 +00:00
Daniel Dunbar
b3252cc860
Fix refacto.
...
llvm-svn: 79609
2009-08-21 08:22:12 +00:00
Sanjiv Gupta
91f8cd9a91
Reversing part of 79544.
...
Need to find a new way to do target specific semanitc checking.
llvm-svn: 79596
2009-08-21 04:58:03 +00:00
Zhongxing Xu
71900fbac7
Get the code decl from the initial location context.
...
llvm-svn: 79591
2009-08-21 03:05:36 +00:00
Zhongxing Xu
871918c76f
Get the code decl from the initial location context.
...
llvm-svn: 79590
2009-08-21 02:58:11 +00:00
Daniel Dunbar
6d886b056a
gcc told me to add these.
...
llvm-svn: 79589
2009-08-21 02:43:05 +00:00
Zhongxing Xu
6be1a4e832
Tie the local check NSErrorCheck to a Decl to pave the way
...
to untie the ExplodedGraph from a specific Decl.
llvm-svn: 79588
2009-08-21 02:18:44 +00:00
Mike Stump
a002945a20
We now support overriding base functions in vtables. WIP.
...
llvm-svn: 79587
2009-08-21 01:45:00 +00:00
Daniel Dunbar
b789d61a6e
Remove comma at the end of enumerator list.
...
llvm-svn: 79586
2009-08-21 00:54:25 +00:00
Argyrios Kyrtzidis
6032ef1aa3
Remove TypeSpecStartLocation from VarDecl/FunctionDecl/FieldDecl, and use DeclaratorInfo to get this information.
...
llvm-svn: 79584
2009-08-21 00:31:54 +00:00
Douglas Gregor
a8eed7dabb
Make the new Objective-C "id" and "Class" redefinition types special
...
types that are preloaded by the PCH file. Fixes PCH breakage
introduced in r79248.
llvm-svn: 79583
2009-08-21 00:27:50 +00:00
Douglas Gregor
97628d6a4c
Implement support for calling member function templates, which involves:
...
- Allowing one to name a member function template within a class
template and on the right-hand side of a member access expression.
- Template argument deduction for calls to member function templates.
- Registering specializations of member function templates (and
finding them later).
llvm-svn: 79581
2009-08-21 00:16:32 +00:00
Ted Kremenek
d5eaa05a7f
Center the dragon.
...
llvm-svn: 79580
2009-08-21 00:04:20 +00:00
Ted Kremenek
0370089637
Make the dragon a link...
...
llvm-svn: 79577
2009-08-20 23:49:30 +00:00
Ted Kremenek
7c6b2faea8
Include LLVM logo ... because dragons are cool.
...
llvm-svn: 79576
2009-08-20 23:48:37 +00:00
Fariborz Jahanian
9c0d05454a
Added member arrays to more tests now that ir-gen supports it.
...
llvm-svn: 79575
2009-08-20 23:33:31 +00:00
Fariborz Jahanian
1a606ab12a
Patch to ir-gen destruction of array member elements in revers order
...
of their construction.
llvm-svn: 79571
2009-08-20 23:02:58 +00:00
Douglas Gregor
3447e76762
Initial support for parsing and representation of member function templates.
...
llvm-svn: 79570
2009-08-20 22:52:58 +00:00
Fariborz Jahanian
9c83720d17
ir-gen patch to destruct array members. WIP.
...
llvm-svn: 79565
2009-08-20 20:54:15 +00:00
Ted Kremenek
a298c0ee3c
Update checker build.
...
llvm-svn: 79559
2009-08-20 18:55:46 +00:00
Douglas Gregor
468535e552
Fix a typo in a variable name
...
llvm-svn: 79558
2009-08-20 18:46:05 +00:00
Daniel Dunbar
4cd55b0507
Don't install wpa or index-test tools.
...
llvm-svn: 79557
2009-08-20 18:45:52 +00:00
Sanjiv Gupta
b841d1baa1
Issue an error if the user specifies parameters in a function marked as ISR.
...
llvm-svn: 79544
2009-08-20 17:48:52 +00:00
Fariborz Jahanian
9a84665921
Using "ObjCImplicitSetterGetterRefExpr" instead of "ObjCImplctSetterGetterRefExpr".
...
A field rename and more comments.
llvm-svn: 79537
2009-08-20 17:02:02 +00:00
Mike Stump
cae6178b3b
Refine vbase offsets for the inductive case. Things are now starting
...
to come together nicely. Still a WIP.
llvm-svn: 79521
2009-08-20 07:22:17 +00:00
John McCall
950aac085d
Add syntax examples for the friend declaration types.
...
Remove an assert trivialized by dominating code.
llvm-svn: 79520
2009-08-20 07:19:42 +00:00
Douglas Gregor
ebe1010b0f
Refactor the instantiation of statements into a generic tree
...
transformation.
llvm-svn: 79519
2009-08-20 07:17:43 +00:00
Chris Lattner
f6bad8690f
Improve the Getting Started and Hacking web pages, patch by
...
John Thompson!
llvm-svn: 79518
2009-08-20 06:17:11 +00:00
Ted Kremenek
815fbb6026
retain/release checker: Treat NSObject method '-awakeAfterUsingCoder:'
...
just as if it behaved like an init function. This fixes <rdar://problem/7129086>.
llvm-svn: 79515
2009-08-20 05:13:36 +00:00
Ted Kremenek
e95b439cc3
Make this test case more portable by removing its dependency on system header files.
...
llvm-svn: 79511
2009-08-20 04:48:23 +00:00
Eli Friedman
629ffb9ad3
Fix bit-field promotion to be a bit closer to the behavior of gcc.
...
Patch by Enea Zaffanella, with some simplifications/corrections to
isPromotableBitField by me.
llvm-svn: 79510
2009-08-20 04:21:42 +00:00
Zhongxing Xu
1a3ec57520
If the 'while' has an empty body, set the body to the continue target block.
...
Although this does not make the CFG more correct, it makes the CFG more
beautiful without multiple roots.
llvm-svn: 79509
2009-08-20 03:21:49 +00:00
Zhongxing Xu
a778b02e89
If the body of for loop is empty, set its body to the continue target.
...
Otherwise we get a wrong CFG.
llvm-svn: 79507
2009-08-20 02:56:48 +00:00
Mike Stump
2220447adc
Ensure we don't output repeated vbase offsets. I have a testcase for
...
this, but need to fixup the actual offset value before I can check it
in. WIP.
llvm-svn: 79506
2009-08-20 02:11:48 +00:00
John McCall
87a44eb98a
Basic nested-template implementation.
...
llvm-svn: 79504
2009-08-20 01:44:21 +00:00
Zhongxing Xu
068928b2a6
Rename: ProgramPoint::getContext() => ProgramPoint::getLocationContext().
...
llvm-svn: 79502
2009-08-20 01:23:34 +00:00
Fariborz Jahanian
dd46eb770f
Test case for my last patch plus a minor clean up.
...
llvm-svn: 79500
2009-08-20 01:01:06 +00:00
Ted Kremenek
d982f001c9
retain/release checker: Special case handling of CFAttributedStringSetAttribute,
...
fixing <rdar://problem/7152619>. Along the way, merge test cases in
'test/Analysis/rdar-6539791.c' into 'test/Analysis/retain-release.m'.
llvm-svn: 79499
2009-08-20 00:57:22 +00:00
Fariborz Jahanian
eeb0e57247
ir-gen for multi-dimensional array construction. WIP.
...
llvm-svn: 79497
2009-08-20 00:15:15 +00:00
Ted Kremenek
eebcf574dd
Enhance diagnostics concerning attribute 'ns_returns_retained' and 'cf_returns_retained' to present the range of the attribute and have the diagnostic location be the declaration that the attribute was falsely attached to. This solves the problem where these diagnostics were being suppressed when these attributes were wrapped in a macro that was defined in a system header.
...
llvm-svn: 79496
2009-08-19 23:56:48 +00:00
Argyrios Kyrtzidis
20cf19141f
Keep track of the right paren ')' source location in a function declarator.
...
llvm-svn: 79489
2009-08-19 23:14:54 +00:00
Fariborz Jahanian
a8fe2c26a8
Removed unneeded code for break/continue statements in
...
manufactured for-loop per Anders feedback (thanks).
- Fariborz
llvm-svn: 79466
2009-08-19 21:10:38 +00:00
Fariborz Jahanian
431c883287
ir-gen for constructing arrays as non-static data members. WIP.
...
llvm-svn: 79464
2009-08-19 20:55:16 +00:00