| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variables,
but the results are imperfect.
For posterity, I did:
cat <<EOF > $cmdfile
s/DeclaratorInfo/TypeSourceInfo/g
s/DInfo/TInfo/g
s/TypeTypeSourceInfo/TypeSourceInfo/g
s/SourceTypeSourceInfo/TypeSourceInfo/g
EOF
find lib -name '*.cpp' -not -path 'lib/Parse/*' -exec sed -i '' -f $cmdfile '{}' \;
find lib -name '*.h' -exec sed -i '' -f $cmdfile '{}' \;
find include -name '*.h' -not -path 'include/clang/Parse/*' -not -path 'include/clang/Basic/*' -exec sed -i '' -f $cmdfile '{}' \;
llvm-svn: 90743
|
|
|
|
|
|
| |
subsequent code which depends on a complete type does the right thing.
llvm-svn: 90727
|
|
|
|
| |
llvm-svn: 90710
|
|
|
|
|
|
| |
MaybeMarkVirtualImplicitMembersReferenced for non-inline functions.
llvm-svn: 90686
|
|
|
|
| |
llvm-svn: 90605
|
|
|
|
| |
llvm-svn: 90542
|
|
|
|
|
|
| |
create the enum type in the same scope as you would a record type.
llvm-svn: 90500
|
|
|
|
|
|
|
| |
a new virtual function is declared/instantiated. it is used
in couple of places.
llvm-svn: 90470
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instantiation, to ensure that we mark class template specilizations as
abstract when we need to and perform checking of abstract classes.
Also, move the checking that determines whether we are creating a
variable of abstract class type *after* we check whether the type is
complete. Otherwise, we won't see when we have an abstract class
template specialization that is implicitly instantiated by this
declaration. This is the "something else" that Sebastian had noted
earlier.
llvm-svn: 90467
|
|
|
|
|
|
| |
generated, we mark any virtual implicit member functions as referenced.
llvm-svn: 90327
|
|
|
|
|
|
|
| |
LookupResult::getAsSingleDecl() is no more. Shift Sema::LookupSingleName to
return null on overloaded results.
llvm-svn: 90309
|
|
|
|
|
|
|
| |
leaked data structure than before. This kills off the last remaining
explicit uses of OverloadedFunctionDecl in Sema.
llvm-svn: 90306
|
|
|
|
|
|
|
| |
isVirtual() before we've actually calculated whether the destructor is
virtual.
llvm-svn: 90303
|
|
|
|
|
|
|
| |
override virtual functions. Also, eliminate a (now redundant) call to
AddOverriddenMethods.
llvm-svn: 90242
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
common to both parsing and template instantiation, so that we'll find
overridden virtuals for member functions of class templates when they
are instantiated.
Additionally, factor out the checking for pure virtual functions, so
that it will be executed both at parsing time and at template
instantiation time.
These changes fix PR5656 (for real), although one more tweak
w.r.t. member function templates will be coming along shortly.
llvm-svn: 90241
|
|
|
|
|
|
| |
be defined as pure. Fixes PR5656.
llvm-svn: 90237
|
|
|
|
|
|
| |
those associated with TemplateNames.
llvm-svn: 90162
|
|
|
|
|
|
|
|
| |
Create a new UnresolvedMemberExpr for these lookups. Assorted hackery
around qualified member expressions; this will all go away when we
implement the correct (i.e. extremely delayed) implicit-member semantics.
llvm-svn: 90161
|
|
|
|
| |
llvm-svn: 90140
|
|
|
|
|
|
|
| |
function names outside of templates - they'll probably cause some damage there as
they're largely untested.
llvm-svn: 90064
|
|
|
|
| |
llvm-svn: 90057
|
|
|
|
|
|
| |
DeclarationName can't handle them yet, so right now Parser just errors out on them.
llvm-svn: 90027
|
|
|
|
| |
llvm-svn: 89983
|
|
|
|
| |
llvm-svn: 89966
|
|
|
|
|
|
| |
This fixes pr5611.
llvm-svn: 89895
|
|
|
|
|
|
|
|
|
|
|
| |
function templates (in C++98), friend function templates, and
out-of-line definitions of members of class templates.
Also handles merging of default template arguments from previous
declarations of function templates, for C++0x. However, we don't yet
make use of those default template arguments.
llvm-svn: 89872
|
|
|
|
|
|
|
|
|
|
| |
locations" into
a new class. Use it pervasively throughout Sema.
My fingers hurt.
llvm-svn: 89638
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type and fixes a long-standing code gen. crash reported in
at least two PRs and a radar. (radar 7405040 and pr5025).
There are couple of remaining issues that I would like for
Ted. and Doug to look at:
Ted, please look at failure in Analysis/MissingDealloc.m.
I have temporarily added an expected-warning to make the
test pass. This tests has a declaration of 'SEL' type which
may not co-exist with the new changes.
Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp.
I think the changes which I have ifdef'ed out are correct. They
need be considered for in a few Indexer/PCH test cases.
llvm-svn: 89561
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following attributes are currently supported in C++0x attribute
lists (and in GNU ones as well):
- align() - semantics believed to be conformant to n3000, except for
redeclarations and what entities it may apply to
- final - semantics believed to be conformant to CWG issue 817's proposed
wording, except for redeclarations
- noreturn - semantics believed to be conformant to n3000, except for
redeclarations
- carries_dependency - currently ignored (this is an optimization hint)
llvm-svn: 89543
|
|
|
|
|
|
|
|
|
|
|
|
| |
name 'T' is looked up in the expression
t.~T()
Previously, we weren't looking into the type of "t", and therefore
would fail when T actually referred to an injected-class-name. Fixes
PR5530.
llvm-svn: 89493
|
|
|
|
|
|
|
| |
rather than NamedDecl*. This is a major step towards eliminating
OverloadedFunctionDecl.
llvm-svn: 89263
|
|
|
|
| |
llvm-svn: 89248
|
|
|
|
| |
llvm-svn: 89199
|
|
|
|
|
|
|
|
|
|
| |
two classes, one for typenames and one for values; this seems to have some
support from Doug if not necessarily from the extremely-vague-on-this-point
standard. Track the location of the 'typename' keyword in a using-typename
decl. Make a new lookup result for unresolved values and deal with it in
most places.
llvm-svn: 89184
|
|
|
|
|
|
| |
destructors. Also fix PR5529.
llvm-svn: 89034
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LookupResult RAII powers to diagnose ambiguity in the results. Other diagnostics
(e.g. access control and deprecation) will be moved to automatically trigger
during lookup as part of this same mechanism.
This abstraction makes it much easier to encapsulate aliasing declarations
(e.g. using declarations) inside the lookup system: eventually, lookup will
just produce the aliases in the LookupResult, and the standard access methods
will naturally strip the aliases off.
llvm-svn: 89027
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sugared types. The basic problem is that our qualifier accessors
(getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at
the current QualType and not at any qualifiers that come from sugared
types, meaning that we won't see these qualifiers through, e.g.,
typedefs:
typedef const int CInt;
typedef CInt Self;
Self.isConstQualified() currently returns false!
Various bugs (e.g., PR5383) have cropped up all over the front end due
to such problems. I'm addressing this problem by splitting each
qualifier accessor into two versions:
- the "local" version only returns qualifiers on this particular
QualType instance
- the "normal" version that will eventually combine qualifiers from this
QualType instance with the qualifiers on the canonical type to
produce the full set of qualifiers.
This commit adds the local versions and switches a few callers from
the "normal" version (e.g., isConstQualified) over to the "local"
version (e.g., isLocalConstQualified) when that is the right thing to
do, e.g., because we're printing or serializing the qualifiers. Also,
switch a bunch of
Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType()
expressions over to
Context.hasSameUnqualifiedType(T1, T2)
llvm-svn: 88969
|
|
|
|
| |
llvm-svn: 88877
|
|
|
|
| |
llvm-svn: 88859
|
|
|
|
| |
llvm-svn: 88858
|
|
|
|
|
|
| |
clear out any remaining temporaries so they aren't seen later.
llvm-svn: 88834
|
|
|
|
|
|
| |
definitions just because the type happens to be an array type.
llvm-svn: 88752
|
|
|
|
|
|
| |
constructor-template-as-copy-constructor issue. Big thanks to John for finding this
llvm-svn: 88724
|
|
|
|
|
|
| |
constructor. Make sure that such declarations can never be formed.
llvm-svn: 88718
|
|
|
|
| |
llvm-svn: 88679
|
|
|
|
|
|
| |
a using declaration.
llvm-svn: 86942
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handling template template parameters properly. This refactoring:
- Parses template template arguments as id-expressions, representing
the result of the parse as a template name (Action::TemplateTy)
rather than as an expression (lame!).
- Represents all parsed template arguments via a new parser-specific
type, ParsedTemplateArgument, which stores the kind of template
argument (type, non-type, template) along with all of the source
information about the template argument. This replaces an ad hoc
set of 3 vectors (one for a void*, which was either a type or an
expression; one for a bit telling whether the first was a type or
an expression; and one for a single source location pointing at
the template argument).
- Moves TemplateIdAnnotation into the new Parse/Template.h. It never
belonged in the Basic library anyway.
llvm-svn: 86708
|
|
|
|
|
|
|
| |
ArrayType>()) does not instantiate. Update all callers that used this
unsafe feature to use the appropriate ASTContext::getAs*ArrayType method.
llvm-svn: 86596
|
|
|
|
|
|
| |
linkage specs. Fixes PR5430.
llvm-svn: 86461
|
|
|
|
| |
llvm-svn: 86352
|