| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 108375
|
|
|
|
|
|
|
|
|
|
| |
definition, we're likely going to end up breaking the invariants of
the template system, e.g., that the depths of template parameter lists
match up with the nesting template of the template. So, make sure we
mark such ill-formed declarations as invalid or don't even build them
at all.
llvm-svn: 108372
|
|
|
|
| |
llvm-svn: 108363
|
|
|
|
| |
llvm-svn: 108354
|
|
|
|
|
|
|
| |
looking up Clang in the normal search paths (which may end up finding the wrong
clang).
llvm-svn: 108346
|
|
|
|
| |
llvm-svn: 108345
|
|
|
|
|
|
| |
and some are already synthesized by user declaration.
llvm-svn: 108341
|
|
|
|
| |
llvm-svn: 108340
|
|
|
|
|
|
|
| |
_Foo) from code-completion results when they come from a system
header.
llvm-svn: 108338
|
|
|
|
|
|
| |
as well. Fixes radar 7975788.
llvm-svn: 108333
|
|
|
|
|
|
|
|
| |
follow <name>; instead they follow <type>, which has <name> as a subset.
Fixes PR7446.
llvm-svn: 108326
|
|
|
|
|
|
|
|
|
| |
This flag and warning match GCC semantics. Also, move it to -Wextra as this is
a largely cosmetic issue and doesn't seem to mask problems. Subsequent fixes to
the tests which no longer by default emit the warning. Added explicit test
cases for both C and C++ behavior with the warning turned on.
llvm-svn: 108325
|
|
|
|
|
|
| |
test works with ToT Clang already
llvm-svn: 108318
|
|
|
|
|
|
|
|
| |
- TSTs whose template is a template template parameter already work
- we don't provide an imaginary type, so we can't mangle one
- we don't need a generic FIXME for vendor type qualifiers
llvm-svn: 108317
|
|
|
|
|
|
|
| |
the current proposals from David Vandervoorde for new, delete, throw, typeid,
imaginary literals, string literals, and null literals.
llvm-svn: 108315
|
|
|
|
| |
llvm-svn: 108298
|
|
|
|
|
|
| |
are explicitly given.
llvm-svn: 108297
|
|
|
|
| |
llvm-svn: 108296
|
|
|
|
|
|
| |
harmless way.
llvm-svn: 108295
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reinterpret_casts (possibly indirectly via C-style/functional casts)
on values, e.g.,
int i;
reinterpret_cast<short&>(i);
The IR generated for this is essentially the same as for
*reinterpret_cast<short*>(&i).
Fixes PR6437, PR7593, and PR7344.
llvm-svn: 108294
|
|
|
|
| |
llvm-svn: 108290
|
|
|
|
| |
llvm-svn: 108288
|
|
|
|
|
|
|
| |
or a catch of a record type by value or reference. Also convert this to a
lazy cleanup.
llvm-svn: 108287
|
|
|
|
|
|
| |
in class extensions (radar 8171968).
llvm-svn: 108283
|
|
|
|
| |
llvm-svn: 108276
|
|
|
|
|
|
|
| |
to set that of VarDecl for block variables
(they are already set). Per Doug's comment.
llvm-svn: 108273
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mostly in avoiding unnecessary work at compile time but also in producing more
sensible block orderings.
Move the destructor cleanups for local variables over to use lazy cleanups.
Eventually all cleanups will do this; for now we have some awkward code
duplication.
Tell IR generation just to never produce landing pads in -fno-exceptions.
This is a much more comprehensive solution to a problem which previously was
half-solved by checks in most cleanup-generation spots.
llvm-svn: 108270
|
|
|
|
| |
llvm-svn: 108267
|
|
|
|
|
|
| |
to block context when first instantiating them.
llvm-svn: 108266
|
|
|
|
|
|
|
|
|
|
|
| |
t2.c:2:12: warning: use of logical && with constant operand; switch to bitwise &
or remove constant [-Wlogical-bitwise-confusion]
return x && 4;
^ ~
wording improvement suggestions are welcome.
llvm-svn: 108260
|
|
|
|
| |
llvm-svn: 108257
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(e.g., a call, cast, etc.), immediately adjust the expression's type
to strip cv-qualifiers off of all non-class types (in C++) or all
types (in C). This effectively extends my previous fix for PR7463,
which was restricted to calls, to other kinds of expressions within
similar characteristics. I've audited every use of
getNonReferenceType() in the code base, switching to the newly-renamed
getNonLValueExprType() where necessary.
Big thanks to Eli for pointing out just how incomplete my original fix
for PR7463 actually was. We've been handling cv-qualifiers on rvalues
wrong for a very, very long time. Fixes PR7463.
llvm-svn: 108253
|
|
|
|
| |
llvm-svn: 108247
|
|
|
|
| |
llvm-svn: 108245
|
|
|
|
| |
llvm-svn: 108243
|
|
|
|
|
|
|
|
|
|
|
|
| |
size" error for code like
new (int [size])
to a warning, add a Fix-It to remove the parentheses, and make this
diagnostic work properly when it occurs in a template
instantiation. <rdar://problem/8018245>.
llvm-svn: 108242
|
|
|
|
|
|
|
|
|
|
|
| |
IdentifierInfos.
When loading the PCH, IdentifierInfos that are associated with pragmas cause declarations that use these identifiers to be deserialized (e.g. the "clang" pragma causes the "clang" namespace to be loaded).
We can avoid this if we just use StringRefs for the pragmas.
As a bonus, since we don't have to create and pass IdentifierInfos, the pragma interfaces get a bit more simplified.
llvm-svn: 108237
|
|
|
|
|
|
|
|
|
|
|
|
| |
effect warning" by printing the qualifiers we saw and correctly
pluralizing the message, e.g.,
test/SemaCXX/conditional-expr.cpp:295:3: warning: 'const volatile' type
qualifiers on return type have no effect
const volatile Enum g2() {
^~~~~ ~~~~~~~~
llvm-svn: 108236
|
|
|
|
|
|
|
| |
don't include the nested-name-specifier or template arguments: they
were only relevant when resolving the declaration. Fixes PR7460.
llvm-svn: 108235
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
strip cv-qualifiers from the expression's type when the language calls
for it: in C, that's all the time, while C++ only does it for
non-class types.
Centralized the computation of the call expression type in
QualType::getCallResultType() and some helper functions in other nodes
(FunctionDecl, ObjCMethodDecl, FunctionType), and updated all relevant
callers of getResultType() to getCallResultType().
Fixes PR7598 and PR7463, along with a bunch of getResultType() call
sites that weren't stripping references off the result type (nothing
stripped cv-qualifiers properly before this change).
llvm-svn: 108234
|
|
|
|
| |
llvm-svn: 108233
|
|
|
|
|
|
| |
for awhile.
llvm-svn: 108232
|
|
|
|
|
|
| |
C++). Fixes PR7466.
llvm-svn: 108231
|
|
|
|
|
|
|
|
| |
at -O0. The only change from the previous patch is that we don't try
to generate virtual method thunks for an available_externally
function.
llvm-svn: 108230
|
|
|
|
| |
llvm-svn: 108220
|
|
|
|
|
|
| |
VarDecl.
llvm-svn: 108218
|
|
|
|
|
|
|
|
| |
class templates within class scope (which is ill-formed), and recover
by dropping the explicit specialization entirely. Fixes the infinite
loop in PR7622.
llvm-svn: 108217
|
|
|
|
|
|
| |
found by Sebastian
llvm-svn: 108214
|
|
|
|
|
|
| |
they're not something the user typed (at least, not here).
llvm-svn: 108212
|
|
|
|
|
|
| |
function type. Fixes PR7470.
llvm-svn: 108209
|