| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
(fixes radar 7442244).
llvm-svn: 90773
|
| |
|
|
| |
llvm-svn: 90758
|
| |
|
|
| |
llvm-svn: 90757
|
| |
|
|
| |
llvm-svn: 90756
|
| |
|
|
|
|
| |
function, we now wait until the end of the translation unit to mark its virtual member functions as references. This lays the groundwork for fixing PR5557.
llvm-svn: 90752
|
| |
|
|
| |
llvm-svn: 90745
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
This time with a fix to bail out when in a dependent context.
llvm-svn: 90730
|
| |
|
|
|
|
| |
subsequent code which depends on a complete type does the right thing.
llvm-svn: 90727
|
| |
|
|
|
|
| |
thinko in a PointerUnion::get call.
llvm-svn: 90719
|
| |
|
|
|
|
| |
to fix it ATM.
llvm-svn: 90717
|
| |
|
|
|
|
|
| |
llvm::DenseMap, for a 20% performance improvement in the
Cocoa-big-list performance benchmark.
llvm-svn: 90715
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
intended. On the first testcase in the bug, we now produce:
cxx-decl.cpp:12:2: error: unexpected ':' in nested name specifier
y:a a2;
^
::
instead of:
t.cc:8:1: error: C++ requires a type specifier for all declarations
x:a a2;
^
t.cc:8:2: error: invalid token after top level declarator
x:a a2;
^
;
t.cc:9:11: error: use of undeclared identifier 'a2'
x::a a3 = a2;
^
llvm-svn: 90713
|
| |
|
|
| |
llvm-svn: 90710
|
| |
|
|
|
|
| |
Fixes PR5695.
llvm-svn: 90702
|
| |
|
|
|
|
| |
MaybeMarkVirtualImplicitMembersReferenced for non-inline functions.
llvm-svn: 90686
|
| |
|
|
|
|
| |
it gets called during template instantiation.
llvm-svn: 90682
|
| |
|
|
| |
llvm-svn: 90663
|
| |
|
|
| |
llvm-svn: 90662
|
| |
|
|
|
|
| |
ordinary names with Cocoa.h included, by drastically improving the performance of our results sorting.
llvm-svn: 90661
|
| |
|
|
| |
llvm-svn: 90647
|
| |
|
|
| |
llvm-svn: 90614
|
| |
|
|
| |
llvm-svn: 90605
|
| |
|
|
|
|
| |
before declaration is finalized.
llvm-svn: 90600
|
| |
|
|
| |
llvm-svn: 90555
|
| |
|
|
| |
llvm-svn: 90549
|
| |
|
|
| |
llvm-svn: 90542
|
| |
|
|
|
|
|
| |
as a constant integer. Also, some minor cleanup and improvements to the
diagnostics.
llvm-svn: 90504
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
need to copy its attributes down to the instantiated class.
llvm-svn: 90463
|
| |
|
|
|
|
|
|
|
|
|
| |
temporaries that are within our current evaluation context. That way,
nested evaluation contexts (e.g., within a sizeof() expression) won't
see temporaries from outer contexts. Also, make sure to push a new
evaluation context when instantiating the initializer of a variable;
this may be an unevaluated context or a potentially-evaluated context,
depending on whether it's an in-class initializer or not. Fixes PR5672.
llvm-svn: 90460
|
| |
|
|
|
|
|
|
|
|
|
| |
overloaded-operator resolution is wildly untested, but the parallel code for
methods seems to satisfy some trivial tests.
Also change some overload-resolution APIs to take a type instead of an expression,
which lets us avoid creating a spurious CXXThisExpr when resolving implicit
member accesses.
llvm-svn: 90410
|
| |
|
|
|
|
|
|
|
| |
results in them (which we were doing intentionally as a stopgap). Fix
an DeclContext lookup-table ordering problem which was causing UsingDecls to
show up incorrectly when looking for ordinary results. And oh hey
Clang-Code-Syntax passes now.
llvm-svn: 90367
|
| |
|
|
|
|
|
| |
constructor, by keeping the DeclaratorInfo* rather than just the type
and a single location.
llvm-svn: 90355
|
| |
|
|
|
|
| |
that this was causing a problem, but it could have.
llvm-svn: 90343
|
| |
|
|
|
|
| |
members. Fixes PR5667.
llvm-svn: 90341
|
| |
|
|
|
|
| |
generated, we mark any virtual implicit member functions as referenced.
llvm-svn: 90327
|
| |
|
|
| |
llvm-svn: 90313
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
it's rare, but possible, for the difference to be significant.
llvm-svn: 90301
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
there's nothing interesting we can say now that we're correctly not requiring
the qualifier to name a known base class in dependent contexts.
Require scope specifiers on member access expressions to name complete types
if they're not dependent; delay lookup when they are dependent.
Use more appropriate diagnostics when qualified implicit member access
expressions find declarations from unrelated classes.
llvm-svn: 90289
|
| |
|
|
|
|
| |
Fixes pr5660.
llvm-svn: 90283
|
| |
|
|
|
|
| |
Gets clang-on-clang passing again.
llvm-svn: 90270
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implicit member access to a specific declaration, go ahead and create
it as a DeclRefExpr or a MemberExpr (with implicit CXXThisExpr base) as
appropriate. Otherwise, create an UnresolvedMemberExpr or
DependentScopeMemberExpr with a null base expression.
By representing implicit accesses directly in the AST, we get the ability
to correctly delay the decision about whether it's actually an instance
member access or not until resolution is complete. This permits us
to correctly avoid diagnosing the 'problem' of 'MyType::foo()'
where the relationship to the type isn't really known until instantiation.
llvm-svn: 90266
|
| |
|
|
|
|
| |
to use it so it at least won't try to access Sema once it is gone.
llvm-svn: 90261
|
| |
|
|
|
|
|
| |
override virtual functions. Also, eliminate a (now redundant) call to
AddOverriddenMethods.
llvm-svn: 90242
|