| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
The Itanium ABI will give out the same mangling number for two different
lambdas if their call operators have different types. The MS ABI cannot
do the same because it does not mangle the return type into it's
lambdas.
This fixes PR20719.
llvm-svn: 216259
|
| |
|
|
|
|
| |
dyn_cast -> dyn_cast_or_null to handle a null pointer.
llvm-svn: 216254
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This refactoring introduces ClangToLLVMArgMapping class, which
encapsulates the information about the order in which function arguments listed
in CGFunctionInfo should be passed to actual LLVM IR function, such as:
1) positions of sret, if there is any
2) position of inalloca argument, if there is any
3) position of helper padding argument for each call argument
4) positions of regular argument (there can be many if it's expanded).
Simplify several related methods (ConstructAttributeList, EmitFunctionProlog
and EmitCall): now they don't have to maintain iterators over the list
of LLVM IR function arguments, dealing with all the sret/inalloca/this complexities,
and just use expected positions of LLVM IR arguments stored in ClangToLLVMArgMapping.
This may increase the running time of EmitFunctionProlog, as we have to traverse
expandable arguments twice, but in further refactoring we will be able
to speed up EmitCall by passing already calculated CallArgsToIRArgsMapping to
ConstructAttributeList, thus avoiding traversing expandable argument there.
No functionality change.
Test Plan: regression test suite
Reviewers: majnemer, rnk
Reviewed By: rnk
Subscribers: cfe-commits, rjmccall, timurrrr
Differential Revision: http://reviews.llvm.org/D4938
llvm-svn: 216251
|
| |
|
|
|
|
| |
DILexicalBlock (in favor of DILexicalBlockFile - where a default arg is used to avoid the need for API churn of those callers)
llvm-svn: 216240
|
| |
|
|
|
|
| |
SourceManager::AddNewSourceBuffer
llvm-svn: 216226
|
| |
|
|
|
|
| |
its syntactic form before re-analyzing it during template instantiation.
llvm-svn: 216224
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 216222
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is a first small step towards passing generic "Expr" instead of
ArgBeg/ArgEnd pair into EmitCallArgs() family of methods. Having "Expr" will
allow us to get the corresponding FunctionDecl and its ParmVarDecls,
thus allowing us to alter CodeGen depending on the function/parameter
attributes.
No functionality change.
Test Plan: regression test suite
Reviewers: rnk
Reviewed By: rnk
Subscribers: aemerson, cfe-commits
Differential Revision: http://reviews.llvm.org/D4915
llvm-svn: 216214
|
| |
|
|
|
|
|
|
|
|
| |
The profile data format was recently updated and the new indexing api
requires the code coverage tool to know the function's hash as well
as the function's name to get the execution counts for a function.
Differential Revision: http://reviews.llvm.org/D4995
llvm-svn: 216208
|
| |
|
|
| |
llvm-svn: 216198
|
| |
|
|
|
|
|
| |
and checking on availability of method declaration
instead of crashing. // rdar://18059669
llvm-svn: 216191
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 216183
|
| |
|
|
|
|
|
| |
This fixes a crash in the OCL_ImgProc/Canny OpenCV test.
NOTE: This is a candidate for the 3.5 branch.
llvm-svn: 216181
|
| |
|
|
| |
llvm-svn: 216180
|
| |
|
|
|
|
|
| |
The call will never go to a more derived class, but that's intentional in those
cases.
llvm-svn: 216167
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(PR20163)
Normally we mark all members of exported classes referenced to get them emitted.
However, MSVC doesn't do this for class templates that are implicitly specialized or
just have an explicit instantiation declaration. For such specializations, the members
are emitted when referenced.
The exception is the case when the dllexport attribute is propagated from a base class
to a base class template that doesn't have an explicit attribute: in this case all
methods of the base class template do get instantiated.
llvm-svn: 216145
|
| |
|
|
| |
llvm-svn: 216082
|
| |
|
|
| |
llvm-svn: 216081
|
| |
|
|
|
|
|
|
| |
an integer.
Patch by Daniel Fahlgren.
llvm-svn: 216079
|
| |
|
|
|
|
| |
Patch by Daniel Fahlgren.
llvm-svn: 216078
|
| |
|
|
|
|
|
|
| |
different widths.
PR20659. Patch by Anders Rönnholm.
llvm-svn: 216076
|
| |
|
|
|
|
|
|
| |
string literals.
PR20693. Patch by Anders Rönnholm.
llvm-svn: 216075
|
| |
|
|
|
|
| |
class method to an object receiver. rdar://16263395
llvm-svn: 216038
|
| |
|
|
| |
llvm-svn: 216029
|
| |
|
|
|
|
|
| |
ext_vector_type's 'hi/lo' components when
used as lvalue. rdar://18031917 pr20697
llvm-svn: 215991
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 215980
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 215968
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Always put static sanitizer runtimes to the front of the linker
invocation line. This was already done for all sanitizers except UBSan:
in case user provides static libstdc++ we need to make sure that new/delete
operator definitions are picked from sanitizer runtimes instead of libstdc++.
We have to put UBSan runtime first for similar reasons: it depends on some
libstdc++ parts (e.g. __dynamic_cast function), and has to go first in
link line to ensure these functions will be picked up from libstdc++.
2. Put sanitizer libraries system dependencies (-ldl, -lpthread etc.) right
after sanitizer runtimes. This will ensure these libraries participate in
the link even if user provided -Wl,-as-needed flag. This should fix PR15823.
3. In case we link in several sanitizer runtimes (e.g. "ubsan", "ubsan_cxx"
and "san"), add system dependencies (-ldl, -lpthread, ...) only once.
llvm-svn: 215940
|
| |
|
|
|
|
|
|
|
| |
Predefined decls like 'Protocol' in objc are not loaded from AST files,
so we cannot rely on loading the canonical decl to complete the redecl
chain for redeclarations of these decls. The broken redecl chain was
non-circular, so looping over redecls() would hang.
llvm-svn: 215929
|
| |
|
|
| |
llvm-svn: 215928
|
| |
|
|
| |
llvm-svn: 215927
|
| |
|
|
| |
llvm-svn: 215926
|
| |
|
|
| |
llvm-svn: 215925
|
| |
|
|
| |
llvm-svn: 215900
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Adding remaining 2 cases handling:
* from x32 to 32 via -m32
* from x32 to 64 via -m64
Test Plan: linux-ld test updated
Reviewers: chandlerc, atanasyan
Subscribers: cfe-commits, zinovy.nis
Differential Revision: http://reviews.llvm.org/D4930
llvm-svn: 215899
|
| |
|
|
|
|
| |
silent coverity warning CID 1231654
llvm-svn: 215897
|
| |
|
|
|
|
|
|
| |
UniqueID(uint64_t Device, uint64_t File)
Fixes CID 1095247
llvm-svn: 215896
|
| |
|
|
|
|
| |
needing to mention the size.
llvm-svn: 215869
|
| |
|
|
|
|
| |
Thanks to David Blaikie for the suggestion.
llvm-svn: 215866
|
| |
|
|
| |
llvm-svn: 215864
|
| |
|
|
| |
llvm-svn: 215856
|
| |
|
|
| |
llvm-svn: 215853
|
| |
|
|
|
|
|
|
|
|
|
| |
Name might be empty again after we removed the '%' prefix
and Name[0] would assert.
Found on code like
register int foo asm("%" MACRO);
where MACRO was supposed to be defined in a header file that was not found.
llvm-svn: 215834
|
| |
|
|
|
|
| |
attributes parsing FIXMEs.
llvm-svn: 215814
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tables that correspond to ContinuousRangeMaps, since the keys to those
maps need to be unique, or we may map to the wrong offset.
This fixes a crash + malformed AST file seen when loading some modules
that import Cocoa on Darwin, which is a module with no contents except
imports of other modules. Unfortunately I have not been able to find a
reduced test case that reproduces this problem.
Also add an assert that we aren't mapping one key to multiple values
in CRM. We ought to be able to say there are no duplicate keys at all,
but there are a bunch of 0 -> 0 mappings that are showing up, probably
coming from the source location table.
llvm-svn: 215810
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes PR20671, see the bug for details. In short, ActOnTranslationUnit()
calls DefineUsedVTables() and only then PerformPendingInstantiations(). But
PerformPendingInstantiations() is what does delayed template parsing, so
vtables only references from late-parsed templates weren't marked used.
As a fix, move the SavePendingInstantiationsAndVTableUsesRAII in
PerformPendingInstantiations() up above the delayed template parsing code.
That way, vtables referenced from templates end up in the RAII object, and the
call to DefineUsedVTables() in PerformPendingInstantiations() marks them used.
llvm-svn: 215786
|
| |
|
|
|
|
| |
behavior change.
llvm-svn: 215780
|