aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-06-22Merging r228118:release_36Tom Stellard
------------------------------------------------------------------------ r228118 | sameer.sahasrabuddhe | 2015-02-04 01:38:18 -0500 (Wed, 04 Feb 2015) | 8 lines OpenCL: handle ternary operator when the condition is a vector When the condition is a vector, OpenCL specifies additional requirements on the operand types, and also the operations required to determine the result type of the operator. This is a combination of OpenCL v1.1 s6.3.i and s6.11.6, and the semantics remain unchanged in later versions of OpenCL. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@240324 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-05Merging r235931:Tom Stellard
------------------------------------------------------------------------ r235931 | aaron | 2015-04-27 18:31:12 -0400 (Mon, 27 Apr 2015) | 2 lines Check whether the operand to a noexcept expression is valid or not. Fixes PR15842. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236502 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-04Merging r232786:Tom Stellard
------------------------------------------------------------------------ r232786 | david.majnemer | 2015-03-19 20:02:27 -0400 (Thu, 19 Mar 2015) | 7 lines Don't crash-on-valid when an inline function is friend of class template We assumed that the most recent declaration of an inline function would also be inline. However, a more recent declaration can come from a friend declaration in a class template that is instantiated at the definition of the function. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236442 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-04Merging r232675:Tom Stellard
------------------------------------------------------------------------ r232675 | rtrieu | 2015-03-18 17:52:47 -0400 (Wed, 18 Mar 2015) | 9 lines When cloning LocalInstantiationScope's, don't update the current scope in Sema. Construction of LocalInstantiationScope automatically updates the current scope inside Sema. However, when cloning a scope, the current scope does not change. Change the cloning function to preserve the current scope. Review: http://reviews.llvm.org/D8407 BUG: https://llvm.org/bugs/show_bug.cgi?id=22931 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236441 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-04Merging r232425:Tom Stellard
------------------------------------------------------------------------ r232425 | rtrieu | 2015-03-16 17:49:43 -0400 (Mon, 16 Mar 2015) | 4 lines Take the non-reference type when constructing a dummy expression. Otherwise, Expr will assert during construction with a reference type. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236440 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-04Merging r230603:Tom Stellard
------------------------------------------------------------------------ r230603 | rtrieu | 2015-02-25 21:40:48 -0500 (Wed, 25 Feb 2015) | 8 lines Update assumption in template diffing about integer template arguments. Fix for PR22017. Integer template arguments are automatically bit extended to the size of the integer type. In template diffing, evaluated expressions were not having their results extending, leading to comparing two APSInt's with different widths. Apply the proper bit extending when evaluating template arguments. This mainly affected bool template arguments. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236439 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-04Merging r226983:Tom Stellard
------------------------------------------------------------------------ r226983 | rtrieu | 2015-01-23 21:48:32 -0500 (Fri, 23 Jan 2015) | 16 lines When checking the template argument list, use a copy of that list for changes and only update the orginal list on a valid arugment list. When checking an individual expression template argument, and conversions are required, update the expression in the template argument. Since template arguments are speculatively checked, the copying of the template argument list prevents updating the template arguments when the list does not match the template. Additionally, clean up the integer checking code in the template diffing code. The code performs unneccessary conversions from APSInt to APInt. Fixes PR21758. This essentially reverts r224770 to recommits r224667 and r224668 with extra changes to prevent the template instantiation problems seen in PR22006. A test to catch the discovered problem is also added. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236438 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-04Revert "Merging r232439:"Tom Stellard
This reverts commit r236305. This commit requires an ABI change to LLVM, which is not allowed for stable releases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236437 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-01Merging r232439:Tom Stellard
------------------------------------------------------------------------ r232439 | mail | 2015-03-16 19:52:21 -0400 (Mon, 16 Mar 2015) | 7 lines GCOV: Expose the -coverage-exit-block-before-body flag in clang -cc1 This exposes the optional exit block placement logic from r232438 as a clang -cc1 option. There is a test on the llvm side, but there isn't really a way to inspect the gcov options from clang to test it here as well. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@236305 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27Merging r233508:Daniel Sanders
------------------------------------------------------------------------ r233508 | petarj | 2015-03-30 01:43:56 +0100 (Mon, 30 Mar 2015) | 23 lines Add check for kind of UnqualifiedId in Declarator::isStaticMember() Method CXXMethodDecl::isStaticOverloadedOperator expects Operator field from the struct OperatorFunctionId, which is a member of the union in the class UnqualifiedId. If the kind of UnqualifiedId is not checked, there is no guarantee that the value that this method receives will be correct, because it can be the value of another union member and not OperatorFunctionId. This bug manifests itself when running make check-all on mips64 BE. This fix resolves the following regression tests: Clang :: CXX/special/class.dtor/p9.cpp Clang :: CodeGenCXX/2006-09-12-OpaqueStructCrash.cpp Clang :: CodeGenCXX/ctor-dtor-alias.cpp Clang :: CodeGenCXX/debug-info-windows-dtor.cpp Clang :: CodeGenCXX/dllexport-members.cpp Clang :: CodeGenCXX/dllexport.cpp Patch by Violeta Vukobrat. Differential Revision: http://reviews.llvm.org/D8437 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@235843 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27Merging r230253:Daniel Sanders
------------------------------------------------------------------------ r230253 | zjovanovic | 2015-02-23 20:20:49 +0000 (Mon, 23 Feb 2015) | 2 lines Fixed typo. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@235842 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27Merging r229680:Daniel Sanders
------------------------------------------------------------------------ r229680 | zjovanovic | 2015-02-18 15:21:35 +0000 (Wed, 18 Feb 2015) | 3 lines Change representation of member function pointers for MIPS targets Differential Revision: http://reviews.llvm.org/D7148 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@235841 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27Merging r230469:Daniel Sanders
------------------------------------------------------------------------ r230469 | atanasyan | 2015-02-25 07:31:12 +0000 (Wed, 25 Feb 2015) | 4 lines [Mips] Support mips-r6 path suffix for Adnroid MIPS toolchain This path suffix is used if user provides the -mips32r6 command line options. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@235840 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27Merging r228918:Daniel Sanders
------------------------------------------------------------------------ r228918 | vkalintiris | 2015-02-12 11:36:56 +0000 (Thu, 12 Feb 2015) | 5 lines [mips] Partially revert r223927: Removing __SIZEOF_INT128__ macro for MIPS64 Partially revert r223927 because LLVM gained support for 128-bit integers in r227089. Modify and keep the tests that verify the definition of the macro __SIZEOF_INT128__ for MIPS64 BE & LE in the preprocessor. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@235839 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-20Merging r231451:Tom Stellard
------------------------------------------------------------------------ r231451 | nicolasweber | 2015-03-06 01:01:06 -0500 (Fri, 06 Mar 2015) | 5 lines Don't crash on non-public referenced dtors in toplevel classes. Fixes PR22793, a bug that caused self-hosting to fail after the innocuous r231254. See the bug for details. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@235308 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-14Merge r234636:Joerg Sonnenberger
Create the correct profiling symbol on NetBSD. git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@234894 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-14Merge r234629:Joerg Sonnenberger
Create correct platform-specific target for NetBSD PPC64LE. git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@234893 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-01Merge r233819 into the release 36 branch with some modificationsReid Kleckner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@233823 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-17Merging r232389:Joerg Sonnenberger
Global inline assembler blocks are merged before parsing, so no specific location data is available. If pragma handling wants to look up the position, it finds the LLVM buffer and wants to compare it with the special built-in buffer, failing badly. Extend to the special handling of the built-in buffer to also check for the inline asm buffer. Expect only a single asm buffer. Sort it between the built-in buffers and the normal file buffers. Fixes the assert part of PR 22576. git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@232565 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-12Merge r230255,231245,231280,231986:Joerg Sonnenberger
Only lower __builtin_setjmp / __builtin_longjmp to llvm.eh.sjlj.setjmp / llvm.eh.sjlj.longjmp, if the backend is known to support them outside the Exception Handling context. The default handling in LLVM codegen doesn't work and will create incorrect code. The ARM backend on the other hand will assert if the intrinsics are used. -- Adjust the changes from r230255 to bail out if the backend can't lower __builtin_setjmp/__builtin_longjmp and don't fall back to the libc functions. -- Fix test/CodeGen/builtins.c for platforms that don't lower sjlj Opt in Win64 to supporting sjlj lowering. We have the backend lowering, so I think this was just an oversight because WinX86_64TargetCodeGenInfo doesn't inherit from X86_64TargetCodeGenInfo. -- Under duress, move check for target support of __builtin_setjmp/ __builtin_longjmp to Sema as requested by John McCall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@232028 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-24ReleaseNotes: final touch-upsHans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@230350 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-24Add release notes about the unroll pragmas.Mark Heffernan
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@230294 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20Document the -fpic option change.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229946 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20ReleaseNotes: smarter typo correctionHans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229943 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20A few release note updates for C and C++ frontend changes.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229939 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-19Add some info on Windows and MSVC support to the Clang 3.6 release notesReid Kleckner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229873 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18Merging r229719:Hans Wennborg
------------------------------------------------------------------------ r229719 | d0k | 2015-02-18 10:45:54 -0800 (Wed, 18 Feb 2015) | 8 lines Driver: Fix use of dangling std::string temporary What's going on here is that the ternary operator produces a std::string rvalue that the StringRef points to. I'd hoped bugs like this were a thing of the past with our asan testing but apparently this code path is only used when LLVM is configured with a custom --with-c-include-dirs setting. Unbreaks bootstrapping with GCC5 on Fedora (PR22625), patch by Jonathan Wakely! ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229746 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18Release notes: remove in-progress warningsHans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229713 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-17ReleaseNotes: fix non-ASCII char, trailing spaces, and minor stuff like thatHans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229576 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-17Merging r229408:Hans Wennborg
------------------------------------------------------------------------ r229408 | spatel | 2015-02-16 09:26:51 -0800 (Mon, 16 Feb 2015) | 10 lines x86-64 ABI: unwrap single element structs / arrays of 256-bit vectors to pass and return in registers This is a patch for PR22563 ( http://llvm.org/bugs/show_bug.cgi?id=22563 ). We were not correctly unwrapping a single 256-bit AVX vector that was defined as an array of 1 inside a struct. We would generate a <4 x float> param/return value instead of <8 x float> and lose half of the vector. Differential Revision: http://reviews.llvm.org/D7614 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@229546 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-11Merging r228792:Hans Wennborg
------------------------------------------------------------------------ r228792 | rsmith | 2015-02-10 18:41:33 -0800 (Tue, 10 Feb 2015) | 5 lines Add a warning for direct-list-initialization of a variable with a deduced type (or of a lambda init-capture, which is sort-of such a variable). The semantics of such constructs will change when we implement N3922, so we intend to warn on this in Clang 3.6 then change the semantics in Clang 3.7. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228799 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-11Merging r228785:Hans Wennborg
------------------------------------------------------------------------ r228785 | rsmith | 2015-02-10 17:48:47 -0800 (Tue, 10 Feb 2015) | 2 lines PR21857: weaken an incorrect assertion. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228789 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-10Port r226896 to the 3.6 branch.Rafael Espindola
Original message: [pr22293] Don't crash during codegen of a recursive destructor. In ItaniumCXXABI::EmitCXXDestructors we first emit the base destructor and then try to emit the complete one as an alias. If in the base ends up calling the complete destructor, the GD for the complete will be in the list of deferred decl by the time we replace it with an alias and delete the original GV. git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228684 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-09update with Clang OpenMP release notes for 3.6 by Michael WongMichael Wong
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228569 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-06Merging r228464:Hans Wennborg
------------------------------------------------------------------------ r228464 | rsmith | 2015-02-06 15:20:21 -0800 (Fri, 06 Feb 2015) | 2 lines PR22405: don't lose implicit-deleted-ness across AST write / read. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228471 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-04Release notes: add blurb about C++17 supportHans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228233 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-04Merging r227861:Hans Wennborg
------------------------------------------------------------------------ r227861 | jholewinski | 2015-02-02 13:05:49 -0800 (Mon, 02 Feb 2015) | 15 lines When generating llvm.used, we may need an addrspacecast instead of a bitcast. Summary: This is especially important for targets that use multiple address spaces, and commonly place global variables in address spaces other than zero. Fixes PR22383 Test Plan: New test case added: llvm-used.cu Reviewers: jingyue Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7345 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228185 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-04Mention __super in the release notes.Hans Wennborg
From Nikola Smiljanic! git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228162 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-04Merging r228053:Hans Wennborg
------------------------------------------------------------------------ r228053 | dblaikie | 2015-02-03 14:37:17 -0800 (Tue, 03 Feb 2015) | 29 lines DebugInfo: Ensure calls to functions with default arguments which themselves have default arguments, still have locations. To handle default arguments in C++ in the debug info, we disable code updating the debug location during the emission of default arguments. This code was buggy in the case of default arguments which, themselves, have default arguments - the inner default argument would re-enable debug info when it was finished, but before the outer default argument was finished. This was already a bug, but got worse (because a crasher instead of just a quality bug) with the recent improvements to debug info line quality because... The ApplyDebugLocation scoped device would find the debug info disabled and not save any debug location. But then in ~ApplyDebugLocation it would find the debug info had been enabled and would then apply the no-location. Then the outer function call would be emitted without any location. That's bad. Arguably we could /also/ fix the ApplyDebugLocation to assert on this situation (where debug info was disabled in the ctor and enabled in the dtor, or the other way around) but this is at least the necessary fix regardless. (also, I imagine this disabling behavior might need to be in-place for CGExprComplex and CGExprAgg too, maybe... ?) And I seem to recall seeing some weird default arg stepping behavior recently which might be related to this too... I'll have to look into it. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228078 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-03Merging r226384:Hans Wennborg
------------------------------------------------------------------------ r226384 | dblaikie | 2015-01-17 16:37:04 -0800 (Sat, 17 Jan 2015) | 1 line Refactor test so it's not lazily emitted on a global, simplifying ordering when more test cases are added ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228074 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-03Merging r227979:Hans Wennborg
------------------------------------------------------------------------ r227979 | rafael | 2015-02-03 08:33:53 -0800 (Tue, 03 Feb 2015) | 3 lines Use CLANG_LIBDIR_SUFFIX when looking for the gold plugin. Patch by ?\196?\176smail D?\195?\182nmez! ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@228059 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-02Merging r226382:Hans Wennborg
------------------------------------------------------------------------ r226382 | dblaikie | 2015-01-17 16:12:58 -0800 (Sat, 17 Jan 2015) | 7 lines DebugInfo: Correct the debug location of non-static data member initializers This was causing some trouble for otherwise dead code removed in r225085 (reverted in r225361). The location being set for function arguments was leaking out to the call which wasn't setting its own location (so a quality bug turned into a crasher with r225085). Fix this so r225085 can be recommitted. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227859 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-28Merging r227393:Hans Wennborg
------------------------------------------------------------------------ r227393 | joerg | 2015-01-28 15:30:39 -0800 (Wed, 28 Jan 2015) | 5 lines For the --be8 flag, check explicitly for pre-v7 / pre-v6m cores. Those used the old Big Endian support on ARM and don't need flags. Refactor the logic in a separate common function, which also looks at -march. Add corresponding logic for the Linux toolchain. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227398 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-28Merging r227088:Hans Wennborg
------------------------------------------------------------------------ r227088 | joerg | 2015-01-26 04:30:16 -0800 (Mon, 26 Jan 2015) | 3 lines For NetBSD/ARM-EB, link with --be8. Support for the older BE32 is currently not planned. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227396 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-28Merging r227368:Hans Wennborg
------------------------------------------------------------------------ r227368 | rikka | 2015-01-28 13:10:46 -0800 (Wed, 28 Jan 2015) | 9 lines Revert a change from r222797 that is no longer needed and can cause infinite recursion. Also guard against said infinite recursion by adding an assert that will trigger if CorrectDelayedTyposInExpr is called before a previous call to CorrectDelayedTyposInExpr returns (i.e. if the TreeTransform run by CorrectDelayedTyposInExpr calls a sequence of methods that end up calling CorrectDelayedTyposInExpr, as the new test case had done prior to this commit). Fixes PR22292. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227375 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-28Merging r227295:Hans Wennborg
------------------------------------------------------------------------ r227295 | majnemer | 2015-01-27 21:48:06 -0800 (Tue, 27 Jan 2015) | 5 lines Sema: Ensure that __c11_atomic_fetch_add has a pointer to complete type Pointer arithmetic is only makes sense if the pointee type is complete. This fixes PR22361. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227349 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-28Merging r227278:Hans Wennborg
------------------------------------------------------------------------ r227278 | rikka | 2015-01-27 16:46:09 -0800 (Tue, 27 Jan 2015) | 6 lines Use the real CXXScopeSpec when setting the correction SourceRange. Otherwise, in the most important case and the only case where SS and TempSS are different (which is when the CXXScopeSpec should be dropped, and TempSS is NULL) the wrong SourceRange will be used in the fixit for the typo correction. Fixes the remaining issue in PR20626. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227280 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-27Merging r227251:Hans Wennborg
------------------------------------------------------------------------ r227251 | rikka | 2015-01-27 14:01:39 -0800 (Tue, 27 Jan 2015) | 17 lines Fix a think-o in handling ambiguous corrections for a TypoExpr. Under certain circumstances, the identifier mentioned in the diagnostic won't match the intended correction even though the replacement expression and the note pointing to the decl are both correct. Basically, the TreeTransform assumes the TypoExpr's Consumer points to the correct TypoCorrection, but the handling of typos that appear to be ambiguous from the point of view of TransformTypoExpr would cause that assumption to be violated by altering the Consumer's correction stream. This fix allows the Consumer's correction stream to be reset to the right TypoCorrection after successfully resolving the percieved ambiguity. Included is a fix to suppress correcting the RHS of an assignment to the LHS of that assignment for non-C++ code, to prevent a regression in test/SemaObjC/provisional-ivar-lookup.m. This fixes PR22297. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227266 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-27Merging r227220:Hans Wennborg
------------------------------------------------------------------------ r227220 | rikka | 2015-01-27 10:26:18 -0800 (Tue, 27 Jan 2015) | 7 lines Properly handle typos in the conditional of ?: expressions in C. In particular, remove the OpaqueExpr transformation from r225389 and move the correction of the conditional from CheckConditionalOperands to ActOnConditionalOp before the OpaqueExpr is created. This fixes the typo correction behavior in C code that uses the GNU extension for a binary ?: (without an expression between the "?" and the ":"). ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227243 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-26Merging r227062:Hans Wennborg
------------------------------------------------------------------------ r227062 | rengolin | 2015-01-25 15:17:48 -0800 (Sun, 25 Jan 2015) | 10 lines Allows Clang to use LLVM's fixes-x18 option This patch allows clang to have llvm reserve the x18 platform register on AArch64. FreeBSD will use this in the kernel for per-cpu data but has no need to reserve this register in userland so will need this flag to reserve it. This uses llvm r226664 to allow this register to be reserved. Patch by Andrew Turner. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227151 91177308-0d34-0410-b5e6-96231b3b80d8