aboutsummaryrefslogtreecommitdiff
path: root/clang
AgeCommit message (Collapse)AuthorFilesLines
2014-12-08Merging r221832:Tom Stellard2-28/+25
------------------------------------------------------------------------ r221832 | richard-llvm | 2014-11-12 18:38:38 -0500 (Wed, 12 Nov 2014) | 5 lines PR19372: Keep checking template arguments after we see an argument pack expansion into a parameter pack; we know that we're still filling in that parameter's arguments. Previously, if we hit this case for an alias template, we'd try to substitute using non-canonical template arguments. ------------------------------------------------------------------------ llvm-svn: 223719
2014-12-08Merging r221748:Tom Stellard2-2/+18
------------------------------------------------------------------------ r221748 | richard-llvm | 2014-11-11 20:43:45 -0500 (Tue, 11 Nov 2014) | 4 lines PR21536: Fix a corner case where we'd get confused by a pack expanding into the penultimate parameter of a template parameter list, where the last parameter is itself a pack, and build a bogus empty final pack argument. ------------------------------------------------------------------------ llvm-svn: 223718
2014-12-08Merging r217104:David Majnemer1-2/+2
------------------------------------------------------------------------ r217104 | majnemer | 2014-09-03 16:20:58 -0700 (Wed, 03 Sep 2014) | 1 line Adjust test to handle fallout from r217102. ------------------------------------------------------------------------ llvm-svn: 223703
2014-12-01Merged from r222339*:Daniel Sanders3-21/+161
Please note that there is a significant change to the test compared to r222339. This is because this branch generates different code compared to the trunk. The code on this branch appears to be equivalent so the test has been updated accordingly. ------------------------------------------------------------------------------- Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg issues for Mips. Summary: With this patch, passing a va_list to another function and reading 10 int's from it works correctly on a big-endian target. Based on a pair of patches by David Chisnall, one of which I've reworked for the current trunk. Reviewers: theraven, atanasyan Reviewed By: theraven, atanasyan Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6248 llvm-svn: 223005
2014-12-01Merged from r220566:Daniel Sanders5-17/+20
[mips] Mark aggregate arguments passed in registers with the inreg attribute Summary: This allows us to easily identify them in the backend which in turn allows us to handle them correctly for big-endian targets (where they must be shifted into the upper bits of the register). Depends on D5961 Reviewers: atanasyan Reviewed By: atanasyan Subscribers: cfe-commits, theraven Differential Revision: http://reviews.llvm.org/D5962 llvm-svn: 223004
2014-12-01Merged from r220563:Daniel Sanders5-28/+29
[mips] Promote all integral/enumeration types to the GPR width Summary: Ensure all integral/enumeration types are appropriately annotated with signext/zeroext. In particular, i32 now has these attributes when using the N32/N64 ABI. This paves the way for accurately representing the way the N32/N64 ABI's promotes integer arguments to i64. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: cfe-commits, theraven Differential Revision: http://reviews.llvm.org/D5961 llvm-svn: 223003
2014-12-01Merged from r218298:Daniel Sanders1-3/+3
[mips] Fix r218248's testcase to use -O1 instead of -O3. llvm-svn: 223002
2014-12-01Merged from r218260:Daniel Sanders1-3/+3
Fix test/CodeGen/mips-varargs.c to use %clang_cc1 Only tests under test/Driver should use %clang, and test/CodeGen in particular must always use %clang_cc1. llvm-svn: 223001
2014-12-01Merged from r218256:Daniel Sanders1-21/+20
clang/test/CodeGen/mips-varargs.c: Fixup for -Asserts. llvm-svn: 223000
2014-12-01Merged from r218248:Daniel Sanders2-1/+55
[mips] Correct alignment of vectors passed in varargs for the O32 ABI. Summary: Vectors are normally 16-byte aligned, however the O32 ABI enforces a maximum alignment of 8-bytes since the base of the stack is 8-byte aligned. Previously, this was enforced on the caller side, but not on the callee side. This fixes the output of OpenCL's printf when given vectors. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: llvm-commits, pekka.jaaskelainen Differential Revision: http://reviews.llvm.org/D5433 llvm-svn: 222999
2014-12-01Merging r217160:Daniel Sanders3-12/+15
[mips] Mark aggregates returned in registers with the 'inreg' attribute. Summary: This allows us to easily find them in the backend after the aggregates have been lowered to other types. This is important on big-endian targets using the N32/N64 ABI's since these ABI's must shift small structures into the upper bits of the register. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5005 llvm-svn: 222998
2014-11-26Merging r213769:Daniel Sanders1-17/+17
------------------------------------------------------------------------ r213769 | askrobov | 2014-07-23 18:09:26 +0100 (Wed, 23 Jul 2014) | 6 lines Fix test/Driver/cl-x86-flags.c by providing explicit --target This isn't very neat, but we haven't found any better ways to make this test work with non-X86 default target. ------------------------------------------------------------------------ llvm-svn: 222815
2014-11-24Merging r217147:Daniel Sanders2-1/+22
------------------------------------------------------------------------ r217147 | dsanders | 2014-09-04 14:28:14 +0100 (Thu, 04 Sep 2014) | 18 lines [mips] Zero-sized structs cannot be ignored in MipsABIInfo::classifyReturnType() for O32 Summary: They are returned indirectly which causes the other arguments to move to the next argument slot. With this, utils/ABITest does not discover any failing cases in the first 500 attempts on big/little endian for O32. Previously some of these failed. Also tested N32/N64 little endian (big endian has other known issues) with no issues. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: atanasyan, cfe-commits Differential Revision: http://reviews.llvm.org/D4811 ------------------------------------------------------------------------ llvm-svn: 222690
2014-11-24Merging r214662:Daniel Sanders1-0/+1
------------------------------------------------------------------------ r214662 | atanasyan | 2014-08-03 17:11:05 +0100 (Sun, 03 Aug 2014) | 2 lines [Mips] Add the `mips64-linux-gnu` target to the test case to check `in128` type handling. ------------------------------------------------------------------------ llvm-svn: 222689
2014-11-24Merging r214025:Daniel Sanders2-0/+112
------------------------------------------------------------------------ r214025 | atanasyan | 2014-07-26 10:52:21 +0100 (Sat, 26 Jul 2014) | 4 lines [Driver][Mips] Check output of -dynamic-linker arguments by the Clang driver for a couple of MIPS toolchains. No functional changes. ------------------------------------------------------------------------ llvm-svn: 222686
2014-11-10Merging r220148:Tom Stellard1-1/+7
------------------------------------------------------------------------ r220148 | me | 2014-10-18 19:36:12 -0400 (Sat, 18 Oct 2014) | 6 lines New round of fixes for "Always compile debuginfo-tests for the host triple" clang tests were breaking, at least when compiling clang only, from an installed llvm. Make the lit.cfg script deal with the case when we don't have a host_triple available. ------------------------------------------------------------------------ llvm-svn: 221618
2014-11-10Merging r220112:Tom Stellard1-0/+1
------------------------------------------------------------------------ r220112 | me | 2014-10-17 19:50:47 -0400 (Fri, 17 Oct 2014) | 2 lines Fix makefile for debuginfo-tests execution. ------------------------------------------------------------------------ llvm-svn: 221617
2014-11-10Merging r219989:Tom Stellard1-0/+1
------------------------------------------------------------------------ r219989 | me | 2014-10-16 19:41:40 -0400 (Thu, 16 Oct 2014) | 2 lines Added %itanium_abi_host_triple to fix debuginfo-tests when clang is a cross-compiler by default ------------------------------------------------------------------------ llvm-svn: 221616
2014-11-04Merging r220874:Hans Wennborg3-3/+23
------------------------------------------------------------------------ r220874 | hans | 2014-10-29 14:20:57 -0700 (Wed, 29 Oct 2014) | 3 lines Follow-up to r216619: use isCXXCLassMember() instead of trying to check the context ourselves when selectively allowing late-added dll attributes on unused free functions and variables (PR20746) ------------------------------------------------------------------------ llvm-svn: 221253
2014-09-29Merging r216619:Hans Wennborg6-20/+65
------------------------------------------------------------------------ r216619 | hans | 2014-08-27 14:27:40 -0700 (Wed, 27 Aug 2014) | 7 lines Allow adding dll attributes on certain redecls with a warning if the decl hasn't been used yet (PR20746) This shouldn't really be allowed, but it comes up in real code (see PR). As long as the decl hasn't been used there's no technical difficulty in supporting it, so downgrade the error to a warning. Differential Revision: http://reviews.llvm.org/D5087 ------------------------------------------------------------------------ llvm-svn: 218644
2014-09-05Update ReleaseNotes to remove empty sections.Bill Wendling1-55/+3
llvm-svn: 217216
2014-09-02Update docs.llvmorg-3.5.0Bill Wendling2-57/+5
llvm-svn: 216954
2014-08-31Some Clang 3.5 release note updates.Richard Smith4-7/+40
llvm-svn: 216835
2014-08-27Merging r216572:llvmorg-3.5.0-rc4Bill Wendling3-1/+1
------------------------------------------------------------------------ r216572 | chandlerc | 2014-08-27 11:21:27 -0700 (Wed, 27 Aug 2014) | 3 lines Fix PR20773 which I introduced with a silly edit mistake in r216531. Trivial fix, and I've made the gentoo tests more representative. With the changes, they would have caught this failure. ------------------------------------------------------------------------ llvm-svn: 216588
2014-08-27Merging r216531:Bill Wendling13-38/+64
------------------------------------------------------------------------ r216531 | chandlerc | 2014-08-27 01:41:41 -0700 (Wed, 27 Aug 2014) | 22 lines Significantly fix Clang's header search for Ubuntu (and possibly other modern Debian-based distributions) due to on-going multiarch madness. It appears that when the multiarch heeader search support went into the clang driver, it went in in a quite bad state. The order of includes completely failed to match the order exhibited by GCC, and in a specific case -- when the GCC triple and the multiarch triple don't match as with i686-linux-gnu and i386-linux-gnu -- we would absolutely fail to find the libstdc++ target-specific header files. I assume that folks who have been using Clang on Ubuntu 32-bit systems have been applying weird patches to hack around this. I can't imagine how else it could have worked. This was originally reported by a 64-bit operating system user who had a 32-bit crosscompiler installed. We tried to use that rather than the bi-arch support of the 64-bit compiler, but failed due to the triple differences. I've corrected all the wrong orderings in the existing tests and added a specific test for the multiarch triple strings that are different in a significant way. This should significantly improve the usability of Clang when checked out vanilla from upstream onto Ubuntu machines with an i686 GCC installation for whatever reason. ------------------------------------------------------------------------ llvm-svn: 216587
2014-08-27updated with clang openmp notes by Michael WongMichael Wong1-1/+17
llvm-svn: 216578
2014-08-22Use C++14 flags.Bill Wendling1-2/+9
llvm-svn: 216287
2014-08-20It fixes a regression with multiple address spaces inBill Wendling2-1/+23
OpenCL and blocks. Patch by Pekka. llvm-svn: 216049
2014-08-18Merging r215609:Bill Wendling2-2/+6
------------------------------------------------------------------------ r215609 | majnemer | 2014-08-13 17:49:23 -0700 (Wed, 13 Aug 2014) | 3 lines Sema: Permit nullptr template args in MSVC compat mode This fixes a regression I caused back in r211766. ------------------------------------------------------------------------ llvm-svn: 215881
2014-08-18Merging r215618:Bill Wendling3-1/+18
------------------------------------------------------------------------ r215618 | majnemer | 2014-08-13 23:35:08 -0700 (Wed, 13 Aug 2014) | 7 lines Parse: Don't attempt to act on #pragma init_seg when not targeting MSVC It doesn't really make sense to try and do stuff with #pragma init_seg when targeting non-Microsoft platforms; notions like library vs user initializers don't exist for other targets. This fixes PR20639. ------------------------------------------------------------------------ llvm-svn: 215880
2014-08-18Merging r215808:Bill Wendling1-2/+2
------------------------------------------------------------------------ r215808 | nicholas | 2014-08-15 19:14:37 -0700 (Fri, 15 Aug 2014) | 2 lines Clarify. ------------------------------------------------------------------------ llvm-svn: 215877
2014-08-18Merging r215807:Bill Wendling1-3/+3
------------------------------------------------------------------------ r215807 | nicholas | 2014-08-15 19:11:54 -0700 (Fri, 15 Aug 2014) | 2 lines Try indenting to put all the text inside the block. ------------------------------------------------------------------------ llvm-svn: 215876
2014-08-18Merging r215806:Bill Wendling1-0/+5
------------------------------------------------------------------------ r215806 | nicholas | 2014-08-15 19:09:42 -0700 (Fri, 15 Aug 2014) | 2 lines Document what's experimental about __attribute__((enable_if)). PR20392 ------------------------------------------------------------------------ llvm-svn: 215875
2014-08-14Document -Wabsolute-value with exampleSylvestre Ledru1-0/+24
llvm-svn: 215652
2014-08-14Document -Wtautological-pointer-compare & -Wtautological-undefined-compare ↵Sylvestre Ledru1-0/+32
with example llvm-svn: 215651
2014-08-13Document the new warning -Wabsolute-valueSylvestre Ledru1-0/+3
llvm-svn: 215525
2014-08-12Merging r215229:Bill Wendling1-2/+13
------------------------------------------------------------------------ r215229 | sylvestre | 2014-08-08 10:15:13 -0700 (Fri, 08 Aug 2014) | 11 lines Fix a bug when scan-build is used in a cross-compilation environment with the --use-cc option. Instead, we will search in the PATH For example: scan-build --use-cc=arm-none-eabi-gcc -o out make -e Initially reported as a Debian Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748777 ------------------------------------------------------------------------ llvm-svn: 215427
2014-08-10Also describe the new check 'alpha.core.TestAfterDivZero'Sylvestre Ledru1-0/+10
llvm-svn: 215314
2014-08-10Update of the release notes: '-z' is also forwarded to the linkerSylvestre Ledru1-1/+2
llvm-svn: 215313
2014-08-08Merge r215245: Change __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ for ↵Bob Wilson2-6/+19
versions > 10.9. llvm-svn: 215254
2014-08-07Merging r215046:Bill Wendling20-115/+223
------------------------------------------------------------------------ r215046 | rsmith | 2014-08-06 17:24:21 -0700 (Wed, 06 Aug 2014) | 19 lines Use -Rblah, not -Wblah, to control remark diagnostics. This was always the intent when we added remark support, but was never implemented in the general case, because the first -R flags didn't need it. (-Rpass= had special handling to accomodate its argument.) -Rno-foo, -Reverything, and -Rno-everything can be used to turn off a remark, or to turn on or off all remarks. Per discussion on cfe-commits, -Weverything does not affect remarks, and -Reverything does not affect warnings or errors. The only "real" -R flag we have right now is -Rmodule-build; that flag is effectively renamed from -Wmodule-build to -Rmodule-build by this change. -Wpass and -Wno-pass (and their friends) are also renamed to -Rpass and -Rno-pass by this change; it's not completely clear whether we intended to have a -Rpass (with no =pattern), but that is unchanged by this commit, other than the flag name. The default pattern is effectively one which matches no passes. In future, we may want to make the default pattern be .*, so that -Reverything works for -Rpass properly. ------------------------------------------------------------------------ llvm-svn: 215057
2014-08-05Merging r214735:Bill Wendling2-13/+15
------------------------------------------------------------------------ r214735 | ogoffart | 2014-08-04 10:28:11 -0700 (Mon, 04 Aug 2014) | 1 line Fix crash when accessing a property of an invalid interface ------------------------------------------------------------------------ llvm-svn: 214840
2014-08-05Merging r214734:Bill Wendling2-1/+25
------------------------------------------------------------------------ r214734 | ogoffart | 2014-08-04 10:28:05 -0700 (Mon, 04 Aug 2014) | 7 lines Fix crash when assiging to a property with an invalid type This is a regression from clang 3.4 Set the result to ExprError and returns true, rather than simply returns false because errors have been reported already and returning false show a confusing error ------------------------------------------------------------------------ llvm-svn: 214839
2014-08-04Merging r214801:Bill Schmidt2-142/+4
------------------------------------------------------------------------ r214801 | wschmidt | 2014-08-04 18:21:26 -0500 (Mon, 04 Aug 2014) | 19 lines [PPC64LE] Fix wrong IR for vec_sld and vec_vsldoi My original LE implementation of the vsldoi instruction, with its altivec.h interfaces vec_sld and vec_vsldoi, produces incorrect shufflevector operations in the LLVM IR. Correct code is generated because the back end handles the incorrect shufflevector in a consistent manner. This patch and a companion patch for LLVM correct this problem by removing the fixup from altivec.h and the corresponding fixup from the PowerPC back end. Several test cases are also modified to reflect the now-correct LLVM IR. The vec_sums and vec_vsumsws interfaces in altivec.h are also fixed, because they used vec_perm calls intended to be recognized as vsldoi instructions. These vec_perm calls are now replaced with code that more clearly shows the intent of the transformation. ------------------------------------------------------------------------ llvm-svn: 214823
2014-08-04Merging r214777:Hans Wennborg1-49/+86
Excluding the /Zp option, because that was added after the 3.5 branch. ------------------------------------------------------------------------ r214777 | hans | 2014-08-04 14:07:58 -0700 (Mon, 04 Aug 2014) | 1 line UsersManual: update clang-cl options ------------------------------------------------------------------------ llvm-svn: 214778
2014-08-04Merging r214060:Bill Wendling1-1/+1
------------------------------------------------------------------------ r214060 | brad | 2014-07-27 18:57:32 -0700 (Sun, 27 Jul 2014) | 2 lines Add missing override keyword to OpenBSD IsIntegratedAssemblerDefault(). ------------------------------------------------------------------------ llvm-svn: 214765
2014-08-04Merging r213834:Bill Wendling2-3/+21
------------------------------------------------------------------------ r213834 | rsmith | 2014-07-23 19:27:39 -0700 (Wed, 23 Jul 2014) | 4 lines Take the canonical type when forming a canonical template argument with 'nullptr' value. Fixes profiling of such template arguments to always give the same value. ------------------------------------------------------------------------ llvm-svn: 214751
2014-08-04Merging r213913:Bill Wendling3-18/+19
------------------------------------------------------------------------ r213913 | rsmith | 2014-07-24 18:12:44 -0700 (Thu, 24 Jul 2014) | 4 lines PR20445: Properly transform the initializer in a CXXNewExpr rather than running it through the normal TreeTransform logic for Exprs (which will strip off implicit parts of the initialization and never re-create them). ------------------------------------------------------------------------ llvm-svn: 214750
2014-08-04Merging r213999:Bill Wendling2-0/+3
------------------------------------------------------------------------ r213999 | tstellar | 2014-07-25 18:05:20 -0700 (Fri, 25 Jul 2014) | 1 line R600: Add processor type for Mullins ------------------------------------------------------------------------ llvm-svn: 214748
2014-08-04Merging r214119:Bill Wendling4-158/+158
------------------------------------------------------------------------ r214119 | joerg | 2014-07-28 14:06:22 -0700 (Mon, 28 Jul 2014) | 7 lines Change __INTx_TYPE__ to be always signed. This changes the value for char-based types from "char" to "signed char". Adjust stdint.h to use __INTx_TYPE__ directly without prefixing it with signed and to use __UINTx_TYPE__ for unsigned ones. The value of __INTx_TYPE__ now matches GCC. ------------------------------------------------------------------------ llvm-svn: 214746