- May 04, 2016
-
-
Kostya Serebryany authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268540 91177308-0d34-0410-b5e6-96231b3b80d8
-
Akira Hatanaka authored
This fixes a crash that occurs when a block captures a reference that is captured by its enclosing lambda. rdar://problem/18586651 Differential Revision: http://reviews.llvm.org/D19536 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268532 91177308-0d34-0410-b5e6-96231b3b80d8
-
Akira Hatanaka authored
BuildBlockForLambdaConversion. Previously, clang would build an incorrect AST for the following code: id test() { return @{@"a": [](){}, @"b": [](){}}; } ReturnStmt 0x10d080448 `-ExprWithCleanups 0x10d080428 |-cleanup Block 0x10d0801f0 // points to the second BlockDecl ... -BlockDecl 0x10d07f150 // First block ... -BlockDecl 0x10d0801f0 // Second block ... `-ExprWithCleanups 0x10d0801d0 |-cleanup Block 0x10d07f150 // points to the first BlockDecl To fix the bug, this commit enters a new evaluation context to reset ExprNeedsCleanups before each block is parsed. rdar://problem/16879958 Differential Revision: http://reviews.llvm.org/D18815 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268527 91177308-0d34-0410-b5e6-96231b3b80d8
-
Pete Cooper authored
r268509 causes this test case to be fully unrolled, so checking for an icmp is no longer valid. Given that this test is for ARC anyway, checking for the icmp seems unecessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268523 91177308-0d34-0410-b5e6-96231b3b80d8
-
Igor Kudrin authored
[Coverage] Fix an issue where a coverage region might not be created for a macro containing a loop statement. The issue happened when a macro contained a full for or while statement, which body ended at the end of the macro. Differential Revision: http://reviews.llvm.org/D19725 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268511 91177308-0d34-0410-b5e6-96231b3b80d8
-
Marianne Mailhot-Sarrasin authored
Let the loop unroll pass handle /Os. It already checks that option and adjust its thresholds accordingly. Also, will allow the #pragma unroll to have an effect in /Os. Differential Revision: http://reviews.llvm.org/D19827 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268509 91177308-0d34-0410-b5e6-96231b3b80d8
-
Gabor Horvath authored
Summary: Matcher proposed in the review of checker misc-assign-operator (name pending). Its goal is to find the direct enclosing function declaration of a statement and run the inner matcher on it. Two version is attached in this patch (thus it will not compile), to be decided which approach to take. The second one always chooses one single parent while the first one does a depth-first search upwards (thus a height-first search) and returns the first positive match of the inner matcher (thus it always returns zero or one matches, not more). Further questions: is it enough to implement it in-place, or ASTMatchersInternals or maybe ASTMatchFinder should be involved? Reviewers: sbenza Subscribers: aaron.ballman, klimek, o.gyorgy, xazax.hun, cfe-commits Differential Revision: http://reviews.llvm.org/D19357 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268490 91177308-0d34-0410-b5e6-96231b3b80d8
-
Andrey Turetskiy authored
Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87. -m[no-]80387 options is added for compatibility with GCC. Differential Revision: http://reviews.llvm.org/D19658 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268489 91177308-0d34-0410-b5e6-96231b3b80d8
-
Andrey Turetskiy authored
Differential Revision: http://reviews.llvm.org/D19658 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268488 91177308-0d34-0410-b5e6-96231b3b80d8
-
Andrey Turetskiy authored
Differential Revision: http://reviews.llvm.org/D19658 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268487 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Dewhurst authored
This code implements builtin_setjmp and builtin_longjmp exception handling intrinsics for 32-bit Sparc back-ends. The code started as a mash-up of the PowerPC and X86 versions, although there are sufficient differences to both that had to be made for Sparc handling. Note: I have manual tests running. I'll work on a unit test and add that to the rest of this diff in the next day. Also, this implementation is only for 32-bit Sparc. I haven't focussed on a 64-bit version, although I have left the code in a prepared state for implementing this, including detecting pointer size and comments indicating where I suspect there may be differences. Differential Revision: http://reviews.llvm.org/D19798 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268483 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D19765 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268481 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
The -malign-double flag causes i64 and f64 types to have alignment 8 instead of 4. On x86-64, the behavior of -malign-double is enabled by default. Rebases and cleans phosek's work here: http://reviews.llvm.org/D12860 Patch by Sean Klein Reviewers: rnk Subscribers: rnk, jfb, dschuff, phosek Differential Revision: http://reviews.llvm.org/D19734 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268473 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
This commit fixes the IdentifierIterator to actually include identifiers from a PCH or precompiled preamble when there is also a global module index. This was causing code-completion (outside of C++) and typo-correction to be missing global identifiers defined in the PCH/preamble. Typo-correction has been broken since we first started using the module index, whereas code-completion only started relying on identifier iterator in r232793. rdar://problem/25642879 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268471 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Blaikie authored
These constructs are only applicable to a debugger capable of loading a Clang AST, so omit them for brevity when not doing so. We could potentially propagate more of CodeGenOptions through the ObjectFilePCGContainerOperations for consistency (so the next person who adds some CodeGenOpts feature that tweaks debug info output doesn't get caught by this), so I'm open to objections/alternatives there, but went with this for now. Tested just a couple of basic cases (one direct, one indirect (through the ObjectFilePCHContainerOperations) & fixed up other cases to pass the -debugger-tuning flag as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268460 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Blaikie authored
This fixes dead store warnings of the type "dead assignment" reported by CLang Static Analyzer on the following file: - tools/c-index-test/c-index-test.c. Patch by Apelete Seketeli <apelete@seketeli.net>! Differential Revision: http://reviews.llvm.org/D19831 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268453 91177308-0d34-0410-b5e6-96231b3b80d8
-
- May 03, 2016
-
-
David L Kreitzer authored
The change reflects llvm r268431. Patch by Michael Lemay (michael.lemay@intel.com) Differential Revision: http://reviews.llvm.org/D19458 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268432 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268423 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
Use a utility function to check whether the number of elements is a power of 2 and drop the redundant upper limit (a 128-bit vector with more than 16 elements would have each element < 8 bits, not possible). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268422 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268419 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
If we are devirtualizing, then we want to compute the 'this' adjustment of the devirtualized target, not the adjustment of the base's method definition, which is usually zero. Fixes PR27621 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268418 91177308-0d34-0410-b5e6-96231b3b80d8
-
Pete Cooper authored
We were seeing an internal failure when running this test. I can't see a good reason for the difference, but the simple fix is to use %{{.*}} instead of %1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268416 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Zuckerman authored
[clang][AVX512][BuiltIn] Adding intrinsics for cast{pd|ps|si}128_{pd|ps|si}512 and castsi256_si512 instruction set Differential Revision: http://reviews.llvm.org/D19858 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268387 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D19766 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268385 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D19767 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268376 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D19768 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268373 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D19808 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268372 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sergey Kalinichev authored
Differential Revision: http://reviews.llvm.org/D11797 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268366 91177308-0d34-0410-b5e6-96231b3b80d8
-
Xiuli Pan authored
Summary: Fix the dump of PipeType. Now we will have "pipe int" and element type. Reviewers: yaxunl, Anastasia Subscribers: cfe-commits, bader Differential Revision: http://reviews.llvm.org/D19524 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268364 91177308-0d34-0410-b5e6-96231b3b80d8
-
Douglas Yung authored
Differential Revision: http://reviews.llvm.org/D19048 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268344 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This enables installing the libcxx headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268322 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
r268261 made Clang "expand" more struct arguments on Windows. It removed the check for 'RD->isCLike()', which was preventing us from attempting to expand structs with reference type fields. Our expansion code was attempting to load and pass each field of the type in turn. We were accidentally doing one to many loads on reference type fields. On the function prologue side, we can use EmitLValueForFieldInitialization, which obviously gets the address of the field. On the call side, I tweaked EmitRValueForField directly, since this is the only use of this method. Fixes PR27607 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268321 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This installs the clang headers as part of the install-distribution target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268320 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This installs the clang headers as part of the install-distribution target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268319 91177308-0d34-0410-b5e6-96231b3b80d8
-
Akira Hatanaka authored
It isn't necessary to call hasDefaultArg because we can't rematerialize a captured variable that is a function parameter, regardless of whether or not it has a default argument. NFC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268318 91177308-0d34-0410-b5e6-96231b3b80d8
-
- May 02, 2016
-
-
Akira Hatanaka authored
parameters in the body of a block. This fixes a bug where clang would materialize the default argument inside the body of a block instead of passing the value via the block descriptor. For example, in the code below, foo1 would always print 42 regardless of the value of argument "a" passed to foo1. void foo1(const int a = 42 ) { auto block = ^{ printf("%d\n", a); }; block(); } rdar://problem/24449235 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268314 91177308-0d34-0410-b5e6-96231b3b80d8
-
Artem Belevich authored
__global__ functions are a special case in CUDA. Even when the symbol would normally not be externally visible according to C++ rules, they still must be visible in CUDA GPU object so host-side stub can launch them. Differential Revision: http://reviews.llvm.org/D19748 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268299 91177308-0d34-0410-b5e6-96231b3b80d8
-
Bruno Cardoso Lopes authored
This reverts commit r264813 / 6484b95d. While using it in the shell is fine, this a problem when cc1as is invoked directly by the driver because single quoting the clang full version makes cc1as write out the version with the quotes in the final binary. If the user wants to copy-n-pastable output, it could use either -### or CC_PRINT_OPTIONS=1 clang -v ... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268297 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
Before this change, we would pass all non-HFA record arguments on Windows with byval. Byval often blocks optimizations and results in bad code generation. Windows now uses the existing workaround that other x86_32 platforms use. I also expanded the workaround to handle C++ records with constructors on Windows. On non-Windows platforms, we have to keep generating the same LLVM IR prototypes if we want our bitcode to be ABI compatible. Otherwise we will encounter mismatch issues like PR21573. Essentially fixes PR27522 in Clang instead of LLVM. Reviewers: hans Differential Revision: http://reviews.llvm.org/D19756 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268261 91177308-0d34-0410-b5e6-96231b3b80d8
-
Derek Schuff authored
This follows the recent change in the wasm spec. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268256 91177308-0d34-0410-b5e6-96231b3b80d8
-