Fariborz Jahanian
2e8074bfc3
Further improvement to point to category
...
whose protocolls methods needs implementation.
llvm-svn: 99730
2010-03-27 21:10:05 +00:00
Anders Carlsson
174376629a
Give thunks the same linkage as their original methods.
...
llvm-svn: 99729
2010-03-27 20:50:27 +00:00
Fariborz Jahanian
97752f7c95
Improve diagnostics on incomplete implementation
...
of objc classes; including which methods
need be implemented and where they come from.
WIP.
llvm-svn: 99724
2010-03-27 19:02:17 +00:00
John McCall
3dc81f77f6
Accumulate all functions and classes that the effective context is
...
nested within, and suddenly local classes start working. Wouldn't be
necessary if I hadn't used local classes in Clang in the first place.
Or, well, wouldn't be necessary yet. :)
llvm-svn: 99709
2010-03-27 06:55:49 +00:00
John McCall
2f88d7d72c
Implement method friends in class templates and fix a few related problems.
...
llvm-svn: 99708
2010-03-27 05:57:59 +00:00
Rafael Espindola
adcc1d18e2
When given the magic class __cxxabiv1::__fundamental_type_info, produce
...
the typeinfo for the fundamental types.
Fixes PR6685.
llvm-svn: 99701
2010-03-27 02:52:14 +00:00
John McCall
39ec71f2e9
When mapping restrict to noalias, look for 'restrict' on the parameter variable
...
instead of the canonical parameter type (which has correctly dropped all such
direct qualifiers). Fixes PR6695.
llvm-svn: 99688
2010-03-27 00:47:27 +00:00
Douglas Gregor
78d315f646
Remove unused static function
...
llvm-svn: 99666
2010-03-26 23:25:35 +00:00
John McCall
30837102a2
Put function templates instantiated from friend declarations in the correct
...
lexical context. This is required for ADL to work properly; fixes PR6716.
llvm-svn: 99665
2010-03-26 23:10:15 +00:00
Douglas Gregor
4667effa8b
Compare namespaces properly when looking for redeclarations of
...
namespace aliases. Fixes PR6341.
llvm-svn: 99664
2010-03-26 22:59:39 +00:00
Ted Kremenek
0f250e4c5b
Fix NoReturnFunctionChecker to properly look at a function's type
...
when determining if it returns. Fixes <rdar://problem/7796563>.
llvm-svn: 99663
2010-03-26 22:57:13 +00:00
Ted Kremenek
ee0934e05d
Add comment indicating that we intentionally don't add the noreturn
...
attribute to a FunctionDecl.
llvm-svn: 99662
2010-03-26 22:57:10 +00:00
Douglas Gregor
c14922f14a
When adding initializers to a constructor, be sure that we are looking
...
through the bases and fields of the definition of the class in which
the constructor is declared, rather than some other declaration of
that class.
llvm-svn: 99661
2010-03-26 22:43:07 +00:00
Daniel Dunbar
9abbebedc8
Driver/Darwin: Support CCC_ENABLE_NEW_DARWIN_TOOLCHAIN as an environment
...
override to enable use of the DarwinClang tool chain on all platforms (not just
ARM).
llvm-svn: 99660
2010-03-26 22:41:03 +00:00
John McCall
93cc732ffc
Properly account for redeclarations when explicitly instantiating class templates.
...
What happens here is that we actually turn the first declaration into a
definition, regardless of whether it was actually originally a definition,
and furthermore we do this all after we've instantiated all the declarations.
This exposes a bug in my DefinitionData patch where it was only setting the
DefinitionData for previous declarations, not future declarations.
Fortunately, there's an iterator for that.
llvm-svn: 99657
2010-03-26 21:56:38 +00:00
Douglas Gregor
f9edf80c39
When trying to determine whether one operand of a conditional
...
expression can be converted to the type of another, only apply the
lvalue-to-rvalue conversion to the type of the expression we're
converting, *not* the array-to-pointer or function-to-pointer
conversions. Fixes PR6595.
llvm-svn: 99652
2010-03-26 20:59:55 +00:00
Douglas Gregor
34147278ea
Eliminate the non-InitializedEntity PerformCopyInitialization() and
...
re-route its only caller to the newer
PerformCopyInitialization(). We're down to one remaining caller of
Sema::CheckReferenceInit.
llvm-svn: 99650
2010-03-26 20:35:59 +00:00
Daniel Dunbar
6a6199de67
Fix 80 col violations.
...
llvm-svn: 99648
2010-03-26 20:17:17 +00:00
Douglas Gregor
838fcc318a
Switch semantic analysis of the conditional operator from using
...
CheckReferenceInit to using the new initialization sequence code.
llvm-svn: 99647
2010-03-26 20:14:36 +00:00
Daniel Dunbar
b9e176b0ec
Runtime: Install the new libcc_kext.a produced by the clang_darwin compiler-rt
...
configuration.
llvm-svn: 99641
2010-03-26 19:37:38 +00:00
Chris Lattner
8c5d05a299
fix a case where macro expansion should be disabled, patch by
...
Abramo Bagnara!
llvm-svn: 99626
2010-03-26 17:49:16 +00:00
Chris Lattner
80dbccd1bf
fix a bug in paste avoidance which would cause us to accidentally
...
form a >>=. Patch by Abramo Bagnara, testcase by me.
llvm-svn: 99624
2010-03-26 17:10:02 +00:00
Nick Lewycky
3cfe6af8b5
Implement new mangling for vectors.
...
llvm-svn: 99616
2010-03-26 07:18:04 +00:00
Douglas Gregor
f956b35f98
Do not mark the destructor of a function parameter's type. Fixes PR6709.
...
llvm-svn: 99615
2010-03-26 06:57:13 +00:00
Anders Carlsson
aaf8acfea1
Revert r99612 and see if it fixes self-host.
...
llvm-svn: 99614
2010-03-26 06:35:42 +00:00
Anders Carlsson
6fffc64dd2
Don't initialize virtual pointers for primary bases, they've already been initialized.
...
llvm-svn: 99612
2010-03-26 05:53:12 +00:00
Douglas Gregor
0a29a05f02
When deducing an integral template argument for a non-type template
...
parameter, keep the integral value exactly as it was in the source
code rather than trying to convert it to the type of the non-type
template parameter (which may still be dependent!). The value will
then be converted to the appropriate type once we check the resulting
template arguments. Fixes PR6707.
llvm-svn: 99611
2010-03-26 05:50:28 +00:00
John McCall
e0b2ddb492
Reapply r99596 with a fix: link an instantiated friend function to its
...
pattern if it has a body.
llvm-svn: 99610
2010-03-26 04:53:08 +00:00
Anders Carlsson
1f9348c1fc
Simplify InitializeVtablePtrs in preparation of making it work with construction vtables.
...
llvm-svn: 99609
2010-03-26 04:39:42 +00:00
Anders Carlsson
f1a994ce33
Add and implement CodeGenVTables::getSecondaryVirtualPointerIndex (not used yet).
...
llvm-svn: 99608
2010-03-26 04:23:58 +00:00
Anders Carlsson
92d95f2f7b
Use the new vtable layout code for construction vtables.
...
llvm-svn: 99606
2010-03-26 04:13:46 +00:00
Anders Carlsson
5670d96524
More cleanup.
...
llvm-svn: 99605
2010-03-26 04:10:39 +00:00
Anders Carlsson
a208b3997d
Way more VTT builder cleanup.
...
llvm-svn: 99604
2010-03-26 03:56:54 +00:00
John McCall
1a78217721
Apparently that didn't work. Reverting for now.
...
llvm-svn: 99601
2010-03-26 02:38:45 +00:00
Douglas Gregor
bb3d786213
Reinstate change to non-type template arguments of integral type, so
...
that we extend/truncate then correct the sign to convert the non-type
template argument to the template parameter's type. Previously, we
reported an error when the non-type template argument was out of
range; now we just warn.
llvm-svn: 99600
2010-03-26 02:38:37 +00:00
John McCall
a5beaf6958
Properly instantiate and link in friend function templates.
...
llvm-svn: 99596
2010-03-26 02:05:14 +00:00
Anders Carlsson
45bd753b4a
More VTT builder cleanup.
...
llvm-svn: 99588
2010-03-26 00:58:21 +00:00
Eric Christopher
bd9a3aecd6
This is just a simple v4si * v4si, make it so.
...
llvm-svn: 99587
2010-03-26 00:51:28 +00:00
Anders Carlsson
c1b4747d5a
More VTT cleanup.
...
llvm-svn: 99586
2010-03-26 00:50:17 +00:00
Douglas Gregor
a14cb9fd38
Revert attempted fix for integral template arguments. It seems to have broken tramp3d-v4.
...
llvm-svn: 99583
2010-03-26 00:39:40 +00:00
Rafael Espindola
5b33408481
Mark virtual methods that are used in tables included in VTTs as used.
...
Fixes PR6706.
llvm-svn: 99582
2010-03-26 00:36:59 +00:00
Anders Carlsson
e67698bd73
Start cleaning up the VTT builder to make it work more like the VTable builder.
...
llvm-svn: 99581
2010-03-26 00:35:45 +00:00
Anders Carlsson
382a96550b
Remove some VTT builder arguments that were always zero.
...
llvm-svn: 99576
2010-03-26 00:11:51 +00:00
Douglas Gregor
63eed63312
Warn when the conversion of an integral non-type template argument to
...
the type of its corresponding non-type template parameter changes the
value. Previously, we were diagnosing this as an error, which was
wrong. We give reasonably nice warnings like:
test/SemaTemplate/temp_arg_nontype.cpp💯 10: warning: non-type template
argument value '256' truncated to '0' for template parameter of type
'unsigned char'
Overflow<256> *overflow3; // expected-warning{{non-type template ...
^~~
test/SemaTemplate/temp_arg_nontype.cpp:96:24: note: template parameter is
declared here
template<unsigned char C> struct Overflow;
^
llvm-svn: 99561
2010-03-25 22:21:04 +00:00
Douglas Gregor
210b590562
Teach the diagnostic engine to provide more detailed information about
...
how to handle a diagnostic during template argument deduction, which
may be "substitution failure", "suppress", or "report". This keeps us
from, e.g., emitting warnings while performing template argument
deduction.
llvm-svn: 99560
2010-03-25 22:17:48 +00:00
John McCall
e99d5f3044
When finishing a function definition, leave the function definition *after*
...
doing all the cleanup tasks and checks. This gives us the proper context for
checking access to base and member destructors.
llvm-svn: 99559
2010-03-25 22:08:03 +00:00
Fariborz Jahanian
f9c4585c80
Fix a code gen. bug involving generation of getter method
...
from properties of _Complex type. (radar 7351147).
llvm-svn: 99558
2010-03-25 21:56:43 +00:00
Anders Carlsson
151b062fee
Don't add address points for virtual primary bases that aren't primary bases in the complete class.
...
llvm-svn: 99555
2010-03-25 21:45:14 +00:00
John McCall
27e70baa55
Fix a very minor oversight in privileges-elevation: we were only considering
...
friendship for a derived class if the base class specifier was non-public,
and thus not considering friendship for non-public members of public bases.
llvm-svn: 99554
2010-03-25 21:39:55 +00:00
John McCall
e9eaf8e0f8
Handle simple friend-class decls in class templates better by ensuring that
...
we look for shadow friend decls in the appropriate scope before injecting
a new declaration.
llvm-svn: 99552
2010-03-25 21:28:06 +00:00