| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
Testing has shown that it is at least as reliable as the old landingpad
pattern matching code.
llvm-svn: 249647
|
| |
|
|
|
|
|
| |
the "" and the suffix; that breaks names such as 'operator""if'. For symmetry,
also remove the space between the 'operator' and the '""'.
llvm-svn: 249641
|
| |
|
|
|
|
|
|
| |
The backend restores the stack pointer after recovering from an
exception. This is similar to r245879, but it doesn't try to use the
normal cleanup mechanism, so hopefully it won't cause the same breakage.
llvm-svn: 249640
|
| |
|
|
|
|
|
|
|
| |
We don't have a good place to put them. Our previous spot was causing us
to optimize loads from the exception object to undef, because it was
after the catchpad instruction that models the write to the catch
object.
llvm-svn: 249616
|
| |
|
|
|
|
|
|
|
|
|
| |
AllCallbacks is currently only used to call onStartOfTranslationUnit and
onEndOfTranslationUnit on them. In this (and any other scenario I can
come up with), it is important (or at least better) not to have
duplicates in this container. E.g. currently onEndOfTranslationUnit is
called repeatedly on the same callback for every matcher that is
registered with it.
llvm-svn: 249598
|
| |
|
|
|
|
|
| |
There are still some loose ends here but it's sufficient so we can detect
GCC headers that are inside of a VFS.
llvm-svn: 249556
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes this bug: https://llvm.org/bugs/show_bug.cgi?id=24504
TokenAnnotator::spaceRequiredBetween was handling TT_ForEachMacro but
not TT_ObjCForIn, so lines that look like:
for (id nextObject in (NSArray *)myArray)
would incorrectly turn into:
for (id nextObject in(NSArray *)myArray)
Patch by Kent Sutherland, thank you.
llvm-svn: 249553
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
aligning assignments.
This was done correctly when aligning the declarations, but not when
aligning assignments.
FIXME: The code between assignments and declarations alignment is
roughly duplicated and
would benefit from factorization.
Bug 25090: https://llvm.org/bugs/show_bug.cgi?id=25090
Patch by Beren Minor. Thank you.
llvm-svn: 249552
|
| |
|
|
|
|
|
|
| |
Currently codegen crashes trying to emit casting to bool &. It happens because bool type is converted to i1 and later then lvalue for reference is converted to i1*. But when codegen tries to load this lvalue it crashes trying to load value from this i1*.
Differential Revision: http://reviews.llvm.org/D13325
llvm-svn: 249534
|
| |
|
|
|
|
|
|
|
|
| |
- Rename it to RedirectingFileSystem. This is what it does, YAML is just a
serialization format for it.
- Consistently use unique_ptr for memory management.
No functional change intended.
llvm-svn: 249532
|
| |
|
|
|
|
| |
Otherwise we won't be able to find them later.
llvm-svn: 249525
|
| |
|
|
|
|
| |
This fixes llvm.org/PR25073.
llvm-svn: 249519
|
| |
|
|
|
|
|
|
|
|
|
| |
Before:
inline A operator^(const A &lhs, const A &rhs) {} int i;
After:
inline A operator^(const A &lhs, const A &rhs) {}
int i;
llvm-svn: 249517
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
void f(Type(¶meter)[10]) {}
void f(Type (*parameter)[10]) {}
After:
void f(Type (¶meter)[10]) {}
void f(Type (*parameter)[10]) {}
llvm-svn: 249502
|
| |
|
|
|
|
|
|
|
|
| |
Before:
return options != nullptr &&operator==(*options);
After:
return options != nullptr && operator==(*options);
llvm-svn: 249501
|
| |
|
|
|
|
|
| |
Use llvm.eh.exceptioncode to get the code out of EAX for x64. For
32-bit, the filter is responsible for storing it to memory for us.
llvm-svn: 249497
|
| |
|
|
|
|
|
|
|
|
| |
minor cleanups
Patch by Eugene Zelenko!
Differential Revision: http://reviews.llvm.org/D13406
llvm-svn: 249484
|
| |
|
|
|
|
| |
Fixes a crash regression from r249410.
llvm-svn: 249413
|
| |
|
|
|
|
|
|
| |
ASTUnit was creating multiple FileManagers and throwing them away. Reuse
the one from Tooling. No functionality change now but necessary for
VFSifying tooling.
llvm-svn: 249410
|
| |
|
|
|
|
| |
more like a real FS.
llvm-svn: 249409
|
| |
|
|
|
|
|
|
|
|
| |
It took me some time to figure out why this is not working as expected:
std:error_code converts to true if there is an error. This means we never
ever took the generated absolute path, which happens to be the right thing
anyways as it properly works with virtual files. Just remove the whole
thing, relative paths are covered by existing tooling tests.
llvm-svn: 249408
|
| |
|
|
|
|
|
|
|
| |
This was made much easier by introducing an IncludeCategory struct to
replace the previously used std::pair.
Also, cleaned up documentation and added examples.
llvm-svn: 249392
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Adds `addTargetAndModeForProgramName`, a utility function that will add
appropriate `-target foo` and `--driver-mode=g++` tokens to a command
line for driver invocations of the form `a/b/foo-g++`. It is intended to
support tooling: for example, should a compilation database record some
invocation of `foo-g++` without these implicit flags, a Clang tool may
use this function to add them back.
Patch by Luke Zarko.
llvm-svn: 249391
|
| |
|
|
| |
llvm-svn: 249389
|
| |
|
|
| |
llvm-svn: 249388
|
| |
|
|
|
|
|
|
|
|
|
| |
Apart from being cleaner this also means that clang-format no longer has
access to the host file system. This isn't necessary because clang-format
never reads includes :)
Includes minor tweaks and bugfixes found in the VFS implementation while
running clang-format tests.
llvm-svn: 249385
|
| |
|
|
| |
llvm-svn: 249355
|
| |
|
|
|
|
|
|
|
| |
that change turns out to not be reasonable: mutating the AST of a parsed
template during instantiation is not a sound thing to do, does not work across
chained PCH / modules builds, and is in any case a special-case workaround to a
more general problem that should be solved centrally.
llvm-svn: 249342
|
| |
|
|
| |
llvm-svn: 249338
|
| |
|
|
|
|
|
|
| |
~CodeGenABITypes out-of-line, which should have the same effect.
Thanks to David Blaikie for pointing this out!
llvm-svn: 249336
|
| |
|
|
|
|
|
|
|
|
| |
include/clang/CodeGenABITypes.h is in meant to be included by external
users, but using a unique_ptr on the private CodeGenModule introduces a
dependency on the type definition that prevents such a use.
NFC
llvm-svn: 249328
|
| |
|
|
|
|
| |
and documentation.
llvm-svn: 249321
|
| |
|
|
| |
llvm-svn: 249319
|
| |
|
|
|
|
| |
No functional change intended.
llvm-svn: 249318
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For RealFileSystem this is getcwd()/chdir(), the synthetic file systems can
make up one for themselves. OverlayFileSystem now synchronizes the working
directories when a new FS is added to the overlay or the overlay working
directory is set. This allows purely artificial file systems that have zero
ties to the underlying disks.
Differential Revision: http://reviews.llvm.org/D13430
llvm-svn: 249316
|
| |
|
|
|
|
|
|
|
|
| |
This is a simple file system tree of memory buffers that can be filled by a
client. In conjunction with an OverlayFS it can be used to make virtual
files accessible right next to physical files. This can be used as a
replacement for the virtual file handling in FileManager and which I intend
to remove eventually.
llvm-svn: 249315
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 249314
|
| |
|
|
|
|
|
| |
This streamlines the interface a bit and makes Status more immutable.
No functional change intended.
llvm-svn: 249310
|
| |
|
|
|
|
|
|
| |
[ARM] armv6m + netbsd. Tests are misssing for armv6m + darwin as well.
Differential Revision: http://reviews.llvm.org/D13217
llvm-svn: 249308
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Reviewers: vkalintiris, atanasyan
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12234
llvm-svn: 249306
|
| |
|
|
| |
llvm-svn: 249302
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
OpenCL v1.1 s6.2.2: for the boolean value true, every bit in the result vector should be set.
This change treats the i1 value as signed for the purposes of performing the cast to integer,
and therefore sign extend into the result.
Patch by Neil Hickey!
http://reviews.llvm.org/D13349
llvm-svn: 249301
|
| |
|
|
|
|
|
| |
There are two remaining buildbot failures that we'll have to
investigate before submitting this again.
llvm-svn: 249298
|
| |
|
|
|
|
|
|
|
|
|
| |
r249137 added support for the new mips-mti-linux toolchain. However,
the new tests of that commit, broke some buildbots because they didn't use
the correct regular expressions to capture the filename of Clang & LLD.
This commit re-applies the changes of r249137 and fixes the tests in
r249137 in order to match the filenames of the Clang and LLD executable.
llvm-svn: 249294
|
| |
|
|
|
|
| |
when building a module.
llvm-svn: 249282
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In versions of clang prior to r238238, __declspec was recognized as a keyword in
all modes. It was then changed to only be enabled when Microsoft or Borland
extensions were enabled (and for CUDA, as a temporary measure). There is a
desire to support __declspec in Playstation code, and possibly other
environments. This commit adds a command-line switch to allow explicit
enabling/disabling of the recognition of __declspec as a keyword. Recognition
is enabled by default in Microsoft, Borland, CUDA, and PS4 environments, and
disabled in all other environments.
Patch by Warren Ristow!
llvm-svn: 249279
|
| |
|
|
| |
llvm-svn: 249259
|
| |
|
|
|
|
|
|
|
|
|
| |
Diagnose when a pointer to const T is used as the first argument in at atomic
builtin unless that builtin is a load operation. This is already checked for
C11 atomics builtins but not for __atomic ones.
This patch was given the LGTM by rsmith when it was part
of a larger review. (See http://reviews.llvm.org/D10407)
llvm-svn: 249252
|
| |
|
|
|
|
| |
+couple more of double-negated !SourceLocation.isInvalid() unfixed in r249228.
llvm-svn: 249235
|
| |
|
|
|
|
| |
SourceLocation.isValid().
llvm-svn: 249228
|