Anders Carlsson
a96f56fba8
Add mangleSubstitution/addSubstitution variants that take a NamedDecl.
...
llvm-svn: 82116
2009-09-17 03:53:28 +00:00
Anders Carlsson
3e0d1e0747
Get rid of the last grep.
...
llvm-svn: 82115
2009-09-17 03:48:45 +00:00
Anders Carlsson
df644fb773
When mangling function template specialization, mangle the type encoding of the original function template. Also, port mangle.cpp and function-template-specialization.cpp over to using FileCheck.
...
llvm-svn: 82114
2009-09-17 03:46:43 +00:00
Anders Carlsson
98e00bb162
Add new functions to the mangler for the <unscoped-name> and <unscoped-template-name> productions.
...
llvm-svn: 82113
2009-09-17 03:17:01 +00:00
Daniel Dunbar
5bb5ec5b07
PCH: When writing PCH files, tweak the predicate function deciding whether to mark a decl as "external" to be closer to reality.
...
This still isn't perfect, but I believe it is conservatively accurate at marking decls which IRgen needs to see, while still keeping the "deserialization footprint" on Cocoa.h.
llvm-svn: 82112
2009-09-17 03:06:51 +00:00
Daniel Dunbar
865c2a7f23
PCH: When deserializing an explicit "external definition", don't pass it to HandleTopLevelDecl -- this is already being done inside the reader.
...
This is something of a hack, since whether the reader actually did this depends on the "isConsumerInterestedIn" predicate. I think we need to rework how this works, but I need to discuss with Doug.
llvm-svn: 82111
2009-09-17 03:06:44 +00:00
Daniel Dunbar
e9fee8a361
Initial support for code generation from .ast files.
...
- Doesn't actually work yet because only module level asm's get correctly marked as externally visible in the PCH.
- Other things like 'clang-cc foo.ast -ast-dump' now work, as well.
llvm-svn: 82107
2009-09-17 00:48:13 +00:00
Daniel Dunbar
691b9337a6
clang-cc: Factor out code for creating one of the standard AST consumer actions.
...
llvm-svn: 82106
2009-09-17 00:48:00 +00:00
Daniel Dunbar
d112f103e7
We don't need a -compile-ast clang-cc action, we can just use -S.
...
llvm-svn: 82105
2009-09-17 00:47:53 +00:00
Daniel Dunbar
785d51c45b
Simplify.
...
llvm-svn: 82104
2009-09-17 00:47:46 +00:00
Daniel Dunbar
1188987e23
clang-cc: Remove -ObjC -ObjC++ handling from clang-cc.
...
llvm-svn: 82103
2009-09-17 00:47:27 +00:00
Anders Carlsson
feb60501a8
Add basic substitution to the C++ mangler. It currently only looks at types.
...
llvm-svn: 82102
2009-09-17 00:43:46 +00:00
Daniel Dunbar
db7ec04fed
Force triple, although probably the real fix is to tie __strong to -fobjc-gc.
...
llvm-svn: 82101
2009-09-17 00:28:00 +00:00
Daniel Dunbar
6f8f276ce4
Fix substituto.
...
llvm-svn: 82099
2009-09-17 00:07:21 +00:00
Daniel Dunbar
f8d26ad3a3
Add CLANG_{SOURCE,BINARY}_DIR cmake variables.
...
llvm-svn: 82098
2009-09-17 00:07:10 +00:00
Anders Carlsson
b3e533d9d0
Add a simple const mangling test.
...
llvm-svn: 82096
2009-09-16 23:53:19 +00:00
Fariborz Jahanian
1ff8299c67
Removed useless stuff from the test.
...
llvm-svn: 82095
2009-09-16 23:52:53 +00:00
Fariborz Jahanian
0bdc001b6e
More test for objc gc's mixed write-barriers.
...
llvm-svn: 82094
2009-09-16 23:49:04 +00:00
Anders Carlsson
e7e163cc0b
When creating function types, remove any top-level CVR qualifications in the function type argument types.
...
llvm-svn: 82093
2009-09-16 23:47:08 +00:00
Fariborz Jahanian
e29f04859b
Additional tests for write-bariers.
...
llvm-svn: 82092
2009-09-16 23:38:26 +00:00
Fariborz Jahanian
5f41a8c4af
Test for variety of write-barriers.
...
llvm-svn: 82091
2009-09-16 23:30:59 +00:00
Fariborz Jahanian
de1d324dce
patch for generating objc'2 objc_assign_ivar. WIP.
...
llvm-svn: 82090
2009-09-16 23:11:23 +00:00
John McCall
11083da4d0
Improved representation and support for friend class templates. Angst about same.
...
llvm-svn: 82088
2009-09-16 22:47:08 +00:00
Douglas Gregor
8addadc691
CMake: Generate LIT site configuration file for Clang tests, which Daniel will probably have to fix
...
llvm-svn: 82086
2009-09-16 22:30:48 +00:00
Douglas Gregor
24f01f1251
The CMake build system now derives the Clang version number from VER.
...
llvm-svn: 82085
2009-09-16 21:59:05 +00:00
Fariborz Jahanian
a7fa6beb2e
Starting patch to generate more specific API for objc's
...
GC. Currently, new API will be generated under
clang-cc's -fobjc-newgc-api flag which will eventually
become the default. WIP.
llvm-svn: 82082
2009-09-16 21:37:16 +00:00
Mike Stump
d611ebaa5e
Fix spelling.
...
llvm-svn: 82078
2009-09-16 20:41:09 +00:00
Chris Lattner
dd890b2b2e
fit in 80 cols
...
llvm-svn: 82073
2009-09-16 20:18:54 +00:00
Anders Carlsson
570af5d426
Improve handling of vector casts in C++.
...
llvm-svn: 82072
2009-09-16 19:19:43 +00:00
Chris Lattner
c15c252007
grammaro
...
llvm-svn: 82070
2009-09-16 18:56:12 +00:00
Douglas Gregor
64621e6eb3
Teach Sema::FindInstantiatedDecl to find instantiated RecordDecls even
...
when we are not instantiating the corresponding "current
instantiation." This happens, e.g., when we are instantiating a
declaration reference that refers into the "current instantiation" but
occurs in a default function argument. The libstdc++ vector default
constructor now instantiates properly.
llvm-svn: 82069
2009-09-16 18:34:49 +00:00
Fariborz Jahanian
cceedbff27
Do not generate write-barrier in indirect assignment to
...
a weak object.
llvm-svn: 82061
2009-09-16 18:09:18 +00:00
Fariborz Jahanian
4141deb68e
Removed a superfluous check before setting
...
a flag (objc GC).
llvm-svn: 82052
2009-09-16 16:49:08 +00:00
Anders Carlsson
20759ad54c
x86-64 ABI: If a type is a C++ record with either a non-trivial destructor or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review.
...
llvm-svn: 82050
2009-09-16 15:53:40 +00:00
Benjamin Kramer
26ddfee3b2
PR4991: Properly remove trailing newline from __TIMESTAMP__.
...
Replace strcpy with memcpy while at it.
llvm-svn: 82043
2009-09-16 13:10:04 +00:00
Daniel Dunbar
306945d3d0
Incremental improvement to logic determining whether we emit unwind tables or
...
not.
- PR4932.
llvm-svn: 82021
2009-09-16 06:17:29 +00:00
Ted Kremenek
4f335c300a
Have divide-by-zero checker not handled undefined denominators. This is handled by the generic checking for undefined operands for BinaryOperators.
...
llvm-svn: 82019
2009-09-16 06:04:26 +00:00
Ted Kremenek
6879beda08
Remove ImplicitBadDivides/ExplicitBadDivides node sets. This checking is now down by a 'Checker' and not build into GRExprEngine.
...
llvm-svn: 82017
2009-09-16 06:03:39 +00:00
Chris Lattner
f7ff53d4d9
fix some ppc register name issues, patch by Richard Pennington!
...
llvm-svn: 82009
2009-09-16 05:05:27 +00:00
Daniel Dunbar
be657e5b28
A toy for Doug: Add some 'lit' tests which just run clang++ -fsyntax-only over all the files in a directory.
...
- 'lit utils/C++Tests' to run, you may need to fix the stdc++ include path, and your mileage may vary.
- A handful of the LLVM headers are XFAIL because they don't include the right headers.
llvm-svn: 81990
2009-09-16 01:40:13 +00:00
Daniel Dunbar
f47fd58476
tests: Stash clang/clang-cc and LLVM src/obj paths for use elsewhere.
...
llvm-svn: 81989
2009-09-16 01:39:52 +00:00
Mike Stump
eb963680b5
Chris doesn't want the FIXME.
...
llvm-svn: 81988
2009-09-16 01:35:21 +00:00
Mike Stump
1855a56f92
Add a FIXME, so the next person don't trip as hard on the landmines.
...
llvm-svn: 81986
2009-09-16 01:31:09 +00:00
Mike Stump
b4bed3a497
Collapse more clang version numbers down into fewer places.
...
llvm-svn: 81983
2009-09-16 01:26:05 +00:00
Mike Stump
1d0da3932e
Some people don't want to fix their broken code just yet, so turn off
...
hard error for falling off a noreturn function.
llvm-svn: 81971
2009-09-16 00:39:34 +00:00
Douglas Gregor
82e22869aa
Fix a typo in a FIXME
...
llvm-svn: 81960
2009-09-16 00:01:48 +00:00
Mike Stump
e18856dad1
Back to 1.1 we go.
...
llvm-svn: 81944
2009-09-15 23:04:22 +00:00
Fariborz Jahanian
a9c4041471
In building list of visible conversion functions, use
...
result type of template convesion functions.
llvm-svn: 81943
2009-09-15 23:02:16 +00:00
Mike Stump
37d0b678b6
Back out for now, as apparently there is some really broken code somewhere.
...
llvm-svn: 81941
2009-09-15 22:49:27 +00:00
Douglas Gregor
87f5406081
When implicitly declaring operators new, new[], delete, and delete[],
...
give them the appropriate exception specifications. This,
unfortunately, requires us to maintain and/or implicitly generate
handles to namespace "std" and the class "std::bad_alloc". However,
every other approach I've come up with was more hackish, and this
standard requirement itself is quite the hack.
Fixes PR4829.
llvm-svn: 81939
2009-09-15 22:30:29 +00:00