Benjamin Kramer
bbb5deace6
Factor code. No functionality change.
...
llvm-svn: 102262
2010-04-24 20:19:58 +00:00
Anders Carlsson
7d3360f123
Add base paths for CK_BaseToDerived and CK_BaseToDerivedMemberPointer.
...
llvm-svn: 102261
2010-04-24 19:36:51 +00:00
Anders Carlsson
b78fecaf6f
Add base paths to CK_UncheckedDerivedToBase and CK_DerivedToBaseMemberPointer.
...
llvm-svn: 102260
2010-04-24 19:22:20 +00:00
Anders Carlsson
a70cff624e
Actually produce base paths for CastExprs of kind CK_DerivedToBase.
...
llvm-svn: 102259
2010-04-24 19:06:50 +00:00
Anders Carlsson
5d270e8fa6
Add BasePath arguments to all cast expr constructors.
...
llvm-svn: 102258
2010-04-24 18:38:56 +00:00
Daniel Dunbar
df3d1c2d1f
Driver/Darwin: Fix Objective-C non-fragile ABI and dispatch method defaults, which were wrong in numerous places.
...
- <rdar://problem/7903449>
llvm-svn: 102257
2010-04-24 18:37:41 +00:00
Douglas Gregor
53ce178cef
When we take the address of a declaration to bind it to a non-type
...
template parameter, by sure to mark that declaration as
"referenced". The Boost.Iterator library now passes all tests.
llvm-svn: 102256
2010-04-24 18:20:53 +00:00
Daniel Dunbar
fca18c1b41
NeXT: Clean up dispatch method policy selection.
...
- Replace -cc1 level -fobjc-legacy-dispatch with -fobjc-dispatch-method={legacy,non-legacy,mixed}.
- Lift "mixed" vs "non-mixed" policy choice up to driver level, instead of being buried in CGObjCMac.cpp.
- No intended functionality change.
llvm-svn: 102255
2010-04-24 17:56:46 +00:00
Daniel Dunbar
db059592fe
Simplify.
...
llvm-svn: 102254
2010-04-24 17:56:39 +00:00
Anders Carlsson
7afe4245e2
Pass the base specifiers through to CheckDerivedToBaseConversion. No functionality change yet.
...
llvm-svn: 102250
2010-04-24 17:11:09 +00:00
Anders Carlsson
0c509eeac7
CastExpr should not hold a pointer to the base path. More cleanup.
...
llvm-svn: 102249
2010-04-24 16:57:13 +00:00
Douglas Gregor
ba41d01b59
Be more careful around dependent nested-name-specifiers, complaining
...
when they are not complete (since we could not match them up to
anything) and ensuring that enum parsing can cope with dependent
elaborated-type-specifiers. Fixes PR6915 and PR6649.
llvm-svn: 102247
2010-04-24 16:38:41 +00:00
Anders Carlsson
b34f88205f
isValue is set to false by default.
...
llvm-svn: 102246
2010-04-24 16:36:20 +00:00
Anders Carlsson
7d96cd7799
Rename InheritancePath to BasePath, rename CastExpr::CXXBaseVector to CXXBaseSpecifierArray. More to come.
...
llvm-svn: 102245
2010-04-24 16:34:21 +00:00
Douglas Gregor
bbdf20acd0
Keep track of when DependentNameTypes have no associated keyword
...
(e.g., no typename, enum, class, etc.), e.g., because the context is
one that is known to refer to a type. Patch from Enea Zaffanella!
llvm-svn: 102243
2010-04-24 15:35:55 +00:00
Benjamin Kramer
fb278831aa
Update prototypes.
...
llvm-svn: 102241
2010-04-24 08:26:17 +00:00
Dan Gohman
7905d187e6
Fix a place in inline asm lowering which was creating a TruncInst with a
...
pointer operand. This fixes an abort on
MultiSource/Applications/ClamAV/libclamav_mbox.c.
llvm-svn: 102238
2010-04-24 04:55:02 +00:00
John McCall
b9467b6c9a
Recommit r102215, this time being more careful to only set the "principal
...
declaration" (i.e. the only which will actually be looked up) to have the
non-member-operator bit.
llvm-svn: 102231
2010-04-24 01:30:58 +00:00
Nick Lewycky
784fad7a41
Teach clang -fixit to modify files in-place, or -fixit=suffix to create new
...
files with the additional suffix in the middle.
llvm-svn: 102230
2010-04-24 01:30:46 +00:00
Devang Patel
8471593892
Revert accidental check-in.
...
llvm-svn: 102226
2010-04-24 00:49:16 +00:00
Devang Patel
f8b55d478c
Revert r102215. This causes clang crash while compiling a test case from gdb testsuite.
...
llvm-svn: 102224
2010-04-24 00:40:35 +00:00
Fariborz Jahanian
0731763efc
With -fno-constant-cfstrrings, class NSConstantString
...
must be there or it is error (Next runtime).
llvm-svn: 102223
2010-04-23 23:19:04 +00:00
Douglas Gregor
e11ee11068
Rework Parser-Sema interface for Objective-C @catch exception object
...
arguments. Rather than having the parser call ActOnParamDeclarator
(which is a bit of a hack), call a new ActOnObjCExceptionDecl
action. We'll be moving more functionality into this handler to
perform earlier checking of @catch .
llvm-svn: 102222
2010-04-23 23:01:43 +00:00
Douglas Gregor
96c79498fb
Improve the AST representation of Objective-C @try/@catch/@finally
...
statements. Instead of the @try having a single @catch , where all of
the @catch's were chained (using an O(n^2) algorithm nonetheless),
@try just holds an array of its @catch blocks. The resulting AST is
slightly more compact (not important) and better represents the actual
language semantics (good).
llvm-svn: 102221
2010-04-23 22:50:49 +00:00
Fariborz Jahanian
d3fa70181d
More -fno-constant-cfstrings API work.
...
llvm-svn: 102219
2010-04-23 22:33:39 +00:00
Anders Carlsson
9759793855
Add an InheritancePath parameter to the ImplicitCastExpr constructor.
...
llvm-svn: 102218
2010-04-23 22:18:37 +00:00
John McCall
67b29a26df
Transition the last acceptable-result filter kind in LookupResult over to use
...
a simple IDNS mask by introducing a namespace for non-member operators.
llvm-svn: 102215
2010-04-23 21:37:18 +00:00
Argyrios Kyrtzidis
8d7bdba08c
Make Parser::ConsumeAndStoreUntil() more consistent with Parser::SkipUntil().
...
ConsumeAndStoreUntil would stop at tok::unknown when caching an inline method
definition while SkipUntil would go past it while parsing the method.
Fixes PR 6903.
llvm-svn: 102214
2010-04-23 21:20:12 +00:00
Anders Carlsson
c20f78c761
Destroy the inheritance path.
...
llvm-svn: 102211
2010-04-23 21:02:34 +00:00
Anders Carlsson
720130c0cf
Turn CXXMethodVector into a generic class template.
...
llvm-svn: 102208
2010-04-23 19:53:03 +00:00
Daniel Dunbar
e3883874c5
NeXT/EH: When generating the rethrow code for a finally block, make sure to
...
chain outwards when inside a nested exception scope.
- A real test for this is going into LLVM test-suite.
llvm-svn: 102204
2010-04-23 19:12:32 +00:00
Daniel Dunbar
5a6b3e0865
NeXT/EH: Tidy up EH code a bit, don't emit the catch block EH handler if it is unreachable.
...
llvm-svn: 102203
2010-04-23 19:12:24 +00:00
John McCall
e87beb2591
Recommit my change to how C++ does elaborated type lookups, now with
...
two bugfixes which fix selfhost and (hopefully) the nightly tests.
llvm-svn: 102198
2010-04-23 18:46:30 +00:00
Fariborz Jahanian
e804c28745
More work toward implementing
...
NeXt's -fno-constant-cfstrings - wip.
llvm-svn: 102189
2010-04-23 17:41:07 +00:00
Chris Lattner
db6d5cb892
Implement PR6845. We allow matching constraints to have different
...
input and output types when the smaller value isn't mentioned in the
asm string. Extend this support from integers to also allowing
fp values to be mismatched (if not mentioned in the asm string).
llvm-svn: 102188
2010-04-23 17:27:29 +00:00
Sebastian Redl
26a0f1cff9
Require a complete type for the lhs of member pointer dereference operations if the type isn't exactly the same as the container class. Fixes PR6783.
...
llvm-svn: 102186
2010-04-23 17:18:26 +00:00
Chris Lattner
1a8f394a1f
david conrad points out that {|} in inline assembly on arm are not asm
...
variants. This fixes neon inline asm which my patch for PR6780 broke.
llvm-svn: 102181
2010-04-23 16:29:58 +00:00
Douglas Gregor
83eb5032c0
When instantiating a typedef of an anonymous tag type, note in the tag
...
declaration that this typedef gives the tag a name. Fixes a problem
uncovered by Boost.GIL (Generic Image Library).
llvm-svn: 102180
2010-04-23 16:25:07 +00:00
Anders Carlsson
7a0ffdbe53
Cleanup.
...
llvm-svn: 102179
2010-04-23 16:24:12 +00:00
Anders Carlsson
423f5d85fd
Handle copy initialization in BuildImplicitMemberInitializer. Not used yet.
...
llvm-svn: 102178
2010-04-23 16:04:08 +00:00
Chris Lattner
092d1c9f64
add GNU C++ include paths for Fedora 11,12 x86_64,
...
patch by mikem!
llvm-svn: 102177
2010-04-23 15:55:20 +00:00
Daniel Dunbar
45b2d8ab42
Revert "C++ doesn't really use "namespaces" for different kinds of names the same", which seems to break most C++ nightly test apps.
...
llvm-svn: 102174
2010-04-23 13:07:39 +00:00
Douglas Gregor
914af2182b
Handle compound assignment expressions (i += j) as lvalues, which is
...
permitted in C++ but not in C. Fixes PR6900. Clang can now handle all
of Boost.Lambda's regression tests.
llvm-svn: 102170
2010-04-23 04:16:32 +00:00
Anders Carlsson
11373b5277
Add another 'catch all' access diagnostic.
...
llvm-svn: 102169
2010-04-23 03:41:35 +00:00
Douglas Gregor
ffe0884bc4
Emit a lame diagnostic when we can't mangle operator names
...
llvm-svn: 102168
2010-04-23 03:19:53 +00:00
Douglas Gregor
173627188d
Mangle dependent template names such as the nested-name-specifier in
...
T::apply <U>::type
Fixes PR6899, although I want to dig a little deeper into the FIXME
for dependent template names that refer to operators.
llvm-svn: 102167
2010-04-23 03:10:43 +00:00
Anders Carlsson
1b00e24d13
Add an ImplicitInitializerKind enum and pass it to BuildImplicitBaseInitializer and BuildImplicitMemberInitializer.
...
llvm-svn: 102166
2010-04-23 03:10:23 +00:00
Anders Carlsson
dca6be04db
Fix a think-o that broke self-host.
...
llvm-svn: 102165
2010-04-23 03:07:47 +00:00
John McCall
a245671ae0
C++ doesn't really use "namespaces" for different kinds of names the same
...
way that C does. Among other differences, elaborated type specifiers
are defined to skip "non-types", which, as you might imagine, does not
include typedefs. Rework our use of IDNS masks to capture the semantics
of different kinds of declarations better, and remove most current lookup
filters. Removing the last remaining filter is more complicated and will
happen in a separate patch.
Fixes PR 6885 as well some spectrum of unfiled bugs.
llvm-svn: 102164
2010-04-23 02:41:41 +00:00
Anders Carlsson
3c1db570b2
Factor code to initialize an implicit member out into a separate function.
...
llvm-svn: 102162
2010-04-23 02:15:47 +00:00