| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compilation using g++ v3.4.
I'll watch the buildbots and back out if necessary.
Feel free to do the same if something breaks.
Without this patch I get (on g++ 3.4.6) following error:
In file included from clang/lib/Sema/SemaTemplate.cpp:14:
clang/lib/Sema/TreeTransform.h: In member function `clang::ASTOwningResult<&clang::ActionBase::DeleteExpr> clang::TreeTransform<Derived>::RebuildCXXPseudoDestructorExpr(clang::ASTOwningResult<&clang::ActionBase::DeleteExpr>, clang::SourceLocation, bool, clang::NestedNameSpecifier*, clang::SourceRange, clang::TypeSourceInfo*, clang::SourceLocation, clang::SourceLocation, clang::PseudoDestructorTypeStorage)':
clang/lib/Sema/TreeTransform.h:5784: error: expected primary-expression before '>' token
clang/lib/Sema/TreeTransform.h:5784: error: expected primary-expression before ')' token
make[4]: *** [clang/lib/Sema/Release/SemaTemplate.o] Error 1
llvm-svn: 97136
|
|
|
|
|
|
|
|
|
|
|
| |
skip the object argument conversion if either of the candidates didn't
initialize it.
Fixes PR6421, which is such a very straightforward extension of PR6398 that I
should have worked it into the last test case (and therefore caught it then).
Ah well.
llvm-svn: 97135
|
|
|
|
|
|
| |
cases.
llvm-svn: 97134
|
|
|
|
| |
llvm-svn: 97131
|
|
|
|
|
|
| |
GRExprEngine::ProcessCallExit().
llvm-svn: 97129
|
|
|
|
|
|
|
|
| |
types. Rank these conversions below other conversions. This allows overload
resolution when the only distinction is between a complex and scalar type. It
also brings the complex overload resolutin in line with GCC's.
llvm-svn: 97128
|
|
|
|
| |
llvm-svn: 97127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the CallEnter/CallExit idea of Ted.
Add two interfaces to GRSubEngine: ProcessCallEnter, ProcessCallExit.
The CallEnter program point uses caller's location context. The
CallExit program point uses callee's location context.
CallEnter is built by GRStmtNodeBuilder. CallExit is built by
GREndPathNodeBuilder.
llvm-svn: 97122
|
|
|
|
|
|
|
|
|
|
|
|
| |
for calls
to various MacOS X functions. The checks in BasicObjCFoundationChecks.cpp will
gradually be migrated here.
As a first check, check that when 'dispatch_once()' is passed a predicate value
that has non-local storage.
llvm-svn: 97116
|
|
|
|
| |
llvm-svn: 97115
|
|
|
|
|
|
| |
so get the name from Var rather than the original decl.
llvm-svn: 97114
|
|
|
|
| |
llvm-svn: 97113
|
|
|
|
|
|
|
|
|
| |
class types, dependent types, and namespaces. I had previously
weakened this invariant while working on parsing pseudo-destructor
expressions, but recent work in that area has made these changes
unnecessary.
llvm-svn: 97112
|
|
|
|
| |
llvm-svn: 97111
|
|
|
|
|
|
|
|
|
|
| |
This is the way I would like to move the frontend function towards -- distinct
pieces of functionality should be exposed only via FrontendAction
implementations which have clean and relatively-stable APIs.
This also isolates the surface area in clang which depends on LLVM CodeGen.
llvm-svn: 97110
|
|
|
|
| |
llvm-svn: 97109
|
|
|
|
| |
llvm-svn: 97107
|
|
|
|
| |
llvm-svn: 97106
|
|
|
|
|
|
|
|
| |
unused
when it is explicitly marked as unused via __attribute__((unused)).
llvm-svn: 97104
|
|
|
|
| |
llvm-svn: 97103
|
|
|
|
|
|
| |
messages with.
llvm-svn: 97101
|
|
|
|
|
|
| |
instantiation changes.
llvm-svn: 97095
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions that look like pseudo-destructors, e.g.,
p->T::~T()
where p has dependent type.
At template instantiate time, we determine whether we actually have a
pseudo-destructor or a member access, and funnel down to the
appropriate routine in Sema.
Fixes PR6380.
llvm-svn: 97092
|
|
|
|
|
|
|
| |
When diagnosing bad conversions, skip the conversion for ignored object
arguments. Fixes PR 6398.
llvm-svn: 97090
|
|
|
|
|
|
|
|
|
|
|
| |
for calls
to various unix/posix functions, e.g. 'open()'.
As a first check, check that when 'open()' is passed 'O_CREAT' that it has
a third argument.
llvm-svn: 97086
|
|
|
|
| |
llvm-svn: 97085
|
|
|
|
| |
llvm-svn: 97084
|
|
|
|
|
|
| |
trim whitespace.
llvm-svn: 97083
|
|
|
|
| |
llvm-svn: 97082
|
|
|
|
| |
llvm-svn: 97080
|
|
|
|
|
|
|
|
|
|
|
| |
CXXPseudoDestructorExpr.
Update template instantiation for pseudo-destructor expressions to use
this source information and to make use of
Sema::BuildPseudoDestructorExpr when the base expression is dependent
or refers to a scalar type.
llvm-svn: 97079
|
|
|
|
|
|
|
|
| |
type-specifier-seq. Fixes some conditional-jump-on-unitialized-value
errors in valgrind. Also counts as attempt #2 at making the MSVC
buildbot happy.
llvm-svn: 97077
|
|
|
|
|
|
| |
pseudo-destructor expression. Attempt #1 at fixing the MSVC buildbot.
llvm-svn: 97076
|
|
|
|
|
|
|
| |
blocks use variables not used in any of the outer blocks.
(Fixes radar 7682149).
llvm-svn: 97073
|
|
|
|
|
|
|
|
| |
parser's data structures and the part that performs semantic analysis
and AST building, in preparation for improved template instantiation
of pseudo-destructor expressions.
llvm-svn: 97070
|
|
|
|
|
|
| |
be different for the same overrider in different parts of the vtable.
llvm-svn: 97068
|
|
|
|
| |
llvm-svn: 97067
|
|
|
|
| |
llvm-svn: 97066
|
|
|
|
|
|
|
|
| |
pseudo-destructor expression such as
p->T::~T()
llvm-svn: 97060
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pseudo-destructor expressions, and builds the CXXPseudoDestructorExpr
node directly. Currently, this only affects pseudo-destructor
expressions when they are parsed, but not after template
instantiation. That's coming next...
Improve parsing of pseudo-destructor-names. When parsing the
nested-name-specifier and we hit the sequence of tokens X :: ~, query
the actual module to determine whether X is a type-name (in which case
the X :: is part of the pseudo-destructor-name but not the
nested-name-specifier) or not (in which case the X :: is part of the
nested-name-specifier).
llvm-svn: 97058
|
|
|
|
|
|
|
| |
on non-darwin platforms. Fixes PR6411. Test case doesn't reduce,
unfortunately.
llvm-svn: 97055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
destructor calls, e.g.,
p->T::~T
We now detect when the member access that we've parsed, e.g.,
p-> or x.
may be a pseudo-destructor expression, either because the type of p or
x is a scalar or because it is dependent (and, therefore, may become a
scalar at template instantiation time).
We then parse the pseudo-destructor grammar specifically:
::[opt] nested-name-specifier[opt] type-name :: ∼ type-name
and hand those results to a new action, ActOnPseudoDestructorExpr,
which will cope with both dependent member accesses of destructors and
with pseudo-destructor expressions.
This commit affects the parsing of pseudo-destructors, only; the
semantic actions still go through the semantic actions for member
access expressions. That will change soon.
llvm-svn: 97045
|
|
|
|
|
|
| |
not a primary base in the complete class hierarchy.
llvm-svn: 97039
|
|
|
|
|
|
| |
Fixes PR6373.
llvm-svn: 97037
|
|
|
|
|
|
|
|
|
|
|
| |
a common source of oddities and, in theory, removes some redundant ABI
computations. Also fixes a miscompile I introduced yesterday by refactoring
some code and causing a slightly different code path to be taken that
didn't perform *parameter* type canonicalization, just normal type
canonicalization; this in turn caused a bit of ABI code to misfire because
it was looking for 'double' or 'float' but received 'const float'.
llvm-svn: 97030
|
|
|
|
|
|
|
| |
apply it only to the function itself, and never to the return type. Fixes part
of PR6408.
llvm-svn: 97015
|
|
|
|
|
|
| |
analysis needs this.
llvm-svn: 97014
|
|
|
|
|
|
| |
a block pointer type. Fixes radar 7682149.
llvm-svn: 97008
|
|
|
|
| |
llvm-svn: 97005
|
|
|
|
| |
llvm-svn: 97002
|