| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 216183
|
| |
|
|
|
|
| |
Changes diagnostic options, language standard options, diagnostic identifiers, diagnostic wording to use c++14 instead of c++1y. It also modifies related test cases to use the updated diagnostic wording.
llvm-svn: 215982
|
| |
|
|
|
|
| |
functional changes (having common superclass is convenient for future loop directives CodeGen implementation)
llvm-svn: 215975
|
| |
|
|
|
|
|
|
| |
MSVC "14" CTP 3 has fixed it's mangling for alias templates when used as
template-template arguments; update clang to be compatible with this
mangling.
llvm-svn: 215972
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When the CallExpr passed to Sema::ConvertArgumentsForCall has all default parameters, and the number of actual arguments passed is zero, this function will segfault in the call to Call->getLocStart() if the Callee has an invalid getLocStart(), the reason being that since ConvertArgumentsForCall has set the correct number of arguments, but has not filled them in yet, getLocStart() will try to access the first (not yet existent) argument and thus segfaults.
This fixes that by making getLocStart return an invalid source location if the queried argument is NULL rather than segfaulting.
Reviewers: rnk
Reviewed By: rnk
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4917
llvm-svn: 215686
|
| |
|
|
|
|
| |
Modifications made by clang-tidy with minor tweaks.
llvm-svn: 215557
|
| |
|
|
|
|
|
|
|
|
| |
redefinitions of that namespace have already been loaded. When writing out the
names in a namespace, if we see a name that is locally declared and had
imported declarations merged on top of it, export the local declaration as the
lookup result, because it will be the most recent declaration of that entity in
the redeclaration chain of an importer of the module.
llvm-svn: 215518
|
| |
|
|
|
|
|
|
|
|
|
| |
C++11 allows this qualifiers to exist on function types when used in
template arguments. Previously, I believed it wasn't possible because
MSVC rejected declarations like: S<int () const &> s;
However, it turns out MSVC properly allows them in using declarations;
updated clang to be compatible with this mangling.
llvm-svn: 215464
|
| |
|
|
|
|
|
|
| |
anyway. If -ast-dump *is* also provided, then dump the AST declarations as well
as the lookup results. This is invaluable for cross-correlating the lookup
information with the declarations actually found.
llvm-svn: 215393
|
| |
|
|
| |
llvm-svn: 215375
|
| |
|
|
|
|
|
|
| |
thunks are needed
Reviewed at http://reviews.llvm.org/D4822
llvm-svn: 215312
|
| |
|
|
|
|
|
|
| |
return adjusting thunks
Reviewed at http://reviews.llvm.org/D4829
llvm-svn: 215285
|
| |
|
|
|
|
| |
new APIs for literals. nfc. wip. rdar://17554063
llvm-svn: 214993
|
| |
|
|
|
|
|
| |
for Objective-C's array and dictionary literals.
rdar://17554063. This is wip.
llvm-svn: 214983
|
| |
|
|
|
|
|
|
| |
It is possible for lambdas to get the same mangling number because they
may exist in different mangling contexts. To handle this correctly,
mangle the context into the name as well.
llvm-svn: 214947
|
| |
|
|
|
|
|
|
|
|
|
| |
The MS mangling scheme apparently has separate manglings for type and
non-type parameter packs when they are empty. Match template arguments
with parameters during mangling; check the parameter to see if it was
destined to hold type-ish things or nontype-ish things.
Differential Revision: http://reviews.llvm.org/D4792
llvm-svn: 214932
|
| |
|
|
| |
llvm-svn: 214847
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CXXNameMangler::mangleUnqualifiedBlock believed that
MangleContext::getBlockId returned something that used Itanium-style
discriminator numbers.
Discriminator numbers start their numberign from 1 and the first
mangling that actually gets any sort of number mangled in is the second
discriminator.
However, Block IDs start from zero. The logic for omitting the mangling
number did a ' > 1' instead of a ' > 0' comparison; this could
potentially cause mangling conflicts.
llvm-svn: 214699
|
| |
|
|
|
|
|
| |
A typedef of a typedef should have AlignIsRequired if *either* typedef
has an AlignAttr attached to it.
llvm-svn: 214698
|
| |
|
|
|
|
| |
highlights the attribute and the faulty nonpointer type when possible.
llvm-svn: 214507
|
| |
|
|
|
|
|
|
| |
FunctionProtoType::ExtProtoInfo. Most of the users of these fields don't care
about the other ExtProtoInfo bits and just want to talk about the exception
specification.
llvm-svn: 214450
|
| |
|
|
|
|
|
| |
or a class derived from T. We already supported this when initializing
_Atomic(T) from T for most (and maybe all) other reasonable values of T.
llvm-svn: 214390
|
| |
|
|
|
|
|
|
|
|
| |
Iterator invalidation issues already force us to do one lookup and one
insert.
Don't use the particular bit-pattern of the 'Align' field to determine
whether or not we have already inserted into the TypeInfo DenseMap;
instead ask for an iterator to the TypeInfo entry.
llvm-svn: 214293
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A templated using declaration may be used as a template-template
argument.
Unfortunately, the VS "14" chooses '?' as the sole marker for the
argument. This is problematic because it presupposes the possibility of
using more than one template-aliases as arguments to the same template.
This fixes PR20047.
llvm-svn: 214290
|
| |
|
|
|
|
| |
Thanks to David Balkie for the suggestion.
llvm-svn: 214286
|
| |
|
|
| |
llvm-svn: 214281
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The MS ABI has a notion of 'required alignment' for fields; this
alignment supercedes pragma pack directives.
MSVC takes into account alignment attributes on typedefs when
determining whether or not a field has a certain required alignment.
Do the same in clang by tracking whether or not we saw such an attribute
when calculating the type's bitwidth and alignment.
This fixes PR20418.
Reviewers: rnk
Differential Revision: http://reviews.llvm.org/D4714
llvm-svn: 214274
|
| |
|
|
|
|
| |
if the two arguments are equal.
llvm-svn: 214008
|
| |
|
|
|
|
| |
each different enum value here.
llvm-svn: 213996
|
| |
|
|
|
|
|
| |
We no longer plan to use __except_hander3 and rather use custom
personality functions per __try block.
llvm-svn: 213971
|
| |
|
|
|
|
|
| |
diffing. This removes extra "struct"/"class" in the type names and gives
"bool" instead of "_Bool" for booleans.
llvm-svn: 213912
|
| |
|
|
|
|
| |
printing of other types.
llvm-svn: 213902
|
| |
|
|
|
|
| |
directive.
llvm-svn: 213846
|
| |
|
|
|
|
| |
directive.
llvm-svn: 213842
|
| |
|
|
| |
llvm-svn: 213840
|
| |
|
|
|
|
|
| |
isOnePastTheEnd on an invalid designator, so assert and push the check into the
one caller that wasn't already checking.
llvm-svn: 213820
|
| |
|
|
|
|
|
|
|
|
|
| |
The class seems to have an invariant that Entries is non-empty if
Invalid is false. It appears this method was previously private, and
all internal uses checked Invalid. Now there is an external caller, so
check Invalid to avoid array OOB underflow.
Fixes PR20420.
llvm-svn: 213816
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main subtlety here is that the Darwin tools still need to be given "-arch
arm64" rather than "-arch aarch64". Fortunately this already goes via a custom
function to handle weird edge-cases in other architectures, and it tested.
I removed a few arm64_be tests because that really isn't an interesting thing
to worry about. No-one using big-endian is also referring to the target as
arm64 (at least as far as toolchains go). Mostly they date from when arm64 was
a separate target and we *did* need a parallel name simply to test it at all.
Now aarch64_be is sufficient.
llvm-svn: 213744
|
| |
|
|
|
|
| |
directive.
llvm-svn: 213735
|
| |
|
|
|
|
| |
directive.
llvm-svn: 213728
|
| |
|
|
| |
llvm-svn: 213719
|
| |
|
|
|
|
|
|
| |
being declared, not at the end. When pretty-printing a non-type template
parameter, put the name of the parameter in the middle of the type, not at the
end.
llvm-svn: 213718
|
| |
|
|
|
|
| |
directive.
llvm-svn: 213717
|
| |
|
|
| |
llvm-svn: 213639
|
| |
|
|
| |
llvm-svn: 213616
|
| |
|
|
| |
llvm-svn: 213613
|
| |
|
|
| |
llvm-svn: 213611
|
| |
|
|
|
|
| |
a template argument.
llvm-svn: 213609
|
| |
|
|
| |
llvm-svn: 213512
|
| |
|
|
| |
llvm-svn: 213510
|