- Oct 04, 2011
-
-
Fariborz Jahanian authored
functions. // rdar://10186536 llvm-svn: 141037
-
- Oct 03, 2011
-
-
Anna Zaks authored
[analyzer] In UndefBranchChecker, use a node generator which does not create an edge/branching. (ExprEngine should be in charge of generating edges. The checkers should examine the condition and generate PostCondition node if needed.) llvm-svn: 141034
-
Anna Zaks authored
- Remove unused FindUndefExpr::ProgramStateManager. - The Condition parameter of the callback is the terminator of the block, no need to retrieve it again. llvm-svn: 141027
-
Abramo Bagnara authored
llvm-svn: 141018
-
Abramo Bagnara authored
llvm-svn: 141012
-
Chandler Carruth authored
is designed to allow the detection to record more rich information about the installation than just a single path. Mostly, the functionality remains the same. This is primarily a factoring change. However, the new factoring immediately fixes one issue where on ubuntu we didn't walk up enough layers to reach the parent lib path. I'll have a test tree for that once I finish making the Ubuntu tree work reasonably. llvm-svn: 141011
-
Fariborz Jahanian authored
not bind to a temporary. Fixes //rdar://10188258 llvm-svn: 141009
-
Justin Holewinski authored
llvm-svn: 141008
-
Rafael Espindola authored
llvm-svn: 141002
-
Chandler Carruth authored
enabled for debian hosts, which is quite odd. I think all restriction on when Clang attempts to use a multilib installation should go away. Clang is fundamentally a cross compiler. It behaves more like GCC when built as a cross compiler, and so it should just use multilib installs when they are present on the system. However, there is a very specific exemption for Exherbo, which I can't test on, so I'm leaving that in place. With this, check in a generic test tree for multilib on a 32-bit host. This stubs out many directories that most distributions don't use but that uptsream GCC supports. This is intended to be an agnostic test that the driver behaves properly compared with the GCC driver it aims for compatibility with. Also, fix a bug in the driver that this testing exposed (see!) where it was incorrectly testing the target architecture rather than the host architecture. If anyone is having trouble with the tree-structure stubs I'm creating to test this, let me know and I can revisit the design. I chose this over (for example) a tar-ball in order to make tests run faster at the small, hopefully amortized VCS cost. llvm-svn: 140999
-
Chandler Carruth authored
This requires fixing a latent bug -- if we used the default host triple instead of an autodetected triple to locate GCC's installation, we didn't go back and fix the GCC triple. Correct that with a pile of hacks. This entire routine needs a major refactoring which I'm saving for a subsequent commit. Essentially, the detection of the GCC triple should be hoisted into the same routine as we locate the GCC installation: the first is intrinsically tied to the latter. Then the routine will just return the triple and base directory. Also start to bring the rest of the library search path logic under test, including locating crtbegin.o. Still need to test the multilib and other behaviors, but there are also bugs in the way of that. llvm-svn: 140995
-
Chandler Carruth authored
This is still very much a WIP, but sysroot was completely broken before this so we are moving closer to correctness. The crux of this is that 'ld' (on Linux, the only place I'm touching here) doesn't apply the sysroot to any flags given to it. Instead, the driver must translate all the paths it adds to the link step with the system root. This is easily observed by building a GCC that supports sysroot, and checking its driver output. This patch just fixes the non-multilib library search paths. We should also use this in many other places, but first things first. This also allows us to make the Linux 'ld' test independent of the host system. This in turn will allow me to check in test tree configurations based on various different distro's configuration. Again, WIP. llvm-svn: 140990
-
Argyrios Kyrtzidis authored
Instead of always storing all source locations for the selector identifiers we check whether all the identifiers are in a "standard" position; "standard" position is -Immediately before the arguments: -(id)first:(int)x second:(int)y; -With a space between the arguments: -(id)first: (int)x second: (int)y; -For nullary selectors, immediately before ';': -(void)release; In such cases we infer the locations instead of storing them. llvm-svn: 140989
-
Argyrios Kyrtzidis authored
llvm-svn: 140988
-
Argyrios Kyrtzidis authored
Instead of always storing all source locations for the selector identifiers we check whether all the identifiers are in a "standard" position; "standard" position is -Immediately before the arguments: [foo first:1 second:2] -With a space between the arguments: [foo first: 1 second: 2] -For nullary selectors, immediately before ']': [foo release] In such cases we infer the locations instead of storing them. llvm-svn: 140987
-
Argyrios Kyrtzidis authored
llvm-svn: 140986
-
Argyrios Kyrtzidis authored
llvm-svn: 140985
-
Argyrios Kyrtzidis authored
objc method decls. They are not stored in the AST yet. llvm-svn: 140984
-
Argyrios Kyrtzidis authored
llvm-svn: 140983
-
Argyrios Kyrtzidis authored
They are not kept in the AST yet. llvm-svn: 140982
-
Chandler Carruth authored
precisely match the pattern and logic used by the GCC driver on Linux as of a recent SVN checkout. This happens to follow a *much* more principled approach. There is a strict hierarchy of paths examined, first with multilib-suffixing, second without such suffixing. Any and all of these directories which exist will be added to the library search path when using GCC. There were many places where Clang followed different paths, omitted critical entries, and worst of all (in terms of challenges to debugging) got the entries in a subtly wrong order. If this breaks Clang on a distro you use, please let me know, and I'll work with you to figure out what is needed to work on that distro. I've checked the behavior of the latest release of Ubuntu, OpenSUSE, Fedora, and Gentoo. I'll be testing it on those as well as Debian stable and unstable and ArchLinux. I may even dig out a Slackware install. No real regression tests yet, those will follow once I add enough support for sysroot to simulate various distro layouts in the testsuite. llvm-svn: 140981
-
Peter Collingbourne authored
llvm-svn: 140978
-
Peter Collingbourne authored
llvm-svn: 140977
-
Peter Collingbourne authored
llvm-svn: 140976
-
Peter Collingbourne authored
llvm-svn: 140975
-
- Oct 02, 2011
-
-
Chandler Carruth authored
llvm-svn: 140965
-
Chandler Carruth authored
llvm-svn: 140964
-
Ted Kremenek authored
Fix another major performance regression in LiveVariables by not canonicalizing the underlying ImmutableSets on every analyzed statement (just at merges). Fixes <rdar://problem/10087538>. llvm-svn: 140958
-
John McCall authored
increasingly prevailing case to the point that new features like ARC don't even support the fragile ABI anymore. This required a little bit of reshuffling with exceptions because a check was assuming that ObjCNonFragileABI was only being set in ObjC mode, and that's actually a bit obnoxious to do. Most, though, it involved a perl script to translate a ton of test cases. Mostly no functionality change for driver users, although there are corner cases with disabling language-specific exceptions that we should handle more correctly now. llvm-svn: 140957
-
Ted Kremenek authored
Fix LiveVariables analysis bug with MaterializeTemporaryExpr and fix handling in ExprEngine. Fixes <rdar://problem/10201666>. llvm-svn: 140956
-
- Oct 01, 2011
-
-
John McCall authored
the pointer, being sure to do so before running cleanups associated with that full-expression. rdar://10042689 llvm-svn: 140945
-
John McCall authored
attributes on the parameter declaration. llvm-svn: 140944
-
Anna Zaks authored
Address PR10616. The crash has already been fixed by Ted in r140725, so just refactor to use existing API + test case. llvm-svn: 140932
-
John McCall authored
on declarators written as types. llvm-svn: 140931
-
Richard Smith authored
part on patches by Peter Collingbourne. We diverge from the C++11 standard in a few areas, mostly related to checking constexpr function declarations, and not just definitions. See WG21 paper N3308=11-0078 for details. Function invocation substitution is not available in this patch; constexpr functions cannot yet be used from within constant expressions. llvm-svn: 140926
-
John McCall authored
calls, or calls to audited functions without an explicit return attribute, to be casted without a bridge cast. Tie this mechanism in with the existing exceptions to the cast restrictions. State those restrictions more correctly and generalize. llvm-svn: 140912
-
John McCall authored
to take a FunctionDecl* instead of an llvm::StringRef. Eventually we might push more logic in there, like using slightly different conventions for C++ methods. Also, fix a bug where 'copy' and 'create' were being caught in non-camel-cased strings. We want copyFoo and CopyFoo and XCopy but not Xcopy or xcopy. llvm-svn: 140911
-
Chandler Carruth authored
This patch may do what it describes, it may not. It's hard to tell as its completely unclear what this is supposed to do. There are also no test cases. More importantly, this seems to have broken lots of linker invocations on multilib Linux systems. The manual pages for 'ld' on Linux mention translating a '=' at the beginning of the path into a *configure time* sysroot prefix (this is, I believe, distinct from the --sysroot flag which 'ld' also can support). I tested this with a normal binutils 'ld', a binutils 'ld' with the sysroot flag enabled, and gold with the sysroot flag enabled, and all of them try to open the path '=/lib/../lib32', No translation occurs. I think at the very least inserting an '=' needs to be conditioned on some indication that it is supported and desired. I'm also curious to see what toolchain and whan environment cause it to actually make a difference. I'm going to add a test case for basic sanity of Linux 'ld' invocations from Clang in a follow-up commit that would have caught this. llvm-svn: 140908
-
Argyrios Kyrtzidis authored
llvm-svn: 140894
-
- Sep 30, 2011
-
-
Daniel Dunbar authored
llvm-svn: 140889
-