Alexis Hunt
94f9cbf998
Implement a few basic tests for defaulted and deleted functions.
...
More comprehensive testing once copy {constructors,assignment operators}
can be defaulted.
llvm-svn: 131275
2011-05-13 01:01:05 +00:00
Richard Smith
3f1b5d077b
Implement support for C++0x alias templates.
...
llvm-svn: 130953
2011-05-05 21:57:07 +00:00
Alexis Hunt
27a761d5bd
there i fixed it
...
Increase robustness of the delegating constructor cycle detection
mechanism. No more infinite loops on invalid or logic errors leading to
false results. Ensure that this is maintained correctly accross
serialization.
llvm-svn: 130887
2011-05-04 23:29:54 +00:00
Argyrios Kyrtzidis
6f09245c33
Change test/PCH/cxx-static_assert.cpp so that it doesn't need a separate header.
...
llvm-svn: 130839
2011-05-04 14:58:28 +00:00
Alexis Hunt
6118d6642b
Implement a better version of delegating constructor cycle detection.
...
This is more efficient as it's all done at once at the end of the TU.
This could still get expensive, so a flag is provided to disable it. As
an added bonus, the diagnostics will now print out a cycle.
The PCH test is XFAILed because we currently can't deal with a note
emitted in the header and I, being tired, see no other way to verify the
serialization of delegating constructors. We should probably address
this problem /somehow/ but no good solution comes to mind.
llvm-svn: 130836
2011-05-04 05:57:24 +00:00
Alexis Hunt
37a477f7eb
Implement serialization of delegating constructors.
...
llvm-svn: 130822
2011-05-04 01:19:08 +00:00
Chad Rosier
f897d3b88b
Fixed test case asserts due to checkin of r130710.
...
llvm-svn: 130720
2011-05-02 20:39:21 +00:00
NAKAMURA Takumi
c3a8529269
lib/Frontend/InitHeaderSearch.cpp: Tweak AddPath() to accept "/foo/bar" (not "X:\foo\bar") with -isysroot. test/PCH/reloc.c can pass.
...
FIXME: We should consider better isysroot scheme on Win32 hosts.
llvm-svn: 130683
2011-05-02 04:50:10 +00:00
Sebastian Redl
2ac2c725e0
Add a decl update when a static data member of a class template is instantiated in a different PCH than its containing class. Otherwise we get double definition errors. Fixes a Boost.MPL problem that affects Boost.Accumulators and probably a lot more of Boost.
...
llvm-svn: 130488
2011-04-29 08:19:30 +00:00
Sebastian Redl
bc9a20949f
Use -emit-llvm-only as suggested by Argyrios.
...
llvm-svn: 130486
2011-04-29 08:19:03 +00:00
Francois Pichet
4c3b68c366
Because of r130359 this test no longer fail on Windows.
...
llvm-svn: 130370
2011-04-28 02:01:57 +00:00
Matt Beaumont-Gay
7e92e57b0b
Fix modified-header-crash.c for read-only source trees
...
llvm-svn: 130359
2011-04-28 00:23:49 +00:00
Argyrios Kyrtzidis
21362becdc
Disable a test that fails on windows; for some reason we don't detect that the header has different timestamp.
...
llvm-svn: 130204
2011-04-26 16:49:25 +00:00
Argyrios Kyrtzidis
daa41f59e4
Fix a crash when ASTReader emits diagnostic when another one is in flight. Fixes rdar//9334563.
...
llvm-svn: 130162
2011-04-25 22:23:56 +00:00
Sebastian Redl
010288f7c1
Set the correct anonymous namespace (must be last reopening), and behave correctly in the presence of the ever-annoying linkage specifications.
...
llvm-svn: 130105
2011-04-24 16:28:21 +00:00
Sebastian Redl
fa1f370b7d
Fix adding an anonymous namespace in a chained PCH to a namespace from a previous PCH.
...
Fix anonymous namespaces in PCH.
llvm-svn: 130104
2011-04-24 16:28:13 +00:00
Sebastian Redl
ab238a7d18
Synthesizing the definition of an implicit member is an AST modification, so notify any mutation listeners of it. This fixes a crasher in chained PCH, where an implicit destructor in a PCH gets a definition in a chained PCH, which is then lost. However, any further use of the destructor would cause its definition to be regenerated in the final file, hiding the bug.
...
llvm-svn: 130103
2011-04-24 16:28:06 +00:00
Sebastian Redl
f830df4e9d
On reading DeclContexts from PCH, check for visible updates even if the context was empty in the original version. Also, if there are any, tell the context that it has external visible decls. This fixes the problem that a namespace that was empty in the initial PCH (could also happen if the initial PCH didn't include any std header but caused implicit creation of namespace std, e.g. due to implicit declaration of a virtual destructor) never found any declaration declared in *any* chained PCH. Very ugly when the chained PCH includes all that std stuff, as the errors were effectively the same as not including std headers.
...
llvm-svn: 130102
2011-04-24 16:27:54 +00:00
Sebastian Redl
14afaf0093
Store the full list of pending instantiations in a chained PCH. Previously we attempted to store only new pending instantiations, but our filter was incorrect, dropping implicit instantiations of class template members. It's just not worth coming up with a complex filter that is correct, when the only cost is PCH files that are a few hundred bytes (at most) larger.
...
llvm-svn: 130098
2011-04-24 16:27:30 +00:00
Peter Collingbourne
9114759641
C1X: implement generic selections
...
As an extension, generic selection support has been added for all
supported languages. The syntax is the same as for C1X.
llvm-svn: 129554
2011-04-15 00:35:48 +00:00
Richard Smith
02e85f3bc5
Add support for C++0x's range-based for loops, as specified by the C++11 draft standard (N3291).
...
llvm-svn: 129541
2011-04-14 22:09:26 +00:00
Sebastian Redl
9ab988fe00
Chained PCH: Remember when additional specializations are added to a function template from a previous PCH. Fixes the only crasher when using massive chains on Clang's Sema component. We still have some incomplete codegen there.
...
llvm-svn: 129516
2011-04-14 14:07:59 +00:00
Richard Smith
0f538460d2
Fix AST serialization of reference-to-reference types. This previously caused
...
a crash when deserializing the AST for this:
typedef char (&R);
extern R &r;
llvm-svn: 129358
2011-04-12 10:38:03 +00:00
Chandler Carruth
24284afa2d
Flip the default for showing include stacks on notes to false. This
...
required modifying a few tests that specifically use note include stacks
to check the source manager's view of include stacks. I've simply added
the flag to these tests for now, they may have to be more substantially
changed if we decide to remove support for note include stacks
altogether.
Also, add a test for include stacks on notes that was supposed to go in
with the previous commit.
llvm-svn: 128390
2011-03-27 20:00:08 +00:00
Chandler Carruth
33bf3e758d
Diagnose uninitialized uses of a variable within its own initializer.
...
This is basically the same idea as the warning on uninitialized uses of
fields within an initializer list. As such, it is on by default and
under -Wuninitialized.
Original patch by Richard Trieu, with some massaging from me on the
wording and grouping of the diagnostics.
llvm-svn: 128376
2011-03-27 09:46:56 +00:00
John McCall
6a4fa52b37
The emission of an Objective-C++'s class .cxx_destruct method should be
...
conditioned on whether it has any destructible ivars, not on whether
it has any non-trivial class-object initializers.
llvm-svn: 128074
2011-03-22 07:05:39 +00:00
Peter Collingbourne
e190dee7a5
Add support for the OpenCL vec_step operator, by generalising and
...
extending the existing support for sizeof and alignof. Original
patch by Guy Benyei.
llvm-svn: 127475
2011-03-11 19:24:49 +00:00
Argyrios Kyrtzidis
35dcda7922
Introduce '-chain-include' option to specify headers that will be converted to chained PCHs in memory
...
without having to use multiple runs and intermediate files.
Intended for testing & debugging of chained PCH.
llvm-svn: 127339
2011-03-09 17:21:42 +00:00
Anders Carlsson
1f13bb5f00
When deserializing CXXBaseSpecifiers (and offsets), make sure to walk the chain in the correct order.
...
llvm-svn: 127315
2011-03-09 05:09:32 +00:00
Anders Carlsson
a426705cc6
When writing file references in a pch, make sure to ask the file manager for the absolute path.
...
llvm-svn: 127248
2011-03-08 16:04:35 +00:00
NAKAMURA Takumi
3b78ef47fe
test/PCH/headersearch.cpp: Tweak for Windows hosts especially cygming.
...
This test requires shell feature, to change working directory.
On Windows, current directory cannot be moved nor removed.
llvm-svn: 127130
2011-03-06 20:44:33 +00:00
Anders Carlsson
9bb83e85b8
Write CXX base specifier offsets for chained ASTs.
...
llvm-svn: 127126
2011-03-06 18:41:18 +00:00
Anders Carlsson
80756f6240
When serializing a DeclRefExpr, always store the number of explicit template
...
arguments at the same offset, since it's needed when creating the empty
DeclRefExpr when deserializing. Fixes a memory corruption issue that would lead
to random bugs and crashes.
llvm-svn: 127125
2011-03-06 18:19:42 +00:00
NAKAMURA Takumi
fb7133249c
test: Mark 3 tests as XFAIL:cygwin,mingw.
...
llvm-svn: 127077
2011-03-05 11:15:48 +00:00
NAKAMURA Takumi
7362afad29
test: Mark two tests as XFAIL:mingw.
...
llvm-svn: 127076
2011-03-05 11:15:38 +00:00
Douglas Gregor
250ffb1fcb
When we're deserializing a template parameter declaration, temporarily
...
use the translation unit as its declaration context, then deserialize
the actual lexical and semantic DeclContexts after the template
parameter is complete. This avoids problems when the DeclContext
itself (e.g., a class template) is dependent on the template parameter
(e.g., for the injected-class-name).
llvm-svn: 127056
2011-03-05 01:35:54 +00:00
Anders Carlsson
6774b1f1c1
Add -fcxx-exceptions to all tests that use C++ exceptions.
...
llvm-svn: 126599
2011-02-28 00:40: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
479d6f51e3
Pass -fexceptions to all tests that use try/catch/throw.
...
llvm-svn: 126037
2011-02-19 19:23:03 +00:00
Francois Pichet
b3e0886599
test/PCH/headersearch.cpp fails on Win32. Not trivial to fix.
...
llvm-svn: 125644
2011-02-16 02:29:43 +00:00
Peter Collingbourne
5df20e02af
Serialization/deserialization support for floating point #pragma
...
options, enabled OpenCL extensions and default FP_CONTRACT setting.
llvm-svn: 125589
2011-02-15 19:46:30 +00:00
Argyrios Kyrtzidis
10b2368e9f
Allow resolving headers from a PCH even after headers+PCH were moved to another path.
...
Store in PCH the directory that the PCH was originally created in.
If a header file is not found at the path that we expect it to be and the PCH file
was moved from its original location, try to resolve the file by assuming that
header+PCH were moved together and the header is in the same place relative to the PCH.
llvm-svn: 125576
2011-02-15 17:54:22 +00:00
Douglas Gregor
68051a74ec
Implement AST/PCH chaining support for macro definitions. Previously,
...
we would deserialize all of the macro definitions we knew about while
serializing the macro definitions at the end of the AST/PCH file. Even
though we skipped most of them (since they were unchanged), it's still
a performance problem.
Now, we do the standard AST/PCH chaining trick: watch what identifiers
are deserialized as macro names, and consider only those identifiers
(along with macro definitions that have been deserialized/written in
the source) when serializing the preprocessor state.
llvm-svn: 125324
2011-02-11 00:26:14 +00:00
Douglas Gregor
2e5571d0fb
When we're writing macro definitions to an AST/PCH File, sort the
...
macro definitions by macro name first. That way, we'll get a stable
ordering in the AST/PCH file.
llvm-svn: 125297
2011-02-10 18:20:09 +00:00
Peter Collingbourne
5eec5f0422
Parse: add support for parsing CUDA kernel calls
...
llvm-svn: 125219
2011-02-09 21:12:02 +00:00
Douglas Gregor
87866ceda7
Implement proper (de-)serialization for explicit template argument
...
lists with zero template arguments. Fixes some seriously scary
crashers in C++ PCH.
llvm-svn: 124862
2011-02-04 12:01:24 +00:00
Axel Naumann
6cff969eec
Remove unnecessary RUN: directive.
...
llvm-svn: 124795
2011-02-03 14:05:55 +00:00
Matt Beaumont-Gay
06cebfd9a5
Use tempfiles for the .o outputs.
...
llvm-svn: 124697
2011-02-01 22:44:06 +00:00
Douglas Gregor
1732850158
Fix a thinko where I didn't update a consistency check for
...
PackExpansionType in the AST reader. We need more testing for variadic
templates + PCH, but this fixes PR9073.
llvm-svn: 124662
2011-02-01 15:24:58 +00:00
John McCall
4fff8f6cff
Perform the bad-address-space conversions check as part of
...
CheckPointerTypesForAssignment.
llvm-svn: 124632
2011-02-01 00:10:29 +00:00