Sebastian Redl
ff4a2951d9
Make declarations in the dependent PCH visible, for C at least.
...
llvm-svn: 109292
2010-07-23 23:49:55 +00:00
Fariborz Jahanian
c51609a0b5
PCH read/write for selector reference pool.
...
Finishes off radar 6507158.
llvm-svn: 109256
2010-07-23 19:11:11 +00:00
Zhongxing Xu
318e40360d
Fix build on Ubuntu 10.04.
...
llvm-svn: 109208
2010-07-23 02:15:08 +00:00
Douglas Gregor
be2d8c6096
Basic plumbing for generating a precompiled preamble for an
...
ASTUnit/CXTranslationUnit. We can't actually use this preamble yet,
however.
llvm-svn: 109202
2010-07-23 00:33:23 +00:00
Sebastian Redl
c67764eb4b
Thread bitstream cursors all the way through the AST reading stuff. This way, reading a trivial 2-element chained file actually works.
...
llvm-svn: 109191
2010-07-22 22:43:28 +00:00
Fariborz Jahanian
6e7e8cc19d
atch for implementation of objective-c's -Wselector
...
warning flag in clang. Little more to do
for a PCH issue. Radar 6507158.
llvm-svn: 109129
2010-07-22 18:24:20 +00:00
Argyrios Kyrtzidis
2d8891cd5d
Read/write C++0x static_assert for PCH.
...
llvm-svn: 109123
2010-07-22 17:28:12 +00:00
Sebastian Redl
5c415f3e32
Allow loading declcontext information from any file in the chain. Properly write source locations to dependent files. WIP
...
llvm-svn: 109119
2010-07-22 17:01:13 +00:00
Argyrios Kyrtzidis
165b58181f
Read/write FriendTemplateDecl for PCH.
...
llvm-svn: 109113
2010-07-22 16:04:10 +00:00
Argyrios Kyrtzidis
47cd7a91f4
Support C++ try/catch statements for PCH.
...
llvm-svn: 109112
2010-07-22 16:03:56 +00:00
Sebastian Redl
4e6c567653
Allow loading macros from any file in the chain. WIP
...
llvm-svn: 109048
2010-07-21 22:31:37 +00:00
Sebastian Redl
fa0614458a
Promote some macro-related stuff to per-file data. Fix a cache-inefficient nested loop by inverting the nesting. Store the size of each file in the chain; will need this later for statement offsets.
...
llvm-svn: 109030
2010-07-21 20:07:32 +00:00
Sebastian Redl
c713b9665b
Allow loading identifiers from any file in the chain. WIP
...
llvm-svn: 108974
2010-07-21 00:46:22 +00:00
Sebastian Redl
b2831dbff7
Apparently not every system thinks that references in pairs are as cool as I think.
...
llvm-svn: 108959
2010-07-20 22:55:31 +00:00
Sebastian Redl
3462779369
Allow loading declarations from any file in the chain. WIP
...
llvm-svn: 108956
2010-07-20 22:46:15 +00:00
Sebastian Redl
837a6cbe03
Allow loading types from any file in the chain. WIP
...
llvm-svn: 108954
2010-07-20 22:37:49 +00:00
Sebastian Redl
0675030cf9
Allow loading source locations from any file in the chain. WIP
...
llvm-svn: 108942
2010-07-20 21:50:20 +00:00
Sebastian Redl
b293a45d28
More work on getting PCHReader to handle multiple files. Promote SLocOffsets to per-file data. WIP
...
llvm-svn: 108930
2010-07-20 21:20:32 +00:00
Douglas Gregor
af82e3510b
Introduce a new lexer function to compute the "preamble" of a file,
...
which is the part of the file that contains all of the initial
comments, includes, and preprocessor directives that occur before any
of the actual code. Added a new -print-preamble cc1 action that is
only used for testing.
llvm-svn: 108913
2010-07-20 20:18:03 +00:00
Argyrios Kyrtzidis
dde5790562
Hide FunctionTemplateDecl's specializations folding set as implementation detail and introduce
...
FunctionTemplateDecl::findSpecialization.
Redeclarations of specializations will not cause the previous decl to be removed from the set,
the set will keep the canonical decl. findSpecialization will return the most recent redeclaration.
llvm-svn: 108834
2010-07-20 13:59:58 +00:00
Argyrios Kyrtzidis
c1624e9eda
Whether the specialization should be added to template's folding set when read from PCH,
...
is determined by a isCanonicalDecl check.
llvm-svn: 108833
2010-07-20 13:59:40 +00:00
Sebastian Redl
c57d34bc35
Update ImplicitCastExpr to be able to represent an XValue.
...
llvm-svn: 108807
2010-07-20 04:20:21 +00:00
Sebastian Redl
3d3f0b1039
Remove PCHReader::getStream(), it was unused. Inline PCHReader::getDelsCursor() into its sole caller and remove it. This reduces the attack surface of multiple PCH files towards code outside the PCH implementation.
...
llvm-svn: 108763
2010-07-19 22:38:35 +00:00
Sebastian Redl
bd1b5befee
Promote IdentifierOffsets to per-file data.
...
llvm-svn: 108762
2010-07-19 22:28:42 +00:00
Sebastian Redl
9e687994f3
Promote DeclOffsets and TypeOffsets to per-file data.
...
llvm-svn: 108760
2010-07-19 22:06:55 +00:00
Douglas Gregor
aa21cc401b
Introduce a new libclang API, clang_reparseTranslationUnit(), which
...
reparses an already-parsed translation unit. At the moment it's just a
convenience function, but we hope to use it for performance
optimizations.
llvm-svn: 108756
2010-07-19 21:46:24 +00:00
Sebastian Redl
393f8b76c0
Promote the identifier table to per-file data. Also, if a CHAINED_METADATA record exists, it has to be the first thing in the PCH file.
...
llvm-svn: 108748
2010-07-19 20:52:06 +00:00
Daniel Dunbar
e38764c66c
Driver: Change the driver to take the path to the main executable, instead of
...
taking it in pieces.
- Fixes a problem where the Clang executable path was not initialized properly
on Win32, because sys::Path::getBasename() doesn't do what I always think it
does. Imagine that, a sys::Path interface that is confusing!
llvm-svn: 108667
2010-07-19 00:44:04 +00:00
Chris Lattner
ad4f38b1a9
BUILD_ARCHIVE is the default for libraries, no need to set it.
...
llvm-svn: 108633
2010-07-18 00:14:47 +00:00
Fariborz Jahanian
aea8e1e3d2
Added PCH/ASTImporter code for ObjCIvarDecl's field.
...
llvm-svn: 108627
2010-07-17 18:35:47 +00:00
Sebastian Redl
c2e6dbfa19
Teach the PCH reader to load the dependency when encountering a chain metadata record. WIP
...
llvm-svn: 108578
2010-07-17 00:12:06 +00:00
Sebastian Redl
2abc0383ce
Separate out the initial loading of a PCH so that loading chained PCHs can reuse it.
...
llvm-svn: 108551
2010-07-16 20:41:52 +00:00
Tom Care
826e6b4023
Improved false positive rate for the idempotent operations checker and moved it into the default path-sensitive analysis options.
...
- Added checks for static local variables, self assigned parameters, and truncating/extending self assignments
- Removed command line option (now default with --analyze)
- Updated test cases to pass with idempotent operation warnings
llvm-svn: 108550
2010-07-16 20:41:41 +00:00
Sebastian Redl
34522813e7
First baby steps towards PCHReader being able to keep track of multiple PCH files. WIP
...
llvm-svn: 108537
2010-07-16 17:50:48 +00:00
Sebastian Redl
1ea025bef9
Add a little more data to chained PCHs. WIP
...
llvm-svn: 108528
2010-07-16 16:36:56 +00:00
Daniel Dunbar
01ad0a78d0
Suppress !+Asserts warning.
...
llvm-svn: 108480
2010-07-16 00:00:11 +00:00
Sebastian Redl
85b2a6a430
Add a callback interface that allows interested parties to get notified whenever PCHReader deserializes a type or decl (and possibly other things in the future). Have PCHWriter implement these callbacks as noops and register to receive them if we're chaining PCHs. This will allow PCHWriter to track the IDs of these things, which it needs to write the dependent files. WIP
...
llvm-svn: 108383
2010-07-14 23:45:08 +00:00
Sebastian Redl
8b41f30064
There is another implementation of PCHReaderListener around. Update it to the new interface.
...
llvm-svn: 108377
2010-07-14 23:29:55 +00:00
Benjamin Kramer
8d5609b604
Pass StringRefs by value.
...
llvm-svn: 108375
2010-07-14 23:19:41 +00:00
Sebastian Redl
409183ff7c
Increase the max PCH level for declarations to 7. Add a FromPCH flag to types.
...
llvm-svn: 108354
2010-07-14 20:26:45 +00:00
Sebastian Redl
75fbb3b5e5
Make PCHReader cope with PCH files containing more than one predefines buffer.
...
llvm-svn: 108340
2010-07-14 17:49:11 +00:00
Douglas Gregor
f2753b3b4e
Downgrade the "when type is in parentheses, array cannot have dynamic
...
size" error for code like
new (int [size])
to a warning, add a Fix-It to remove the parentheses, and make this
diagnostic work properly when it occurs in a template
instantiation. <rdar://problem/8018245>.
llvm-svn: 108242
2010-07-13 15:54:32 +00:00
Argyrios Kyrtzidis
36745fda34
Modify the pragma handlers to accept and use StringRefs instead of IdentifierInfos.
...
When loading the PCH, IdentifierInfos that are associated with pragmas cause declarations that use these identifiers to be deserialized (e.g. the "clang" pragma causes the "clang" namespace to be loaded).
We can avoid this if we just use StringRefs for the pragmas.
As a bonus, since we don't have to create and pass IdentifierInfos, the pragma interfaces get a bit more simplified.
llvm-svn: 108237
2010-07-13 09:07:17 +00:00
Douglas Gregor
11cfd9441d
Fix a documentation paste-o and eliminate a useless function parameter, both found by Sebastian
...
llvm-svn: 108214
2010-07-12 23:48:14 +00:00
Sebastian Redl
143413f8fb
Split the normal and chained PCH writing paths and add a tiny bit of implementation to the latter. WIP.
...
llvm-svn: 108200
2010-07-12 22:02:52 +00:00
Argyrios Kyrtzidis
f4cc7dcf9b
Simplify code using the new FoldingSetImpl::InsertNode() overload.
...
llvm-svn: 108198
2010-07-12 21:41:31 +00:00
Chandler Carruth
62e5e56dad
Switch to void-cast for this. Chris prefers that over the attribute, I'll
...
probably try and switch more of these if I can.
llvm-svn: 108085
2010-07-11 07:42:13 +00:00
Chandler Carruth
32652f3400
Mark assert-only variables as unused.
...
llvm-svn: 108068
2010-07-11 03:24:05 +00:00
Argyrios Kyrtzidis
b8d77eb300
Add PCH support for the remaining C++ exprs.
...
llvm-svn: 108042
2010-07-10 11:46:15 +00:00
Argyrios Kyrtzidis
8704057ce9
Reorganize how ClassTemplate[Partial]SpecializationDecls are read/written to avoid the
...
possibility of adding an unitialized one into the folding set.
llvm-svn: 108016
2010-07-09 21:11:43 +00:00