| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
don't check covariance but that's next.
llvm-svn: 71759
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template<typename T>
struct X {
struct Inner;
};
template struct X<int>::Inner;
This change is larger than it looks because it also fixes some
a problem with nested-name-specifiers and tags. We weren't requiring
the DeclContext associated with the scope specifier of a tag to be
complete. Therefore, when looking for something like "struct
X<int>::Inner", we weren't instantiating X<int>.
This, naturally, uncovered a problem with member pointers, where we
were requiring the left-hand side of a member pointer access
expression (e.g., x->*) to be a complete type. However, this is wrong:
the semantics of this expression does not require a complete type (EDG
agrees).
Stuart vouched for me. Blame him.
llvm-svn: 71756
|
| |
|
|
|
|
| |
dispatch arguments which have sentinel attribute.
llvm-svn: 71737
|
| |
|
|
|
|
| |
debug info.
llvm-svn: 71736
|
| |
|
|
| |
llvm-svn: 71721
|
| |
|
|
|
|
| |
diagnostic IDs.
llvm-svn: 71720
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
cf_returns_retained. Currently this attribute can now be applied to any
Objective-C method or C function that returns a pointer or Objective-C object
type.
Modify the tablegen definition of diagnostic 'warn_attribute_wrong_decl_type' to
expect that the diagnostics infrastructure will add quotes around the attribute
name when appropriate. Alonq with this change, I modified the places where this
warning is issued to passed the attribute's IdentifierInfo* instead of having a
hard-coded C constant string.
llvm-svn: 71718
|
| |
|
|
|
|
|
|
| |
of class members (recursively). Only member classes are actually
instantiated; the instantiation logic for member functions and
variables are just stubs.
llvm-svn: 71713
|
| |
|
|
|
|
| |
-faccess-control option. When we have better support for it, we can enable it by default again.
llvm-svn: 71706
|
| |
|
|
|
|
| |
uninitialized values.
llvm-svn: 71700
|
| |
|
|
| |
llvm-svn: 71698
|
| |
|
|
|
|
|
|
| |
coercion to be specified which truncates padding bits. It would be
nice to still have the assert, but we don't have any API call for the
unpadding size of a type yet.
llvm-svn: 71695
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
templates. In particular:
- An explicit instantiation can follow an implicit instantiation (we
were improperly diagnosing this as an error, previously).
- In C++0x, an explicit instantiation that follows an explicit
specialization of the same template specialization is ignored. In
C++98, we just emit an extension warning.
- In C++0x, an explicit instantiation must be in a namespace
enclosing the original template. C++98 has no such requirement.
Also, fixed a longstanding FIXME regarding the integral type that is
used for the size of a constant array type when it is being instantiated.
llvm-svn: 71689
|
| |
|
|
|
|
|
|
| |
generation when EvalObjCMessageExpr() did not resolve the
ObjCInterfaceDecl* for a receiver when the receiver's symbolic value
wasn't being explicitly tracked.
llvm-svn: 71685
|
| |
|
|
|
|
|
| |
message dispatches (and function calls later). No change in
functionality.
llvm-svn: 71683
|
| |
|
|
|
|
| |
Used simple array for Selector build.
llvm-svn: 71674
|
| |
|
|
|
|
|
|
|
| |
NumArgs && "Arg access out of range!").
For format string checking, only check the type of the format
specifier for non-vararg functions.
llvm-svn: 71672
|
| |
|
|
|
|
| |
autorelease tracking.
llvm-svn: 71647
|
| |
|
|
| |
llvm-svn: 71643
|
| |
|
|
|
|
|
|
| |
It seems dubious to me that isIntegerType() returns true for
vectors of integers, but not complex integers. This should
probably be rethought, I'll file a bugzilla.
llvm-svn: 71640
|
| |
|
|
|
|
| |
rdar://6880104
llvm-svn: 71639
|
| |
|
|
|
|
| |
now until someone does it right
llvm-svn: 71638
|
| |
|
|
|
|
| |
rdar://6880573
llvm-svn: 71637
|
| |
|
|
|
|
| |
rdar://6880573
llvm-svn: 71636
|
| |
|
|
| |
llvm-svn: 71634
|
| |
|
|
|
|
|
|
|
| |
don't support. While it would be nice to support this eventually,
this form is not common at all (just seen in gcc testsuite) and
it might be better to model vector_size as a type attribute anyway.
For now just emit a nice error on it.
llvm-svn: 71633
|
| |
|
|
|
|
|
|
| |
(__NSConcreteGlobalBlock2)
by using the appropriate CGM interface instead of directly creating a global.
llvm-svn: 71617
|
| |
|
|
|
|
|
|
|
| |
two empty arguments. Also, add an assert so that this bug
manifests as an assertion failure, not a valgrind problem.
This fixes rdar://6880648 - [cpp] crash in ArgNeedsPreexpansion
llvm-svn: 71616
|
| |
|
|
|
|
|
|
| |
still aren't instantiating the definitions of class template members,
and core issues 275 and 259 will both affect the checking that we do
for explicit instantiations (but are not yet implemented).
llvm-svn: 71613
|
| |
|
|
|
|
|
|
|
| |
template class X<int>;
This also cleans up the propagation of template information through
declaration parsing, which is used to improve some diagnostics.
llvm-svn: 71608
|
| |
|
|
|
|
|
|
| |
extension.
This implements rdar://6880449 - improve diagnostic for usage of "global register variable" GCC extension
llvm-svn: 71599
|
| |
|
|
|
|
| |
template parameters.
llvm-svn: 71598
|
| |
|
|
|
|
| |
declarations.
llvm-svn: 71597
|
| |
|
|
|
|
|
|
|
|
| |
parse just a single declaration and provide a reasonable diagnostic
when the "only one declarator per template declaration" rule is
violated. This eliminates some ugly, ugly hackery where we used to
require thatn the layout of a DeclGroup of a single element be the
same as the layout of a single declaration.
llvm-svn: 71596
|
| |
|
|
| |
llvm-svn: 71595
|
| |
|
|
|
|
|
|
|
| |
to allow us to support generation of deferred ctors/dtors.
It looks like codegen isn't emitting a call to the dtor in
member-functions.cpp:test2, but when it does, its body should
get emitted.
llvm-svn: 71594
|
| |
|
|
|
|
|
|
|
| |
static
functions and methods declared inline, but not ctors/dtors or methods not declared
inline (apparently my previous patch wasn't good enough).
llvm-svn: 71591
|
| |
|
|
| |
llvm-svn: 71590
|
| |
|
|
|
|
|
| |
Per the FIXME, it might be interesting to track whether the inline keyword
was also used on the method, but for now we don't do this. Testcase pending.
llvm-svn: 71589
|
| |
|
|
| |
llvm-svn: 71586
|
| |
|
|
| |
llvm-svn: 71585
|
| |
|
|
| |
llvm-svn: 71583
|
| |
|
|
|
|
|
|
|
| |
owned by caller
Now 'init' methods are treated by the retain/release checker as
claiming their receiver and allocating a new object.
llvm-svn: 71579
|
| |
|
|
|
|
|
| |
selectors which need use Nonfrgile API for
message dispatch.
llvm-svn: 71578
|
| |
|
|
| |
llvm-svn: 71572
|
| |
|
|
|
|
| |
only and used in class imllementations (objc2 Nonfragile ABI specific).
llvm-svn: 71571
|
| |
|
|
|
|
| |
don't need special treatment for unions.
llvm-svn: 71559
|
| |
|
|
|
|
|
| |
register.
- Merge algorithm was returning MEMORY as it should.
llvm-svn: 71556
|
| |
|
|
|
|
|
|
|
| |
array region, set its default value to conjured symbol. When retrieving its
element, create new region value symbol for the element.
Also fix some 80 columns violations.
llvm-svn: 71548
|
| |
|
|
|
|
|
|
| |
same treatment as CF objects
This was accomplished by having 'isTypeRef' recursively walk the typedef stack.
llvm-svn: 71538
|