aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-01-26Fix a minor bug in r148582, which made -ccc-host-triple into an alias option.Bob Wilson
I'm not adding a testcase because -ccc-host-triple is slated to be removed, but clang crashes if you try to use -ccc-host-triple without this fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149048 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Remove another duplicated variable.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149047 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26constexpr: evaluate (bool)&x as true when x is a local variable or a temporary.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149045 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Remove the headers now that ::close() is not used.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149044 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26In FixItRewriteToTemp::RewriteFilename don't try to close the file descriptorArgyrios Kyrtzidis
with close(); return it instead. Fixes mingw build and eliminates possible racing issues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149043 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26[analyzer] The CFContainer test should only be run on x86_64.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149042 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Rewrite/FrontendActions.cpp: Tweak to unbreak msvc.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149041 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Revert r148249: "Make the auto-detection hack for the iOS simulator set the ↵Bob Wilson
target triple correctly." There were some problems with this, so I'm backing it out for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149040 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Improve efficiency of Sema::MaybeBindToTemporary by working with thePeter Collingbourne
canonical type directly and adding a fast path for the common case that the type is directly a RecordType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149039 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Simplify {Record,Enum}Type::classof.Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149038 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Adjust CLANG_BUILD_EXAMPLES to mean whether the examples are builtPeter Collingbourne
by default, rather than whether they may be built at all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149037 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Use function pointers, rather than references, to pass DestroyersPeter Collingbourne
around, in the process cleaning up the various gcc/msvc compiler workarounds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149036 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Add missing include of <unistd.h>Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149035 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Add an additional testcase for a lambda with implicit void return type.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149034 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Post link to checker-260, which is checker-259 with some experimental checks ↵Ted Kremenek
enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149032 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Refactor to share code for handling return statements between lambda ↵Eli Friedman
expressions and block literals. As it turns out, almost all the logic can be shared. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149031 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Introduce 3 new fixit options:Argyrios Kyrtzidis
-fixit-recompile applies fixits and recompiles the result -fixit-to-temporary applies fixits to temporary files -fix-only-warnings">, applies fixits for warnings only, not errors Combining "-fixit-recompile -fixit-to-temporary" allows testing the result of fixits without touching the original sources. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149027 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26fix to go along with an llvm change: VMCore now returns an UndefValueChris Lattner
when asking for a ConstantStruct with all undef elements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149025 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Enable several checkers under --analyze for general testing.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149016 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Tidy and remove some unused variables.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149015 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Fix our handling of #pragma GCC visibility.Rafael Espindola
Now the lexer just produces a token and the parser is the one responsible for activating it. This fixes problem like the one pr11797 where the lexer and the parser were not in sync. This also let us be more strict on where in the file we accept these pragmas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149014 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Collect this information together. No reason to have it split.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149013 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Refactor into its own function.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149012 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Reintroduce r148981 with significantly improved regression test. Now itChandler Carruth
both actually tests what it wants to, doesn't have bogus and broken assertions in it, and is also formatted much more cleanly and consistently. Probably still some more that can be improved here, but its much better. Original commit message: ---- Try to unbreak the FreeBSD toolchain's detection of 32-bit targets inside a 64-bit freebsd machine with the 32-bit compatibility layer installed. The FreeBSD image always has the /usr/lib32 directory, so test for the more concrete existence of crt1.o. Also enhance the tests for freebsd to clarify what these trees look like and exercise the new code. Thanks to all the FreeBSD folks for helping me understand what caused the failure and how we might fix it. =] That helps a lot. Also, yay build bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149011 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26StaticAnalyzer/Checkers: Fix CMake build.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149009 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26[analyzer] Add an AST checker that checks for a common pitfall whenAnna Zaks
using CFArrayCreate & family. Specifically, CFArrayCreate's input should be: 'A C array of the pointer-sized values to be in the new array.' (radar://10717339) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149008 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26objc: allow block pointer matching 'id' type whenFariborz Jahanian
they show up as argument types of two block pointers. // rdar://10734265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149007 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Slight refactoring; catch yet another case where we were missing an ↵Eli Friedman
lvalue-to-rvalue conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149003 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26arc migrator: Added an option to the migratorFariborz Jahanian
unused yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149001 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Rework flushing of diagnostics to PathDiagnosticConsumer. Now all the ↵Ted Kremenek
reports are batched up before being flushed to the underlying consumer implementation. This allows us to unique reports across analyses to multiple functions (which shows up with inlining). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148997 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Don't stack-allocate an IntegerLiteral which can be referred to after the ↵Eli Friedman
current method returns. PR11744, part 2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148995 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Revert r148981 because it fails test/Driver/freebsd.cArgyrios Kyrtzidis
Original log: Author: chandlerc <chandlerc@91177308-0d34-0410-b5e6-96231b3b80d8> Date: Wed Jan 25 21:32:31 2012 +0000 Try to unbreak the FreeBSD toolchain's detection of 32-bit targets inside a 64-bit freebsd machine with the 32-bit compatibility layer installed. The FreeBSD image always has the /usr/lib32 directory, so test for the more concrete existence of crt1.o. Also enhance the tests for freebsd to clarify what these trees look like and exercise the new code. Thanks to all the FreeBSD folks for helping me understand what caused the failure and how we might fix it. =] That helps a lot. Also, yay build bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148993 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Add some ABI tweaks for i386-pc-win32 triple so that we return structs in an ↵Eli Friedman
MSVC-compatible way. Patch by Joe Groff. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148992 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Improve the error message slightly for files that aren't using the expected ↵Eli Friedman
UTF-8 encoding. Patch by Seth Cantrell. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148991 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix a crash involving a multi-dimensional dependent VLA. PR11744.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148989 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Post open source analyzer build checker-259.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148988 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25constexpr: add support for anonymous struct and union members in literal types.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148987 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Clean up comment.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148982 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Try to unbreak the FreeBSD toolchain's detection of 32-bit targetsChandler Carruth
inside a 64-bit freebsd machine with the 32-bit compatibility layer installed. The FreeBSD image always has the /usr/lib32 directory, so test for the more concrete existence of crt1.o. Also enhance the tests for freebsd to clarify what these trees look like and exercise the new code. Thanks to all the FreeBSD folks for helping me understand what caused the failure and how we might fix it. =] That helps a lot. Also, yay build bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148981 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Allow typo correction to be disabled in BuildOverloadedCallExpr variant.Kaelyn Uhrain
This suppresses typo correction for auto-generated call expressions such as to 'begin' or 'end' within a C++0x for-range statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148979 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Restore a tiny bit of functionality that I completely overlooked in theChandler Carruth
Linux toolchain selection -- sorry folks. =] This should fix the Hexagon toolchain. However, I would point out that I see why my testing didn't catch this -- we have no tests for Hexagon. ;] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148977 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Avoid correcting unknown identifiers to types where types aren't allowed.Kaelyn Uhrain
Pass a typo correction callback object from ParseCastExpr to Sema::ActOnIdExpression to be a bit more selective about what kinds of corrections will be allowed for unknown identifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148973 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25[driver] Do emit the diagnostics when CompilerInvocation::CreateFromArgs() ↵Argyrios Kyrtzidis
fails. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148970 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Add custom callback object for typo correction in BuildRecoveryCallExpr.Kaelyn Uhrain
The new callback, in addition to limiting which keywords to include in the pool of typo correction candidates, also filters out non-keyword candidates that don't refer to (template) functions that accept the number of arguments that are present for the call being recovered. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148962 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25When we're substituting into a function parameter pack and expect toDouglas Gregor
get a function parameter pack (but don't due to weird substitutions), complain. Fixes the last bit of PR11848. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148960 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25The Linux pattern of adding all the search paths that exist doesn't seemChandler Carruth
to suit the FreeBSD folks. Take them back to something closer to the old behavior. We test whether the /usr/lib32 directory exists (within the SysRoot), and use it if so, otherwise use /usr/lib. FreeBSD folks, let me know if this causes any problems, or if you have further tweaks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148953 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Remove the 'ToolTriple' concept from the NetBSD toolchain along with myChandler Carruth
gross hack to provide it from my previous patch removing HostInfo. This was enshrining (and hiding from my searches) the concept of storing and diff-ing the host and target triples. We don't have the host triple reliably available, so we need to merely inspect the target system. I've changed the logic in selecting library search paths for NetBSD to match what I provided for FreeBSD -- we include both search paths, but put the 32-bit-on-64-bit-host path first so it trumps. NetBSD maintainers, you may want to tweak this, or feel free to ask me to tweak it. I've left a FIXME here about the challeng I see in fixing this properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148952 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Delete still more remnants of the now dead HostInfo. The janitoring willChandler Carruth
continue until cleanliness improves. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148951 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Delete the driver's HostInfo class. This abstraction just never reallyChandler Carruth
did anything. The two big pieces of functionality it tried to provide was to cache the ToolChain objects for each target, and to figure out the exact target based on the flag set coming in to an invocation. However, it had a lot of flaws even with those goals: - Neither of these have anything to do with the host, or its info. - The HostInfo class was setup as a full blown class *hierarchy* with a separate implementation for each "host" OS. This required dispatching just to create the objects in the first place. - The hierarchy claimed to represent the host, when in fact it was based on the target OS. - Each leaf in the hierarchy was responsible for implementing the flag processing and caching, resulting in a *lot* of copy-paste code and quite a few bugs. - The caching was consistently done based on architecture alone, even though *any* aspect of the targeted triple might change the behavior of the configured toolchain. - Flag processing was already being done in the Driver proper, separating the flag handling even more than it already is. Instead of this, we can simply have the dispatch logic in the Driver which previously created a HostInfo object create the ToolChain objects. Adding caching in the Driver layer is a tiny amount of code. Finally, pulling the flag processing into the Driver puts it where it belongs and consolidates it in one location. The result is that two functions, and maybe 100 lines of new code replace over 10 classes and 800 lines of code. Woot. This also paves the way to introduce more detailed ToolChain objects for various OSes without threading through a new HostInfo type as well, and the accompanying boiler plate. That, of course, was the yak I started to shave that began this entire refactoring escapade. Wheee! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148950 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Add some really minimalist freebsd testing trees and use them in theChandler Carruth
freebsd test so that it's behavior isn't dependent on the filesystem of the host running the tests. This should revive the build bots at least. The tests and the trees still need a lot of love to make them as useful and easy to maintain as linux-ld.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148949 91177308-0d34-0410-b5e6-96231b3b80d8