summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* [modules] Fix crash with multiple levels of default template argument merging.Richard Smith2015-06-113-1/+8
| | | | llvm-svn: 239575
* [cleanup] Remove some unused #ifdef'sSean Silva2015-06-112-19/+0
| | | | | | | This is all going through the VFS layer now, so there's nothing platform-specific here. llvm-svn: 239573
* Add assume_safety option for pragma loop vectorize and interleave.Tyler Nowicki2015-06-1110-18/+139
| | | | | | | | Specifying #pragma clang loop vectorize(assume_safety) on a loop adds the mem.parallel_loop_access metadata to each load/store operation in the loop. This metadata tells loop access analysis (LAA) to skip memory dependency checking. llvm-svn: 239572
* [modules] Fix assert/crash when parsing and merging a definition of a class ↵Richard Smith2015-06-114-11/+26
| | | | | | with a base-specifier inside a namespace. llvm-svn: 239569
* [ms] Do lookup in dependent base classes also when overload resolution fails ↵Hans Wennborg2015-06-112-22/+44
| | | | | | | | | | | | | | | | | | | (PR23810) This patch does two things in order to enable compilation of the problematic code in PR23810: 1. In Sema::buildOverloadedCallSet, it postpones lookup for MS mode when no viable candidate is found in the overload set. Previously, lookup would only be postponed here if the overload set was empty. 2. Make BuildRecoveryCallExpr call Sema::DiagnoseEmptyLookup under more circumstances. There is a comment in DiagnoseTwoPhaseLookup that says "Don't diagnose names we find in classes; we get much better diagnostics for these from DiagnoseEmptyLookup." The problem was that DiagnoseEmptyLookup might not get called later, and we failed to recover. Differential Revision: http://reviews.llvm.org/D10369 llvm-svn: 239558
* [CodeGen] Emit Constants for immediate inlineasm arguments.Ahmed Bougacha2015-06-112-0/+35
| | | | | | | | | | | | | | | | | For inline assembly immediate constraints, we currently always use EmitScalarExpr, instead of directly emitting the constant. When the overflow sanitizer is enabled, this generates overflow intrinsics instead of constants. Instead, emit a constant for constraints that either require an immediate (e.g. 'I' on X86), or only accepts constants (immediate or symbolic; i.e., don't accept registers or memory). Fixes PR19763. Differential Revision: http://reviews.llvm.org/D10255 llvm-svn: 239549
* clang-cl: Add an alias for /wd4910Hans Wennborg2015-06-112-1/+4
| | | | llvm-svn: 239548
* Spell -Wdllexport-explicit-instantiation-decl correctly.Hans Wennborg2015-06-111-1/+1
| | | | llvm-svn: 239547
* Add comments to PrintActions1 and Driver::PrintActions.Douglas Katzman2015-06-111-1/+6
| | | | | | Differential Revision: http://reviews.llvm.org/D10214 llvm-svn: 239537
* add the -mrecip driver flag and process its options (3rd try)Sanjay Patel2015-06-116-1/+211
| | | | | | | | | | | | | | | | | | | The 1st and 2nd tries to land this (r238055, r238851) were reverted due to bot failures caused by the LLVM part of the patch. That was hopefully fixed after r239001. This is the front-end counterpart to D8982. The -mrecip option interface is based on maintaining compatibility with gcc: https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/i386-and-x86-64-Options.html#index-mrecip_003dopt-1627 https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/RS_002f6000-and-PowerPC-Options.html#index-mrecip-2289 ...while adding more functionality (allowing users to specify the number of refinement steps for each estimate type). Differential Revision: http://reviews.llvm.org/D8989 llvm-svn: 239536
* clang-format: Make SFS_Inline imply SFS_Empty.Daniel Jasper2015-06-114-32/+26
| | | | | | | | | | In the long run, these two might be independent or we might to only allow specific combinations. Until we have a corresponding request, however, it is hard to do the right thing and choose the right configuration options. Thus, just don't touch the options yet and just modify the behavior slightly. llvm-svn: 239531
* clang-format: [JS] Ensure that formatting actually takes place in tests.Daniel Jasper2015-06-112-2/+5
| | | | | | And fix formatting issue discovered by that :-). llvm-svn: 239530
* C++11 rangify several loops.Yaron Keren2015-06-111-36/+21
| | | | llvm-svn: 239528
* Allow case-insensitive values for -march for ARM in line with GCC.Gabor Ballabas2015-06-113-8/+18
| | | | | | | GCC allows case-insensitive values for -mcpu, -march and -mtune options. This patch implements the same behaviour for the -march option for ARM. llvm-svn: 239527
* Token: complement is() method with isOneOf() to allow easier usageDaniel Marjamaki2015-06-111-0/+7
| | | | llvm-svn: 239526
* [mips] Pass on -m{single,double}-float to GAS.Toma Tabacu2015-06-112-0/+13
| | | | | | | | | | | | | | Summary: We already pass these to the IAS, but not to GAS. Reviewers: dsanders, atanasyan Reviewed By: atanasyan Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10358 llvm-svn: 239525
* [OPENMP] Fox for http://llvm.org/PR23663: OpenMP crashAlexey Bataev2015-06-112-26/+34
| | | | | | Destroy RuntimeCleanupScope before generation of termination instruction in parallel loop precondition. llvm-svn: 239524
* Fix crash in clang-format.Manuel Klimek2015-06-112-3/+8
| | | | | | | | | | | The following example used to crash clang-format. #define a\ /**/} Adjusting the indentation level cache for the line starting with the comment would lead to an out-of-bounds array read. llvm-svn: 239521
* clang-format: Don't add spaces in foreach macro definition.Daniel Jasper2015-06-112-1/+16
| | | | | | | | | | | | Before clang-format would e.g. add a space into #define Q_FOREACH(x, y) which turns this into a non-function-like macro. Patch by Strager Neds, thank you! llvm-svn: 239513
* Reinstate r239499 and r239503David Majnemer2015-06-113-26/+39
| | | | | | | They were reverted because the FileCheck patterns didn't match on release builds. llvm-svn: 239512
* Revert "[MS ABI] Allow fastcall member function pointers to get CodeGen'd"Manuel Klimek2015-06-113-39/+26
| | | | | | | | | | | | Revert "[MS ABI] Allow memfn pointers with unconvertible types to be formed" This reverts r239499 and r239503; the former breaks tests [1] and the latter is based on the former. [1] http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/4473/testReport/Clang/CodeGenCXX/microsoft_abi_virtual_member_pointers_cpp/ llvm-svn: 239511
* Clang support for vector quad bit permute and gather instructions through ↵Nemanja Ivanovic2015-06-113-0/+49
| | | | | | | | | | | | | builtins This patch corresponds to review: http://reviews.llvm.org/D10095 This is for just two instructions and related builtins: vbpermq vgbbd llvm-svn: 239506
* [modules] Fix a few places where merging wasn't performed if modules was ↵Richard Smith2015-06-116-4/+30
| | | | | | disabled but local module visibilty was enabled. llvm-svn: 239504
* [MS Compatibility] Handle cleanups we create for a ctor closureDavid Majnemer2015-06-112-0/+17
| | | | | | This fixes PR23801. llvm-svn: 239503
* [MS ABI] Allow fastcall member function pointers to get CodeGen'dDavid Majnemer2015-06-112-19/+18
| | | | | | | This restriction appears unnecessary and most likely came about during early work for musttail. llvm-svn: 239500
* [MS ABI] Allow memfn pointers with unconvertible types to be formedDavid Majnemer2015-06-112-8/+22
| | | | | | | | Remove the restriction which forbade forming pointers to member functions which had parameter types or return types which were not convertible. llvm-svn: 239499
* [bpf] add support for BPF backendAlexei Starovoitov2015-06-103-0/+68
| | | | | | add support for bpfel/bpfeb targets llvm-svn: 239496
* Work around MSVC miscompilation.Richard Smith2015-06-101-3/+2
| | | | llvm-svn: 239494
* [modules] Don't allow use of non-visible (inherited) default template arguments.Richard Smith2015-06-103-8/+12
| | | | llvm-svn: 239487
* [modules] Track all default template arguments for a given parameter acrossRichard Smith2015-06-1011-30/+97
| | | | | | | modules, and allow use of a default template argument if any of the parameters providing it is visible. llvm-svn: 239485
* Do not parse members of incomplete class.Serge Pavlov2015-06-102-2/+16
| | | | | | | | | | If definition of a class is unknown and out-of-line definition of its member is encountered, do not parse the member declaration. This change fixes PR18542. Differential Revision: http://reviews.llvm.org/D8010 llvm-svn: 239483
* Pass down the -flto option to the -cc1 job, and from there into theTeresa Johnson2015-06-106-1/+20
| | | | | | | | | | | | CodeGenOptions and onto the PassManagerBuilder. This enables gating the new EliminateAvailableExternally module pass on whether we are preparing for LTO. If we are preparing for LTO (e.g. a -flto -c compile), the new pass is not included as we want to preserve available externally functions for possible link time inlining. llvm-svn: 239481
* some StmtExprs do not have side-effectsScott Douglass2015-06-103-1/+39
| | | | | | Differential Revision: http://reviews.llvm.org/D10211 llvm-svn: 239476
* add ConstEvaluatedExprVisitorScott Douglass2015-06-106-54/+76
| | | | | | Differential Revision: http://reviews.llvm.org/D10210 llvm-svn: 239474
* PR5172: Fix for a bug in pragma redefine_extname implementation:Alexander Musman2015-06-102-9/+33
| | | | | | | | | | | it doesn't work correctly when a structure is declared before pragma and then a function with the same name declared after pragma. Patch by Andrey Bokhanko Differential Revision: http://reviews.llvm.org/D10187 llvm-svn: 239466
* clang-format: [JS] Only special case top level object literalDaniel Jasper2015-06-102-3/+8
| | | | | | | | | | | | | | | | | | | | | | assignments as enums. Top level object literals are treated as enums, and their k/v pairs are put on separate lines: X.Y = { A: 1, B: 2 }; However assignments within blocks should not be affected: function x() { y = {a:1, b:2}; } This change fixes the second case. Patch by Martin Probst. llvm-svn: 239462
* Fix the test case to handle different IR variable names.Yunzhong Gao2015-06-101-6/+6
| | | | llvm-svn: 239457
* [modules] Reconstruct template default argument inheritance on reload ratherRichard Smith2015-06-102-29/+57
| | | | | | than wasting storage and triggering eager deserializations by serializing it. llvm-svn: 239454
* [cleanup] Remove unused default argument and tidy up.Sean Silva2015-06-102-30/+7
| | | | | | | | | The RequestingModule argument was unused and always its default value of nullptr. Also move a declaration closer to its use, and range-for'ify. llvm-svn: 239453
* Revert accidentally-committed test change from r239447.Richard Smith2015-06-103-12/+1
| | | | llvm-svn: 239452
* Refactor storage of default template arguments.Richard Smith2015-06-109-102/+181
| | | | | | | This is just a preparatory step towards fixing visibility for default template arguments in modules builds. llvm-svn: 239447
* Implementing C99 partial re-initialization behavior (DR-253)Yunzhong Gao2015-06-1028-45/+872
| | | | | | | | | | | | | | | | | | | | | | | | | Based on previous discussion on the mailing list, clang currently lacks support for C99 partial re-initialization behavior: Reference: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-April/029188.html Reference: http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_253.htm This patch attempts to fix this problem. Given the following code snippet, struct P1 { char x[6]; }; struct LP1 { struct P1 p1; }; struct LP1 l = { .p1 = { "foo" }, .p1.x[2] = 'x' }; // this example is adapted from the example for "struct fred x[]" in DR-253; // currently clang produces in l: { "\0\0x" }, // whereas gcc 4.8 produces { "fox" }; // with this fix, clang will also produce: { "fox" }; Differential Review: http://reviews.llvm.org/D5789 llvm-svn: 239446
* Attach attribute "disable-tail-calls" to the functions in the IR.Akira Hatanaka2015-06-096-12/+23
| | | | | | | | | | | This commit adds back the code that seems to have been dropped unintentionally in r176985. rdar://problem/13752163 Differential Revision: http://reviews.llvm.org/D10100 llvm-svn: 239426
* [ItaniumMangle] Mangle long double as __float128 for some Power targetsDavid Majnemer2015-06-094-1/+25
| | | | | | | | | | GCC mangles long double like __float128 in order to support compatibility with ABI variants which had a different interpretation of long double. This fixes PR23791. llvm-svn: 239421
* Revert "Re-land r236052, "[SEH] Add 32-bit lowering code for __try""Reid Kleckner2015-06-098-278/+153
| | | | | | | This reverts commit r239415. This was committed accidentally, LLVM isn't ready for this. llvm-svn: 239417
* Disable style-on-command-line test on WindowsReid Kleckner2015-06-091-0/+4
| | | | llvm-svn: 239416
* Re-land r236052, "[SEH] Add 32-bit lowering code for __try"Reid Kleckner2015-06-098-153/+278
| | | | | | | | This reverts r236167. LLVM should be ready for this now. llvm-svn: 239415
* [PowerPC] Reformat altivec.h with clang-formatBill Seurer2015-06-091-7361/+4978
| | | | | | This revision just fixes the formatting of altivec.h. llvm-svn: 239408
* Move target-specific Sema test to its own file.Jonathan Roelofs2015-06-092-6/+9
| | | | | | Fixing the build-break introduced in r239406. llvm-svn: 239407
* Fix printing of GCCAsmExprs with input or output arguments.Jonathan Roelofs2015-06-092-2/+10
| | | | | | Patch by Nick Sumner! llvm-svn: 239406
OpenPOWER on IntegriCloud