aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-01-25Add support for const pointer to literal-objc string as format attribute.Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148948 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Switch the ToolChain types to all store a Driver reference rather thanChandler Carruth
a HostInfo reference. Nothing about the HostInfo was used by any toolchain except digging out the driver from it. This just makes that a lot more direct. The change was accomplished entirely mechanically. It's one step closer to removing the shim full of buggy copy/paste code that is HostInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148945 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25test/CodeGen/avx-builtins.c: Fix more for -Asserts.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148944 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fixup r148926, for -Asserts.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148943 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Remove the TargetTriple object that I added to the Driver recently. ThisChandler Carruth
helped stage the refactoring of things a bit, but really isn't the right place for it. The driver may be responsible for compilations with many different targets. In those cases, having a target triple in the driver is actively misleading because for many of those compilations that is not actually the triple being targeted. This moves the last remaining users of the Driver's target triple to instead use the ToolChain's target triple. The toolchain has a single, concrete target it operates over, making this a more stable and natural home for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148942 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Have FreeBSD use even more of the same smarts as Linux is now using forChandler Carruth
adding search paths. Add them only when they exist, and prefix the paths with the sysroot. This will allow targeting a FreeBSD sysroot on a non-FreeBSD host machine, and perhaps more importantly should allow testing the FreeBSD driver's behavior similarly to the Linux tests with a fake tree of files in the regression test suite. I don't have FreeBSD systems handy to build up the list of files that should be used here, but this is the basic functionality and I'm hoping Roman or someone from the community can contribute the actual test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148940 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Switch FreeBSD to just include both '/usr/lib32' and '/usr/lib' in theChandler Carruth
search paths for 32-bit targets. This avoids having to detect which is expected for the target system, and the linker should DTRT, and take the 32-bit libraries from the first one when applicable. Thanks to Roman Divacky for sanity checking this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148939 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Switch the Linux C++ standard library header search logic over to useChandler Carruth
the GCC installation's multiarch suffix now that it is exposed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148938 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Make a major refactoring to how the GCC installation detection works.Chandler Carruth
The fundamental shift here is to stop making *any* assumptions about the *host* triple. Where these assumptions you ask? Why, they were in one of the two target triples referenced of course. This was the single biggest place where the previously named "host triple" was actually used as such. ;] The reason we were reasoning about the host is in order to detect the use of '-m32' or '-m64' flags to change the target. These flags shift the default target only slightly, which typically means a slight deviation from the host. When using these flags, the GCC installation is under a different triple from the one actually targeted in the compilation, and we used the host triple to find it. Too bad that wasn't even correct. Consider an x86 Linux host which has a PPC64 cross-compiling GCC toolchain installed. This toolchain is also configured for multiarch compiling and can target PPC32 with eth '-m32' flag. When targeting 'powerpc-linux-gnu' or some other PPC32 triple, we have to look for the PPC64 variant of the triple to find the GCC install, and that triple is neither the host nor target. The new logic computes the multiarch's alternate triple from the target triple, and looks under both sides. It also looks more aggressively for the correct subdirectory of the GCC installation, and exposes the subdirectory in a nice programmatic way. This '/32' or '/64' suffix is something we can reuse in many other parts of the toolchain. An important note -- while this likely fixes a large category of cross-compile use cases, that's not my primary goal, and I've not done testing (or added test cases) for scenarios that may now work. If someone else wants to try more interesting PPC cross compiles, I'd love to have reports. But my focus is on factoring away the references to the "host" triple. The refactoring is my goal, and so I'm mostly relying on the existing (pretty good) test coverage we have here. Future patches will leverage this new functionality to factor out more and more of the toolchain's triple manipulation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148935 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Re-enable test that was broken by r148919Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148932 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix -fmacro-backtrace-limit=0 to show the entire macro backtrace.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148930 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25disable this test for now.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148928 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25reapply r148902:Chris Lattner
"use the new ConstantVector::getSplat method where it makes sense." Also simplify a bunch of code to use the Builder->getInt32 instead of doing it the hard and ugly way. Much more progress could be made here, but I don't plan to do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148926 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25fix broken testcase.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148925 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix a crash for an edge case of the GNU ?: extension.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148923 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix r148920 to what I actually meant to commit.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148921 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Add missing check for placeholders.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148920 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Represent 256-bit unaligned loads natively and remove the builtins. Similar ↵Craig Topper
change was made for 128-bit versions a while back. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148919 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25In TreeTransform<Derived>::TransformBlockExpr, call ActOnBlockError for errors,Argyrios Kyrtzidis
patch by Dmitri Gribenko. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148915 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Revert 148902 which was part of 148901 which was reverted in r148906.Argyrios Kyrtzidis
Original log: use the new ConstantVector::getSplat method where it makes sense. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148907 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix PR11848: decree that an alias template contains an unexpanded parameter packRichard Smith
iff its substitution contains an unexpanded parameter pack. This has the effect that we now reject declarations such as this (which we used to crash when expanding): template<typename T> using Int = int; template<typename ...Ts> void f(Int<Ts> ...ints); The standard is inconsistent on how this case should be treated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148905 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Refactor the record decl forward declaration code a bit.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148904 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Typo.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148903 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25use the new ConstantVector::getSplat method where it makes sense.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148902 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25With a little more work in the tentative parse determining whether a statementNick Lewycky
is a declaration-stmt or an expression, we can discern a subset of cases where the user erred in omitting the typename keyword before a dependent type name. Fixes PR11358! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148896 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Introduce a generation number for selector lookups in the globalDouglas Gregor
method pool, so that we don't perform the same lookups into the same PCH/module file repeatedly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148895 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Only try to import a definition if there is an definition to import.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148894 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Make sure we correctly treat __is_convertible_to as an unevaluated context. ↵Eli Friedman
PR11833. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148893 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix test on cygwin (where va_list expands to a different type)Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148892 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Whenever Sema attempts to look in the global method pool, try to loadDouglas Gregor
additional data from the external Sema source. This properly copes with modules that are imported after we have already searched in the global method pool for a given selector. For PCH, it's a slight pessimization to be fixed soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148891 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Add "multiple format attributes" support on block.Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148890 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Rework the external Sema source's ReadMethodPool() so that it doesn'tDouglas Gregor
return pre-built lists. Instead, it feeds the methods it deserializes to Sema so that Sema can unique them, which keeps the chains shorter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148889 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Reduce peak memory usage of the static analyzer on sqlite3 (when using ↵Ted Kremenek
inlining) by 30%. This is accomplished by periodically reclaiming nodes in the graph. This was an optimization done before the CFG was linearized, but the CFG linearization destroyed that optimization since each freshly created node couldn't be reclaimed and we only looked at a window of nodes created between each ProcessStmt. This optimization can be reclaimed my merely expanding the window to N number of nodes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148888 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25arc migrator: Provide infrastructure to add optionsFariborz Jahanian
specific to migrator. Use its first option to warn migrating from GC to arc when NSAllocateCollectable/NSReallocateCollectable is used. // rdar://10532541 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148887 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Factor out the addition of a method into the global method pool, andDouglas Gregor
teach it to always add the new method at the *end* of the list rather than as the second element in the list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148886 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix NSLog format string checking for %@.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148885 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Switch PerformImplicitConversion over to use DefaultLvalueConversion for ↵Eli Friedman
lvalue-to-rvalue conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148874 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Replace a hack to handle NSLog/NSLogv in sema by declaring them as Library ↵Jean-Daniel Dupas
Builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148873 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Remove trailing slash in front of header name of ObjC builtins.Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24[analyzer] Add the HTML file to the SATest diagnostic diff.Anna Zaks
(Uses the functionality which has been in CmpRuns long before.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148868 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24[analyzer] Testing: make diagnostic diffs more informative (addAnna Zaks
diagnostic message). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148867 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24[libclang] In clang::getCursorKindForDecl() don't return "UnexposedDecl"Argyrios Kyrtzidis
for forward references of classes and protocols, this breaks libclang API usage. rdar://10747438. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148861 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Teach scanf/printf checking about '%Ld' and friends (a GNU extension). ↵Ted Kremenek
Fixes PR 9466. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148859 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Force triple on these tests to pacify the windows tester.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148858 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Add a new warning, -Wover-aligned, which detects attempts to use the defaultNick Lewycky
allocator to construct an object which declares more alignment than the default allocator actually provides. Fixes PR9527! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148857 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Fix one of the (larger) FIXMEs where we were misusing the Driver's ideaChandler Carruth
of the target triple to stand in for the "host" triple. Thanks to a great conversation with Richard Smith, I'm now much more confident in how this is proceeding. In all of the places where we currently reason about the "host" architecture or triple, what we really want to reason about in the detected GCC installation architecture or triple, and the ways in which that differs from the target. When we find a GCC installation with a different triple from our target *but capable of targeting our target* through an option such as '-m64', we want to detect *that* case and change the paths within the GCC installation (and libstdc++ installation) to reflect this difference. This patch makes one function do this correctly. Subsequent commits will hoist the logic used here into the GCCInstallation utility, and then reuse it through the rest of the toolchains to fix the remaining places where this is currently happening. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148852 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Small code cleanup/simplification in Sema::ClassifyName.Kaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148850 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24[libclang] When calling clang_getCursorReferenced on a class or protocolArgyrios Kyrtzidis
forward reference, do give an interface or protocol cursor back, don't give an 'UnexposedDecl' one. rdar://10743193 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148848 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24objc: Issue a generic diagnostic assigning to Fariborz Jahanian
an objc object in any abi mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148847 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24[analyzer] Add more C taint sources/sinks.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148844 91177308-0d34-0410-b5e6-96231b3b80d8