| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
Use range-based for loops to simplify the logic. Add an explicit check for
MachO as the inline asm uses MachO specific directives.
llvm-svn: 281261
|
| |
|
|
| |
llvm-svn: 281259
|
| |
|
|
|
|
|
| |
definition as visible in the discarded definition's module, as we do for
other kinds of definition.
llvm-svn: 281258
|
| |
|
|
| |
llvm-svn: 281241
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
objc_arc_weak_reference_unavailable
Fixed incorrect docs that referred to:
objc_arc_weak_unavailable
when it should be:
objc_arc_weak_reference_unavailable
Patch by: Sean McBride!
llvm-svn: 281227
|
| |
|
|
|
|
|
|
|
| |
Use (call-process region nil ...) instead of (point-min) so that the
call works in narrowed buffers.
Patch by Philipp Stephani, thank you!
llvm-svn: 281203
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: (Needed for D23353.)
Reviewers: alexfh
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D23842
llvm-svn: 281200
|
| |
|
|
| |
llvm-svn: 281198
|
| |
|
|
| |
llvm-svn: 281197
|
| |
|
|
| |
llvm-svn: 281195
|
| |
|
|
| |
llvm-svn: 281194
|
| |
|
|
|
|
|
|
| |
remark flags. For now I'm checking in a copy of the built documentation, but we
can replace this with a placeholder (as we do for the attributes reference
documentation) once we enable building this server-side.
llvm-svn: 281192
|
| |
|
|
|
|
|
|
|
| |
MSVC emits /include directives in the .drective section for the
__dyn_tls_init function (decorated as ___dyn_tls_init@12 for 32-bit).
This fixes PR30347.
llvm-svn: 281189
|
| |
|
|
|
|
|
| |
Refactor the assignment so that its much more clear that the if-clause contains
the lookup, and once cached is directly used. NFC.
llvm-svn: 281150
|
| |
|
|
|
|
|
| |
Without this, no tests fail if I remove the Diag() in the first if in
Sema::mergeMSInheritanceAttr().
llvm-svn: 281136
|
| |
|
|
|
|
|
|
|
|
|
|
| |
provided before trying to print it.
This fixes a segfault that occurs when function printPretty generated by
tablegen tries to print an optional argument of attribute
objc_bridge_related.
rdar://problem/28155469
llvm-svn: 281132
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When deserializing ObjCInterfaceDecl with definition data, if we already have
a definition, try to keep the definition invariant; also pull in the
categories even if it is not what getDefinition returns (this effectively
combines categories).
rdar://27926200
rdar://26708823
llvm-svn: 281119
|
| |
|
|
|
|
|
| |
This is a spiritual re-commit of r201375 with only a brief delay
for upgrading the green dragon builders.
llvm-svn: 281094
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This fixes a bug where we were unable to compile the following CUDA
file with libstdc++ (didn't try libc++):
#include <future>
void foo() { std::shared_future<int> x; }
The problem is that <future> only defines std::shared_future if
__GCC_ATOMIC_INT_LOCK_FREE > 1. When we compiled this file for device,
the macro was set to 1, and then the class didn't exist at all.
Reviewers: tra
Subscribers: cfe-commits, jhen
Differential Revision: https://reviews.llvm.org/D24407
llvm-svn: 281089
|
| |
|
|
|
|
|
| |
In post-commit review, Richard suggested a better way to fix this.
rdar://27926200
llvm-svn: 281078
|
| |
|
|
|
|
| |
Doesn't work, but needs to be enabled in order to get there.
llvm-svn: 281071
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D24400
llvm-svn: 281064
|
| |
|
|
|
|
|
|
|
|
|
| |
The logic for upgrading a class from a forward decl to a complete type
was not checking the debug info emission level before applying the
vtable optimization. This meant we ended up without debug info for a
class which was required to be complete. I noticed it because it
triggered an assertion during CodeView emission, but that's a separate
issue.
llvm-svn: 281057
|
| |
|
|
|
|
|
|
|
|
| |
Our limited debug info optimizations are breaking down at DLL
boundaries, so we're going to evaluate the size impact of these
settings, and possibly change the default.
Users should be able to override our settings, though.
llvm-svn: 281056
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a dynamic class contains a dllimport method, then assume the class
may not be constructed in this DLL, and therefore the vtable will live
in a different PDB.
This heuristic is still incomplete, and will miss things like abstract
base classes that are only constructed on one side of the DLL interface.
That said, this heuristic does detect some cases that are currently
problematic, and may be useful to other projects that don't use many
DLLs.
llvm-svn: 281053
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: As per title.
Reviewers: ahatanak, bkramer, whitequark, mehdi_amini, void
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D21515
llvm-svn: 281018
|
| |
|
|
|
|
|
|
| |
Avoided wrapping NullabilityDocs at 80cols, since that would've made
this diff much bigger, and never-ending lines seems to be the style for
many of the null-related docs.
llvm-svn: 281017
|
| |
|
|
|
|
|
| |
export-declarations. These don't yet have an effect on name visibility;
we still export everything by default.
llvm-svn: 280999
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D23643
llvm-svn: 280998
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: thakis, Prazek, compnerd, rnk
Subscribers: majnemer, cfe-commits
Differential Revision: https://reviews.llvm.org/D24311
llvm-svn: 280997
|
| |
|
|
|
|
|
|
|
|
|
| |
In C mode, if we have a visible declaration but not a visible definition, a tag
defined in the declaration should be have a visible definition. In C++ we rely
on the ODR merging, whereas in C we cannot because each declaration of a
function gets its own set of declarations in its prototype scope.
Patch developed in collaboration with Richard Smith!
llvm-svn: 280984
|
| |
|
|
|
|
|
| |
This reverts commit r280889, as the original LLVM commits broke the thumb
buildbots.
llvm-svn: 280968
|
| |
|
|
| |
llvm-svn: 280921
|
| |
|
|
| |
llvm-svn: 280917
|
| |
|
|
| |
llvm-svn: 280899
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Simplify signature of CreateVTableInitializer function.
- Move vtable component builder to a separate function.
- Remove unnecessary accessors from VTableLayout class.
This is in preparation for a future change that will alter the type of the
vtable initializer.
Differential Revision: https://reviews.llvm.org/D22642
llvm-svn: 280897
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Just a test for now, adapted from x86_64 tests of XRay.
This is one of 3 commits to different repositories of XRay ARM port. The
other 2 are:
1. https://reviews.llvm.org/D23931 (LLVM)
2. https://reviews.llvm.org/D23933 (compiler-rt)
Differential Review: https://reviews.llvm.org/D23932
llvm-svn: 280889
|
| |
|
|
|
|
| |
for Google style to "empty".
llvm-svn: 280878
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The attempt to fix requoting behavior in r280487 after changes to
tooling::Replacements are incomplete. We essentially need to add to
replacements at the same position, one to insert a line break and one to
change the quoting and that's incompatible with the new
tooling::Replacement API, which does not allow for order-dependent
Replacements. To make the order clear, Replacements::merge() has to be
used, but that requires the merged Replacement to actually refer to the
changed text, which is hard to reproduce for the requoting.
This change fixes the behavior by moving the requoting to a completely
separate pass. The added benefit is that no weird ColumnWidth
calculations are necessary anymore and this should just work even if we
implement string literal splitting in the future.
llvm-svn: 280874
|
| |
|
|
|
|
|
|
| |
other minor fixes.
Differential revision: https://reviews.llvm.org/D24115
llvm-svn: 280870
|
| |
|
|
| |
llvm-svn: 280852
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r280553 introduced an issue where we'd emit ambiguity errors for code
like:
```
void foo(int *, int);
void foo(unsigned int *, unsigned int);
void callFoo() {
unsigned int i;
foo(&i, 0); // ambiguous: int->unsigned int is worse than int->int,
// but unsigned int*->unsigned int* is better than
// int*->int*.
}
```
This patch fixes this issue by changing how we handle ill-formed (but
valid) implicit conversions. Candidates with said conversions now always
rank worse than candidates without them, and two candidates are
considered to be equally bad if they both have these conversions for
the same argument.
Additionally, this fixes a case in C++11 where we'd complain about an
ambiguity in a case like:
```
void f(char *, int);
void f(const char *, unsigned);
void g() { f("abc", 0); }
```
...Since conversion to char* from a string literal is considered
ill-formed in C++11 (and deprecated in C++03), but we accept it as an
extension.
llvm-svn: 280847
|
| |
|
|
|
|
|
|
| |
- Should diag on a function (clang-cl warns; it's an error in cl)
- Test the attribute on nested classes (clang-cl is more permissive and more
self-consistent than cl here)
llvm-svn: 280845
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a bug causing pch to be validated even though -fno-validate-pch is set. This patch fixes it.
ASTReader relies on ASTReaderListener to initialize SuggestedPredefines, which is required for compilations using PCH. Before this change, PCHValidator is the default ASTReaderListener. After this change, when -fno-validate-pch is set, PCHValidator is disabled, but we need a replacement ASTReaderListener to initialize SuggestedPredefines. Class SimpleASTReaderListener is implemented for this purpose.
This change only affects -fno-validate-pch. There is no functional change if -fno-validate-pch is not set.
If -fno-validate-pch is not set, conflicts in predefined macros between pch and current compiler instance causes error.
If -fno-validate-pch is set, predefine macros in current compiler override those in pch so that compilation can continue.
Differential Revision: https://reviews.llvm.org/D24054
llvm-svn: 280842
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
C++1z 6.4.1/p2:
If the if statement is of the form if constexpr, the value of the
condition shall be a contextually converted constant expression of type
bool [...]
C++1z 5.20/p4:
[...] A contextually converted constant expression of type bool is an
expression, contextually converted to bool (Clause4), where the
converted expression is a constant expression and the conversion
sequence contains only the conversions above. [...]
Contextually converting result of an expression `e` to a Boolean value
requires `bool t(e)` to be well-formed.
An explicit conversion function is only considered as a user-defined
conversion for direct-initialization, which is essentially what
//contextually converted to bool// requires.
Also, fixes PR28470.
Reviewers: rsmith
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D24158
llvm-svn: 280838
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Move the logic for doing this from the ABI argument lowering into
EmitParmDecl, which runs for all parameters. Our codegen is slightly
suboptimal in this case, as we may leave behind a dead store after
optimization, but it's 32-bit inalloca, and this fixes the bug in a
robust way.
Fixes PR30293
llvm-svn: 280836
|
| |
|
|
|
|
|
|
| |
Include What You Use warnings; other minor fixes.
Differential revision: https://reviews.llvm.org/D24165
llvm-svn: 280828
|
| |
|
|
| |
llvm-svn: 280827
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: There was no definition for __nop function - added inline
assembly.
Patch by Albert Gutowski!
Reviewers: rnk, thakis
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D24286
llvm-svn: 280826
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Parse pragma intrinsic, display warning if the function isn't a builtin
function in clang and suggest including intrin.h.
Patch by Albert Gutowski!
Reviewers: aaron.ballman, rnk
Subscribers: aaron.ballman, cfe-commits
Differential Revision: https://reviews.llvm.org/D23944
llvm-svn: 280825
|