aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-05-02[document parsing]: support c++11 type aliasesFariborz Jahanian
with no comment of their own to inherit the comment of their aliased type. // rdar://13752382 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180924 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02Make sure we define wchar_t related macros correctly in -fms-extensions mode.Hans Wennborg
This adds a test to make sure we define _WCHAR_T_DEFINED and _NATIVE_WCHAR_T_DEFINED correctly in the preprocessor, and updates stddef.h to set it when typedeffing wchar_t. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180918 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02Fix typo in a stddef.h comment: s/risze_t/rsize_t/Hans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180916 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02Only evaluate __has_feature(c_thread_local) and ↵Douglas Gregor
__has_feature(cxx_thread_local) true when the target supports thread-local storage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180909 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02[analyzer] Finally make c++-analyzer 'executable' again.Anton Yartsev
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180905 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02[analyzer] RetainCountChecker: don't track through xpc_connection_set_context.Jordan Rose
It is unfortunate that we have to mark these exceptions in multiple places. This was already in CallEvent. I suppose it does let us be more precise about saying /which/ arguments have their retain counts invalidated -- the connection's is still valid even though the context object's isn't -- but we're not tracking the retain count of XPC objects anyway. <rdar://problem/13783514> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180904 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02[analyzer] Recreated as a file.Anton Yartsev
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180903 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02[analyzer] Temporary remove c++analyzer to recreate it as a separate file, ↵Anton Yartsev
not a symlink. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180902 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02[analyzer] Added 'executable' property to c++analyzer.Anton Yartsev
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180901 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02[analyzer] scan-build for WindowsAnton Yartsev
The patch allows Windows users to launch scan-build without any additional preparations in the same way as it described in http://clang-analyzer.llvm.org/scan-build.html. The only thing that should be done to make scan-build work from an arbitrary location is to add scan-build folder to the PATH environment variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180900 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01[analyzer] Consolidate constant evaluation logic in SValBuilder.Jordan Rose
Previously, this was scattered across Environment (literal expressions), ExprEngine (default arguments), and RegionStore (global constants). The former special-cased several kinds of simple constant expressions, while the latter two deferred to the AST's constant evaluator. Now, these are all unified as SValBuilder::getConstantVal(). To keep Environment fast, the special cases for simple constant expressions have been left in, but the main benefits are that (a) unusual constants like ObjCStringLiterals now work as default arguments and global constant initializers, and (b) we're not duplicating code between ExprEngine and RegionStore. This actually caught a bug in our test suite, which is awesome: we stop tracking allocated memory if it's passed as an argument along with some kind of callback, but not if the callback is 0. We were testing this in a case where the callback parameter had a default value, but that value was 0. After this change, the analyzer now (correctly) flags that as a leak! <rdar://problem/13773117> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180894 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01[analyzer] Don't inline the [cd]tors of C++ iterators.Jordan Rose
This goes with r178516, which instructed the analyzer not to inline the constructors and destructors of C++ container classes. This goes a step further and does the same thing for iterators, so that the analyzer won't falsely decide we're trying to construct an iterator pointing to a nonexistent element. The heuristic for determining whether something is an iterator is the presence of an 'iterator_category' member. This is controlled under the same -analyzer-config option as container constructor/destructor inlining: 'c++-container-inlining'. <rdar://problem/13770187> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180890 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01[documenting declaration]: Remove arc liftime qualifiersFariborz Jahanian
when doccumenting declrations in comments. // rdar://13757500 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180880 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01Fix typo in FileCheck.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180877 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01[inline asm] Add a test case for r180873. Test case needs to be on the clangChad Rosier
side because we need an inline asm diagnostics handler in place. Unfortunately, we emit a .s file because we need to build the SelectionDAG to hit the backend issue. rdar://13446483 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180874 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01Fix spurious trailing comma when printing some of the __c11_atomic_* ↵Richard Smith
builtins. Patch by Joe Sprowes! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180867 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01PR15884: In the 'taking the address of a temporary' extension, materialize theRichard Smith
temporary to an lvalue before taking its address. This removes a weird special case from the AST representation, and allows the constant expression evaluator to deal with it without (broken) hacks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180866 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01Re-apply "[analyzer] Model casts to bool differently from other numbers."Jordan Rose
This doesn't appear to be the cause of the slowdown. I'll have to try a manual bisect to see if there's really anything there, or if it's just the bot itself taking on additional load. Meanwhile, this change helps with correctness. This changes an assertion and adds a test case, then re-applies r180638, which was reverted in r180714. <rdar://problem/13296133> and PR15863 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180864 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01Fix buildbot yet again. // rdar://13757500.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180863 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01attempt to fix the buildbot failure.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180861 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01[ObjC declaration documentation] declaration of Fariborz Jahanian
types involving Objective-C pointers must have their arc qualifiers elided as they don't add any additional info. // rdar://13757500. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180860 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01As of r180836, these tests should no longer be XFAILed on Windows.Aaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180853 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-01Point diagnostics that complain about a use of a selector in an objc ↵Argyrios Kyrtzidis
message, to the selector location. Previously it would point to the left bracket or the receiver, which can be particularly problematic if the receiver is a block literal and we end up point the diagnostic far away for the selector that is complaining about. rdar://13620447 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180833 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Revert 180817 because 180816 was reverted.Adrian Prantl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180823 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Fix PR15845: apparently MSVC does not support implicit int in C++ mode.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180822 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Do not generate VLAs as complex variables any more, as they are nowAdrian Prantl
correctly represented as breg+0 locations in the backend. (Paired commit with LLVM: r180815) rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180817 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30[driver] Allow multiple -arch options with -save-temps by adding the arch nameChad Rosier
to the temporary files. rdar://13218604 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180813 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30[analyzer] scan-build: support -enable-checker with new Xcode integration.Jordan Rose
<rdar://problem/13772094> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180812 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Revert r180739 and r180748: they broke C++11 thread_local on non-Darwin ↵Richard Smith
systems and did not do the right thing on Darwin. Original commit message: Emit the TLS intialization functions into a list. Add the TLS initialization functions to a list of initialization functions. The back-end takes this list and places the function pointers into the correct section. This way they're called before `main().' <rdar://problem/13733006> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180809 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30When deducing an 'auto' type, don't modify the type-as-written.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180808 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30[ms-cxxabi] Implement member pointer comparisonsReid Kleckner
Summary: Like Itanium, comparisons are basically bitwise comparisons of the two values, with an exception for null member function pointers. If two function pointers are null, only the function pointer field matters for comparison purposes. The rest of the bits can be arbitrary. We take advantage of this in isZeroInitializable(), and it may matter once we start emitting conversions. Reviewers: rjmccall CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D695 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180800 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Struct-path aware TBAA: enable struct-path aware TBAA for classes.Manman Ren
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180795 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Don't treat a non-deduced 'auto' type as being type-dependent. Instead, thereRichard Smith
are now two distinct canonical 'AutoType's: one is the undeduced 'auto' placeholder type, and the other is a deduced-but-dependent type. All deduced-to-a-non-dependent-type cases are still non-canonical. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180789 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Use {{.*}}suffix instead of [[TC]] in places where we print the toolchainRafael Espindola
path with /. This matches linux-ld.c and should finish fixing this test on windows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180786 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Always use / when computing mips specific paths.Rafael Espindola
We were getting paths with both / and \ in them. This should fix mips-cs-ld.c on the windows bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180783 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30[Mips] Pass -mips16, -mmicromips, -mdsp and -mdspr2 flags to theSimon Atanasyan
assembler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180775 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Place bitfield -Wconstant-conversion warning into subgroup called ↵Ted Kremenek
-Wbitfield-constant-conversion. This is to just allow more precise diagnostic control. Implements <rdar://problem/13766026>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180773 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Fix very confusing indent in Sema.cpp.Daniel Jasper
This came up during my Euro LLVM 2013 talk on clang-format and I was asked to submit it :-). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180772 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30[PCH] Fix memory leak related to deserialized MacroInfo objects.Argyrios Kyrtzidis
Deserialized MacroInfos were not destroyed and if their SmallVector did heap allocation, it was leaked. rdar://13768967 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180771 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Add support for -stdlib=libc++ in the NetBSD toolchain.Joerg Sonnenberger
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180766 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Objective-C (mostly arc): Under ARC, we often have unneeded qualifiers Fariborz Jahanian
in the diagnostics. Remove them when reporting incompatible Objective-C pointer types. // rdar://13752880. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180765 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29Modify triple to try to make it pass on ARM.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180748 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29Just use std::list<> for PathPieces instead of complicated use of ilist.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180747 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29Revert "[analyzer] Change PathPieces to be a wrapper around an ilist of ↵Ted Kremenek
(through indirection) PathDiagnosticPieces." Jordan rightly pointed out that we can do the same with std::list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180746 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29[analyzer] Change PathPieces to be a wrapper around an ilist of (through ↵Ted Kremenek
indirection) PathDiagnosticPieces. Much of this patch outside of PathDiagnostics.h are just minor syntactic changes due to the return type for operator* and the like changing for the iterator, so the real focus should be on PathPieces itself. This change is motivated so that we can do efficient insertion and removal of individual pieces from within a PathPiece, just like this was a kind of "IR" for static analyzer diagnostics. We currently implement path transformations by iterating over an entire PathPiece and making a copy. This isn't very natural for some algorithms. We use an ilist here instead of std::list because we want operations to rip out/insert nodes in place, just like IR manipulation. This isn't being used yet, but opens the door for more powerful transformation algorithms on diagnostic paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180741 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29[analyzer] Remove comparePath's dependency on subscript operator.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180740 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29Emit the TLS intialization functions into a list.Bill Wendling
Add the TLS initialization functions to a list of initialization functions. The back-end takes this list and places the function pointers into the correct section. This way they're called before `main().' <rdar://problem/13733006> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180739 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29c language: diagnose use of "[*]" on any array dimensionFariborz Jahanian
in the parameter of a function definition. Currently, it crashes in irgen if it is on other than the 1st dimension. // rdar://13705391 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180732 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29Use ArrayRef in AddMethodCandidate.Rafael Espindola
Patch by Robert Wilhelm! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180724 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29[test] add missing header for the test.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180719 91177308-0d34-0410-b5e6-96231b3b80d8