| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 121938
|
| |
|
|
| |
llvm-svn: 121934
|
| |
|
|
|
|
|
| |
drive-by, make sure to check for unexpanded parameter packs within the
name of a declaration.
llvm-svn: 121930
|
| |
|
|
| |
llvm-svn: 121928
|
| |
|
|
|
|
|
|
| |
declarations. This is a work in progress, as I go through the C++
declaration grammar to identify where unexpanded parameter packs can
occur.
llvm-svn: 121912
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state.
Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect
a lot of places, like C++ inline methods, template instantiations, the lexer, etc.
Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location.
Fixes rdar://8365684.
llvm-svn: 121873
|
| |
|
|
|
|
|
|
| |
within the class. Teach IR gen to look for function definitions in record
lexical contexts when deciding whether to emit a function whose address
was taken. Fixes PR8789.
llvm-svn: 121833
|
| |
|
|
| |
llvm-svn: 121795
|
| |
|
|
| |
llvm-svn: 121763
|
| |
|
|
| |
llvm-svn: 121759
|
| |
|
|
|
|
|
| |
class to be passed around. The line between argument and return types and
everything else is kindof vague, but I think it's justifiable.
llvm-svn: 121752
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and TemplateArgument with an operation that determines whether there
are any unexpanded parameter packs within that construct. Use this
information to diagnose the appearance of the names of parameter packs
that have not been expanded (C++ [temp.variadic]p5). Since this
property is checked often (every declaration, ever expression
statement, etc.), we extend Type and Expr with a bit storing the
result of this computation, rather than walking the AST each time to
determine whether any unexpanded parameter packs occur.
This commit is deficient in several ways, which will be remedied with
future commits:
- Expr has a bit to store the presence of an unexpanded parameter
pack, but it is never set.
- The error messages don't point out where the unexpanded parameter
packs were named in the type/expression, but they should.
- We don't check for unexpanded parameter packs in all of the places
where we should.
- Testing is sparse, pending the resolution of the above three
issues.
llvm-svn: 121724
|
| |
|
|
| |
llvm-svn: 121505
|
| |
|
|
| |
llvm-svn: 121490
|
| |
|
|
| |
llvm-svn: 121488
|
| |
|
|
|
|
|
|
|
|
| |
space better. Remove this reference. To make that work, change some APIs
(most importantly, getDesugaredType()) to take an ASTContext& if they
need to return a QualType. Simultaneously, diminish the need to return a
QualType by introducing some useful APIs on SplitQualType, which is
just a std::pair<const Type *, Qualifiers>.
llvm-svn: 121478
|
| |
|
|
|
|
|
| |
and ActOnVariableDeclarator
No functionality change. // rdar://8751949
llvm-svn: 121427
|
| |
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121121
|
| |
|
|
|
|
| |
NULL/invalid expression
llvm-svn: 121081
|
| |
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
| |
|
|
| |
llvm-svn: 120828
|
| |
|
|
|
|
|
| |
to be used in copy helper synthesis of __block
variables. wip.
llvm-svn: 120617
|
| |
|
|
|
|
|
| |
redeclaration of an enum type differs from that of the original
declaration, from Daniel Wallin
llvm-svn: 120577
|
| |
|
|
|
|
| |
Documentation: http://msdn.microsoft.com/en-us/library/z2cx9y4f.aspx
llvm-svn: 120000
|
| |
|
|
|
|
|
|
|
|
|
| |
A new AST node is introduced:
def IndirectField : DDecl<Value>;
IndirectFields are injected into the anonymous's parent scope and chain back to
the original field. Name lookup for anonymous entities now result in an
IndirectFieldDecl instead of a FieldDecl.
There is no functionality change, the code generated should be the same.
llvm-svn: 119919
|
| |
|
|
|
|
| |
Move ErrorTrap from clang/Sema to clang/Basic as DiagnosticErrorTrap and use it in Scope.
llvm-svn: 119763
|
| |
|
|
| |
llvm-svn: 119719
|
| |
|
|
|
|
|
|
|
| |
-Improve the diagnostic message
-Add some comments
Suggestions by Chris.
llvm-svn: 119594
|
| |
|
|
|
|
|
|
|
|
| |
definitions if they take by-value
or return by-value any POD that is larger than some threshold (default is 64 bytes).
Implements rdar://8548050.
llvm-svn: 119583
|
| |
|
|
| |
llvm-svn: 118381
|
| |
|
|
|
|
|
|
| |
parameter name.
Fixes PR8012.
llvm-svn: 118138
|
| |
|
|
| |
llvm-svn: 117963
|
| |
|
|
| |
llvm-svn: 117942
|
| |
|
|
|
|
| |
deciding whether to queue a decl for unused-declaration warnings.
llvm-svn: 117431
|
| |
|
|
| |
llvm-svn: 117182
|
| |
|
|
|
|
|
|
|
| |
redeclarations of main appropriately rather than allowing it to be
overloaded. Also, disallowing declaring main as a template.
Fixes GCC DejaGNU g++.old-deja/g++.other/main1.C.
llvm-svn: 117029
|
| |
|
|
|
|
|
|
| |
function decls.
Reviewed by rjmccall and nlewycky.
llvm-svn: 116979
|
| |
|
|
|
|
|
| |
construct an unsupported friend when there's a friend with a templated
scope specifier. Fixes a consistency crash, rdar://problem/8540527
llvm-svn: 116786
|
| |
|
|
| |
llvm-svn: 116709
|
| |
|
|
|
|
|
| |
1. enum underlying type is int by default.
2. Error "enumerator value is not representable in the underlying type"is a ExtWarning
llvm-svn: 116704
|
| |
|
|
| |
llvm-svn: 116692
|
| |
|
|
| |
llvm-svn: 116662
|
| |
|
|
|
|
|
|
| |
by marking the decl invalid isn't. Make some steps towards supporting these
and then hastily shut them down at the last second by marking them as
unsupported.
llvm-svn: 116661
|
| |
|
|
|
|
|
|
| |
flexible array member, so long as the flexibility array member is
either not initialized or is initialized with an empty initializer
list. Fixes <rdar://problem/8540437>.
llvm-svn: 116647
|
| |
|
|
|
|
| |
as the class itself. Fixes PR7082.
llvm-svn: 116573
|
| |
|
|
|
|
| |
ambiguous context.
llvm-svn: 116567
|
| |
|
|
|
|
| |
initialized. Fixes PR7076.
llvm-svn: 116553
|
| |
|
|
|
|
|
|
| |
should contain actual redeclarations, not implicits.
As a bonus, now we don't deserialize it unless we need it.
llvm-svn: 116504
|
| |
|
|
|
|
| |
in a base class. Fixes PR8168.
llvm-svn: 116448
|
| |
|
|
|
|
|
|
| |
members. Provide a hard error when the qualification doesn't match the
current class type, or a warning + Fix-it if it does match the current
class type. Fixes PR8159.
llvm-svn: 116445
|