summaryrefslogtreecommitdiffstats
path: root/clang/test
Commit message (Collapse)AuthorAgeFilesLines
...
* [CodeGen] Always emit the 'min-legal-vector-width' attribute even when the ↵Craig Topper2018-10-252-2/+2
| | | | | | | | value is 0. The X86 backend will need to see the attribute to make decisions. If it isn't present the backend will have to assume large vectors may be present. llvm-svn: 345237
* [Sema] Fix -Wcomma for C89Richard Trieu2018-10-251-116/+127
| | | | | | | | | | | | There is a small difference in the scope flags for C89 versus the other C/C++ dialects. This change ensures that the -Wcomma warning won't be duplicated or issued in the wrong location. Also, the test case is refactored into C and C++ parts, with the C++ parts guarded by a #ifdef to allow the test to run in both modes. https://bugs.llvm.org/show_bug.cgi?id=32370 llvm-svn: 345228
* Revert "[SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03"Eric Fiselier2018-10-241-21/+0
| | | | | | This reverts commit 6f47cdd51341344c0e32630e19e72c94cd25f34e. llvm-svn: 345225
* Driver,CodeGen: introduce support for Swift CFString layoutSaleem Abdulrasool2018-10-242-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new driver level flag `-fcf-runtime-abi=` that allows one to specify the runtime ABI for CoreFoundation. This controls the language interoperability. In particular, this is relevant for generating the CFConstantString classes (primarily through the `__builtin___CFStringMakeConstantString` builtin) which construct a reference to the "CFObject"'s `isa` field. This type differs between swift 4.1 and 4.2+. Valid values for the new option include: - objc [default behaviour] - enable ObjectiveC interoperability - swift-4.1 - enable interoperability with swift 4.1 - swift-4.2 - enable interoperability with swift 4.2 - swift-5.0 - enable interoperability with swift 5.0 - swift [alias] - target the latest swift ABI Furthermore, swift 4.2+ changed the layout for the CFString when building CoreFoundation *without* ObjectiveC interoperability. In such a case, a field was added to the CFObject base type changing it from: <{ const int*, int }> to <{ uintptr_t, uintptr_t, uint64_t }>. In swift 5.0, the CFString type will be further adjusted to change the length from a uint32_t on everything but BE LP64 targets to uint64_t. Note that the default behaviour for clang remains unchanged and the new layout must be explicitly opted into via `-fcf-runtime-abi=swift*`. llvm-svn: 345222
* [VFS] Remove 'ignore-non-existent-contents' attribute for YAML-based VFS.Volodymyr Sapsai2018-10-249-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | 'ignore-non-existent-contents' stopped working after r342232 in a way that the actual attribute value isn't used and it works as if it is always `true`. Common use case for VFS iteration is iterating through files in umbrella directories for modules. Ability to detect if some VFS entries point to non-existing files is nice but non-critical. Instead of adding back support for `'ignore-non-existent-contents': false` I am removing the attribute, because such scenario isn't used widely enough and stricter checks don't provide enough value to justify the maintenance. rdar://problem/45176119 Reviewers: bruno Reviewed By: bruno Subscribers: hiraditya, dexonsmith, sammccall, cfe-commits Differential Revision: https://reviews.llvm.org/D53228 llvm-svn: 345212
* [SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03Eric Fiselier2018-10-241-0/+21
| | | | | | | | | | | | | | | | | | | | Summary: When -faligned-allocation is specified in C++03 libc++ defines std::align_val_t as an unscoped enumeration type (because Clang didn't provide scoped enumerations as an extension until 8.0). Unfortunately Clang confuses the `align_val_t` overloads of delete with the sized deallocation overloads which aren't enabled. This caused Clang to call the aligned deallocation function as if it were the sized deallocation overload. For example: https://godbolt.org/z/xXJELh This patch fixes the confusion. Reviewers: rsmith, EricWF Reviewed By: EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D53508 llvm-svn: 345211
* AMDGPU: Handle gfx909 in AMDGPUTargetInfo::initFeatureMapKonstantin Zhuravlyov2018-10-242-0/+9
| | | | | | + add required tests llvm-svn: 345181
* Do not always request an implicit taskgroup region inside the kmpc_taskloop ↵Alexey Bataev2018-10-2410-34/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function Summary: For the following code: ``` int i; #pragma omp taskloop for (i = 0; i < 100; ++i) {} #pragma omp taskloop nogroup for (i = 0; i < 100; ++i) {} ``` Clang emits the following LLVM IR: ``` ... call void @__kmpc_taskgroup(%struct.ident_t* @0, i32 %0) %2 = call i8* @__kmpc_omp_task_alloc(%struct.ident_t* @0, i32 %0, i32 1, i64 80, i64 8, i32 (i32, i8*)* bitcast (i32 (i32, %struct.kmp_task_t_with_privates*)* @.omp_task_entry. to i32 (i32, i8*)*)) ... call void @__kmpc_taskloop(%struct.ident_t* @0, i32 %0, i8* %2, i32 1, i64* %8, i64* %9, i64 %13, i32 0, i32 0, i64 0, i8* null) call void @__kmpc_end_taskgroup(%struct.ident_t* @0, i32 %0) ... %15 = call i8* @__kmpc_omp_task_alloc(%struct.ident_t* @0, i32 %0, i32 1, i64 80, i64 8, i32 (i32, i8*)* bitcast (i32 (i32, %struct.kmp_task_t_with_privates.1*)* @.omp_task_entry..2 to i32 (i32, i8*)*)) ... call void @__kmpc_taskloop(%struct.ident_t* @0, i32 %0, i8* %15, i32 1, i64* %21, i64* %22, i64 %26, i32 0, i32 0, i64 0, i8* null) ``` The first set of instructions corresponds to the first taskloop construct. It is important to note that the implicit taskgroup region associated with the taskloop construct has been materialized in our IR: the `__kmpc_taskloop` occurs inside a taskgroup region. Note also that this taskgroup region does not exist in our second taskloop because we are using the `nogroup` clause. The issue here is the 4th argument of the kmpc_taskloop call, starting from the end, is always a zero. Checking the LLVM OpenMP RT implementation, we see that this argument corresponds to the nogroup parameter: ``` void __kmpc_taskloop(ident_t *loc, int gtid, kmp_task_t *task, int if_val, kmp_uint64 *lb, kmp_uint64 *ub, kmp_int64 st, int nogroup, int sched, kmp_uint64 grainsize, void *task_dup); ``` So basically we always tell to the RT to do another taskgroup region. For the first taskloop, this means that we create two taskgroup regions. For the second example, it means that despite the fact we had a nogroup clause we are going to have a taskgroup region, so we unnecessary wait until all descendant tasks have been executed. Reviewers: ABataev Reviewed By: ABataev Subscribers: rogfer01, cfe-commits Differential Revision: https://reviews.llvm.org/D53636 llvm-svn: 345180
* [OPENMP]Fix PR39366: do not try to private field if it is not captured.Alexey Bataev2018-10-241-0/+13
| | | | | | | | | The compiler is crashing if we trying to post-capture the fields implicitly captured inside of the task constructs. Seems, this kind of processing is not supported and such fields should not be firstprivatized. llvm-svn: 345177
* [CodeGen] Update test checks missed in r345168.Craig Topper2018-10-242-41/+41
| | | | | | These tests don't run unless the aarch64 target is registered and my testing had been on an x86 only build directory. llvm-svn: 345176
* [Hexagon] Flip hexagon-autohvx to be true by defaultKrzysztof Parzyszek2018-10-241-3/+3
| | | | | | | | | | | This will allow other generators of LLVM IR to use the auto-vectorizer without having to change that flag. Note: on its own, this patch will disable auto-vectorization on Hexagon in all cases, regardless of the -fvectorize flag. There is a companion LLVM patch that together with this one forms an NFC for clang users. llvm-svn: 345170
* [CodeGen] Update min-legal-vector width based on function argument and ↵Craig Topper2018-10-2415-590/+693
| | | | | | | | | | | | return types This is a continuation of my patches to inform the X86 backend about what the largest IR types are in the function so that we can restrict the backend type legalizer to prevent 512-bit vectors on SKX when -mprefer-vector-width=256 is specified if no explicit 512 bit vectors were specified by the user. This patch updates the vector width based on the argument and return types of the current function and from the types of any functions it calls. This is intended to make sure the backend type legalizer doesn't disturb any types that are required for ABI. Differential Revision: https://reviews.llvm.org/D52441 llvm-svn: 345168
* [CodeComplete] Expose InBaseClass signal in code completion results.Eric Liu2018-10-242-36/+36
| | | | | | | | | | | | | | | | | Summary: No new tests as the existing tests for result priority should give us coverage. Also as the new flag is trivial enough, I'm reluctant to plumb the flag to c-index-test output. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D53635 llvm-svn: 345135
* [autocompletion] Handle the space before pressing tabYuka Takahashi2018-10-241-0/+6
| | | | | | | | | | | Summary: Distinguish "--autocomplete=-someflag" and "--autocomplete=-someflag," because the latter indicates that the user put a space before pushing tab which should end up in a file completion. Differential Revision: https://reviews.llvm.org/D53639 llvm-svn: 345133
* Support accepting __gnu__ as a scoped attribute namespace that aliases to gnu.Aaron Ballman2018-10-242-18/+29
| | | | | | This is useful in libstdc++ to avoid clashes with identifiers in the user's namespace. llvm-svn: 345132
* [Sema] Do not show unused parameter warnings when body is skippedIlya Biryukov2018-10-241-0/+8
| | | | | | | | | | | | | | Summary: Without the function body, we cannot determine is parameter was used. Reviewers: ioeric, sammccall Reviewed By: sammccall Subscribers: arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D53456 llvm-svn: 345122
* [bash-autocompletion] Fix bug when a flag ends with '='Yuka Takahashi2018-10-241-0/+6
| | | | | | | | | | | | | | | | | | There was a bug that when a flag ends with '=' and no value was suggested, clang autocompletes the flag itself. For example, in bash, it looked like this: ``` $ clang -fmodule-file=[tab] -> $clang -fmodule-file=-fmodule-file ``` This is not what we expect. We expect a file autocompletion when no value was found. With this patch, pressing tab suggests files in the current directory. Reviewers: teemperor, ruiu Subscribers: cfe-commits llvm-svn: 345121
* [Sema] Fix -Wcomma in dependent contextRichard Trieu2018-10-241-0/+10
| | | | | | | | | | When there is a dependent type inside a cast, the CastKind becomes CK_Dependent instead of CK_ToVoid. This fix will check that there is a dependent cast, the original type is dependent, and the target type is void to ignore the cast. https://bugs.llvm.org/show_bug.cgi?id=39375 llvm-svn: 345111
* Debug Info (-gmodules): emit full types for non-anchored template ↵Adrian Prantl2018-10-246-2/+122
| | | | | | | | | | | | | | | | | specializations Before this patch, clang would emit a (module-)forward declaration for template instantiations that are not anchored by an explicit template instantiation, but still are guaranteed to be available in an imported module. Unfortunately detecting the owning module doesn't reliably work when local submodule visibility is enabled and the template is inside a cross-module namespace. This make clang debuggable again with -gmodules and LSV enabled. rdar://problem/41552377 llvm-svn: 345109
* [analyzer] Do not stop tracking CXX methods touching OSObject.George Karpenkov2018-10-231-5/+44
| | | | | | | | Trust generalized annotations for OSObject. Differential Revision: https://reviews.llvm.org/D53550 llvm-svn: 345100
* [analyzer] Trust summaries for OSObject::retain and OSObject::releaseGeorge Karpenkov2018-10-231-1/+1
| | | | | | | | Refactor the way in which summaries are consumed for safeMetaCast Differential Revision: https://reviews.llvm.org/D53549 llvm-svn: 345099
* Change getRedeclContext() to support enumerations as another kind of ↵Aaron Ballman2018-10-231-0/+23
| | | | | | | | transparent context in C. This change fixes PR15071 and ensures that enumerators redefined in a struct cannot conflict with enumerators defined outside of the struct. llvm-svn: 345073
* [Fixed Point Arithmetic] Fixed Point to Boolean CastLeonard Chan2018-10-232-1/+53
| | | | | | | | | | This patch is a part of https://reviews.llvm.org/D48456 in an attempt to split the casting logic up into smaller patches. This contains the code for casting from fixed point types to boolean types. Differential Revision: https://reviews.llvm.org/D53308 llvm-svn: 345063
* [OpenCL] Add cl_intel_planar_yuv extensionAndrew Savonichev2018-10-231-2/+15
| | | | | | | | | | Just adding a preprocessor #define for the extension. Patch by Alexey Sotkin and Dmitry Sidorov Phabricator review: https://reviews.llvm.org/D51402 llvm-svn: 345044
* [clang] Fix a null pointer dereference.Kadir Cetinkaya2018-10-231-0/+10
| | | | | | | | | | | | | | | | | Summary: Sometimes expression inside switch statement can be invalid, for example type might be incomplete. In those cases code were causing a null pointer dereference. This patch fixes that. Reviewers: sammccall, ioeric, hokein Reviewed By: sammccall Subscribers: arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D53561 llvm-svn: 345029
* Revert r345009 "[DebugInfo] Generate debug information for labels. (After ↵Hans Wennborg2018-10-232-44/+0
| | | | | | | | | | | | | | | | | | | | | fix PR39094)" This broke the Chromium build. See https://bugs.chromium.org/p/chromium/issues/detail?id=898152#c1 for the reproducer. > Generate DILabel metadata and call llvm.dbg.label after label > statement to associate the metadata with the label. > > After fixing PR37395. > After fixing problems in LiveDebugVariables. > After fixing NULL symbol problems in AddressPool when enabling > split-dwarf-file. > After fixing PR39094. > > Differential Revision: https://reviews.llvm.org/D45045 llvm-svn: 345026
* [AST] Do not align virtual bases in `MicrosoftRecordLayoutBuilder` whenAleksandr Urakov2018-10-232-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | an external layout is used Summary: The patch removes alignment of virtual bases when an external layout is used. We have two cases: - the external layout source has an information about virtual bases offsets, so we just use them; - the external source has no information about virtual bases offsets. In this case we can't predict where the base will be located. If we will align it but there will be something like `#pragma pack(push, 1)` really, then likely our layout will not fit into the real structure size, and then some asserts will hit. The asserts look reasonable, so I don't think that we need to remove them. May be it would be better instead don't align fields / bases etc. (so treat it always as `#pragma pack(push, 1)`) when an external layout source is used but no info about a field location is presented. This one is related to D49871 Reviewers: rnk, rsmith, zturner, mstorsjo, majnemer Reviewed By: rnk Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D53497 llvm-svn: 345012
* [DebugInfo] Generate debug information for labels. (After fix PR39094)Hsiangkai Wang2018-10-232-0/+44
| | | | | | | | | | | | | | | Generate DILabel metadata and call llvm.dbg.label after label statement to associate the metadata with the label. After fixing PR37395. After fixing problems in LiveDebugVariables. After fixing NULL symbol problems in AddressPool when enabling split-dwarf-file. After fixing PR39094. Differential Revision: https://reviews.llvm.org/D45045 llvm-svn: 345009
* [MinGW] Link to correct openmp libraryMartin Storsjo2018-10-231-0/+21
| | | | | | | | Patch by Peiyuan Song! Differential Revision: https://reviews.llvm.org/D53397 llvm-svn: 345003
* [CodeGen] Attach InlineHint to more functionsRichard Trieu2018-10-231-0/+34
| | | | | | | For instantiated functions, search the template pattern to see if it marked inline to determine if InlineHint attribute should be added to the function. llvm-svn: 344987
* Revert "[Driver] Reland again: Default Android toolchains to libc++."Dan Albert2018-10-222-55/+65
| | | | | | More compiler-rt test bot breakages... llvm-svn: 344963
* Revert "Ensure sanitizer check function calls have a !dbg location"Vlad Tsyrklevich2018-10-221-17/+0
| | | | | | | This reverts commit r344915. It was causing exceptions on the x86_64-linux-ubsan bot. llvm-svn: 344961
* [Driver] fix broken testNick Desaulniers2018-10-221-1/+1
| | | | | | | | | | | | | | | | Summary: Fixes test from r344941 which was broken on Windows. We want to check the selected toolchain rather than the found toolchain anyways. Reviewers: srhines, danalbert Reviewed By: srhines Subscribers: cfe-commits, bogner, pirama Differential Revision: https://reviews.llvm.org/D53529 llvm-svn: 344958
* Give Multiversion-inline functions linkonce linkageErich Keane2018-10-221-8/+8
| | | | | | | | | | | | Since multiversion variant functions can be inline, in C they become available-externally linkage. This ends up causing the variants to not be emitted, and not available to the linker. The solution is to make sure that multiversion functions are always emitted by marking them linkonce. Change-Id: I897aa37c7cbba0c1eb2c57ee881d5000a2113b75 llvm-svn: 344957
* [Driver] Reland again: Default Android toolchains to libc++.Dan Albert2018-10-222-65/+55
| | | | | | | | | Some of the test data went missing last time I tried to submit this, causing the tests to fail when the build did not include libc++. Original review was https://reviews.llvm.org/D53109. llvm-svn: 344946
* [analyzer] Fix dumping for SymbolConjured conjured at no particular statement.Artem Dergachev2018-10-221-0/+15
| | | | llvm-svn: 344944
* [Driver] allow Android triples to alias for non Android targetsNick Desaulniers2018-10-221-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Partial revert of r330873 ('[Driver] Reland "Android triples are not aliases for other triples."') While we don't want `-target *-linux-android` to alias to non *-linux-android libs and binaries, it turns out we do want the opposite. Ie. We would like for `-target *-linux-gnu` to still be able to use *-android libs and binaries. In fact, this is used to cross assemble and link the Linux kernel for Android devices. `-target *-linux-gnu` needs to be used for the Linux kernel when using the android binutils prebuilts (*-linux-android). The use of `-target *-linux-android` on C source files will cause Clang to perform optimizations based on the presence of bionic (due to r265481 ('Faster stack-protector for Android/AArch64.')) which is invalid within the Linux kernel and will produce a non-bootable kernel image. Of course, you could just use the standard binutils (*-linux-gnu), but Android does not distribute these. So this patch fixes a problem that only occurs when cross assembling and linking a Linux kernel with the Android provided binutils, which is what is done within Android's build system. Reviewers: srhines, pirama, danalbert Reviewed By: srhines, danalbert Subscribers: javed.absar, kristof.beyls, cfe-commits Differential Revision: https://reviews.llvm.org/D53463 llvm-svn: 344941
* Ensure sanitizer check function calls have a !dbg locationAdrian Prantl2018-10-221-0/+17
| | | | | | | | | | | | | | | | | Function calls without a !dbg location inside a function that has a DISubprogram make it impossible to construct inline information and are rejected by the verifier. This patch ensures that sanitizer check function calls have a !dbg location, by carrying forward the location of the preceding instruction or by inserting an artificial location if necessary. This fixes a crash when compiling the attached testcase with -Os. rdar://problem/45311226 Differential Revision: https://reviews.llvm.org/D53459 llvm-svn: 344915
* Silence the -Wshadow warning for enumerators shadowing a type.Aaron Ballman2018-10-222-0/+14
| | | | | | Amends r344259 so that enumerators shadowing types are not diagnosed, as shadowing under those circumstances is rarely (if ever) an issue in practice. llvm-svn: 344898
* [CodeComplete] Fix accessibility of protected members when accessing members ↵Eric Liu2018-10-221-5/+16
| | | | | | | | | | | | implicitly. Reviewers: ilya-biryukov Subscribers: arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D53369 llvm-svn: 344889
* [AST, analyzer] Transform rvalue cast outputs to lvalues ↵Aleksei Sidorin2018-10-202-2/+32
| | | | | | | | | | | | | (fheinous-gnu-extensions) Despite the fact that cast expressions return rvalues, GCC still handles such outputs as lvalues when compiling inline assembler. In this commit, we are treating it by removing LValueToRValue casts inside GCCAsmStmt outputs. Differential Revision: https://reviews.llvm.org/D45416 llvm-svn: 344864
* [X86] Add more intrinsics to match icc.Craig Topper2018-10-203-5/+81
| | | | | | | | | | This adds _mm_loadu_epi8, _mm256_loadu_epi8, _mm512_loadu_epi8 _mm_loadu_epi16, _mm256_loadu_epi16, _mm512_loadu_epi16 _mm_storeu_epi8, _mm256_storeu_epi8, _mm512_storeu_epi8 _mm_storeu_epi16, _mm256_storeu_epi16, _mm512_storeu_epi16 llvm-svn: 344862
* [X86] Add missing intrinsics to match icc.Craig Topper2018-10-202-45/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds _mm_and_epi32, _mm_and_epi64 _mm_andnot_epi32, _mm_andnot_epi64 _mm_or_epi32, _mm_or_epi64 _mm_xor_epi32, _mm_xor_epi64 _mm256_and_epi32, _mm256_and_epi64 _mm256_andnot_epi32, _mm256_andnot_epi64 _mm256_or_epi32, _mm256_or_epi64 _mm256_xor_epi32, _mm256_xor_epi64 _mm_loadu_epi32, _mm_loadu_epi64 _mm_load_epi32, _mm_load_epi64 _mm256_loadu_epi32, _mm256_loadu_epi64 _mm256_load_epi32, _mm256_load_epi64 _mm512_loadu_epi32, _mm512_loadu_epi64 _mm512_load_epi32, _mm512_load_epi64 _mm_storeu_epi32, _mm_storeu_epi64 _mm_store_epi32, _mm_load_epi64 _mm256_storeu_epi32, _mm256_storeu_epi64 _mm256_store_epi32, _mm256_load_epi64 _mm512_storeu_epi32, _mm512_storeu_epi64 _mm512_store_epi32,V _mm512_load_epi64 llvm-svn: 344861
* [CodeGen] Use the mangle context owned by CodeGenModule to correctlyAkira Hatanaka2018-10-201-1/+59
| | | | | | | | | | | | | | | mangle types of lambda objects captured by a block instead of creating a new mangle context everytime a captured field type is mangled. This fixes a bug in IRGen's block helper merging code that was introduced in r339438 where two blocks capturing two distinct lambdas would end up sharing helper functions and the block descriptor. This happened because the ID number used to distinguish lambdas defined in the same context is reset everytime a mangled context is created. rdar://problem/45314494 llvm-svn: 344833
* [X86] Add support for more than 32 features for __builtin_cpu_isCraig Topper2018-10-202-0/+17
| | | | | | | | | | | | | | libgcc supports more than 32 features by adding a new 32-bit variable __cpu_features2. This adds the clang support for checking these feature bits. Patches for compiler-rt and llvm to support this are coming as well. Probably still need an additional patch for target multiversioning in clang. Differential Revision: https://reviews.llvm.org/D53458 llvm-svn: 344832
* Make -Wfor-loop-analysis work with C++17Richard Trieu2018-10-201-1/+22
| | | | | | | | | For now, disable the "variable in loop condition not modified" warning to not be emitted when there is a structured binding variable in the loop condition. https://bugs.llvm.org/show_bug.cgi?id=39285 llvm-svn: 344828
* [X86] When checking the bits in cpu_features for function multiversioning ↵Craig Topper2018-10-202-2/+17
| | | | | | | | | | | | | | | | | | | dispatcher in the resolver, make sure all the required bits are set. Not just one of them Summary: The multiversioning code repurposed the code from __builtin_cpu_supports for checking if a single feature is enabled. That code essentially performed (_cpu_features & (1 << C)) != 0. But with the multiversioning path, the mask is no longer guaranteed to be a power of 2. So we return true anytime any one of the bits in the mask is set not just all of the bits. The correct check is (_cpu_features & mask) == mask Reviewers: erichkeane, echristo Reviewed By: echristo Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D53460 llvm-svn: 344824
* Revert "[Driver] Reland: Default Android toolchains to libc++."Dan Albert2018-10-191-55/+65
| | | | | | This reverts commit 84677d5009d613232d360fda27e6e41fb5cb6700. llvm-svn: 344806
* PR24164, PR39336: init-captures are not distinct full-expressions.Richard Smith2018-10-193-5/+68
| | | | | | | | | Rather, they are subexpressions of the enclosing lambda-expression, and any temporaries in them are destroyed at the end of that full-expression, or when the corresponding lambda-expression is destroyed if they are lifetime-extended. llvm-svn: 344801
* Add basic test that we perform lifetime extension in the expectedRichard Smith2018-10-191-0/+190
| | | | | | situations. llvm-svn: 344800
OpenPOWER on IntegriCloud