aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-30Filter out tools and unittests which we don't want to build when we're ↵Bill Wendling
building clang only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164916 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-30Remove this hack in favor of another, better way of performing the same thing.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164915 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-30Specify a full target in an attempt to appease buildbots.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164908 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add Clang support for iOS6.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164907 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add ARM VFPv4 feature and enable it by default for Swift.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164906 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add armv7s and some other arm variants supported by Mach-O files.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164905 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add an FMA intrinsic for ARM Neon.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164904 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Whitespace.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164900 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Fix refersToDeclaration()-matcher and add missing test case. This wasDaniel Jasper
broken as of r164656 as TemplateArgument::getAsDecl() now asserts instead of returning NULL for other template arugment kinds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164896 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Move the 'find macro by spelling' infrastructure to the Preprocessor class andDmitri Gribenko
use it to suggest appropriate macro for __attribute__((deprecated)) in -Wdocumentation-deprecated-sync. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164892 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Comment XML schema: correct indentation.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164889 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29clang/test/CodeGen/tbaa-struct.cpp: Fix. Be aware of 32 bit pointer.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164879 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Revert "[analyzer] Create a temporary region for rvalue structs when ↵Jordan Rose
accessing fields" This reverts commit 6f61df3e7256413dcb99afb9673f4206e3c4992c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164877 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Revert "[analyzer] Create a temp region when a method is called on a struct ↵Jordan Rose
rvalue." This reverts commit 0006ba445962621ed82ec84400a6b978205a3fbc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164876 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Revert "[analyzer] Handle inlined constructors for rvalue temporaries ↵Jordan Rose
correctly." This reverts commit 580cd17f256259f39a382e967173f34d68e73859. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164875 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29For PPCallbacks::InclusionDirective() add a parameter for the module, wheneverArgyrios Kyrtzidis
an inclusion directive was automatically turned into a module import, and PPCallbacks::moduleImport() for an explicit module import. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164874 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29In the Module class, add a reference to the corresponding AST file.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164873 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add an assertion to make sure the implicitly imported moduleArgyrios Kyrtzidis
is the same as the suggested one when looking up the include filename. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29[analyzer] Do not visit ObjCMethodDecl twice in the AST checkers.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164869 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29[analyzer] Re-implement IvarInvalidationChecker so that it verifies thatAnna Zaks
the validation occurred. The original implementation was pessimistic - we assumed that ivars which escape are invalidated. This version is optimistic, it assumes that the ivars will always be explicitly invalidated: either set to nil or sent an invalidation message. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164868 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28PR13941: Mark all virtual functions as unnamed_addr. It's not possible toRichard Smith
observe their addresses (taking their address gives the vtable slot) so we are free to merge their definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164864 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Use a custom DenseMapInfo for WeakObjectProfileTy.Jordan Rose
We can't specialize the usual llvm::DenseMapInfo at the end of the file because by that point the DenseMap in FunctionScopeInfo has already been instantiated. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164862 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28[Doc parsing] Add availability information to generated Comment XML.Fariborz Jahanian
(I still need to add a test once I figure it out). Reviewed off-line by Doug. // rdar://12378879 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164861 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Fix buildbots by not using a template from another namespace.Jordan Rose
No need to specialize BeforeThanCompare for a comparator that's only going to be used once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164859 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Compatibility macro detection for the -Wimplicit-fallthrough diagnostic.Alexander Kornienko
Summary: When issuing a diagnostic message for the -Wimplicit-fallthrough diagnostics, always try to find the latest macro, defined at the point of fallthrough, which is immediately expanded to "[[clang::fallthrough]]", and use it's name instead of the actual sequence. Known issues: * uses PP.getSpelling() to compare macro definition with a string (anyone can suggest a convenient way to fill a token array, or maybe lex it in runtime?); * this can be generalized and used in other similar cases, any ideas where it should reside then? Reviewers: doug.gregor, rsmith Reviewed By: rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D50 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164858 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28-Wreceiver-is-weak: rephrase warning text and add a suggestion Note.Jordan Rose
New output: warning: weak property may be unpredictably set to nil note: property declared here note: assign the value to a strong variable to keep the object alive during use <rdar://problem/12277204> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164857 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Pull ScopeInfo implementation into its own file.Jordan Rose
The infrastructure for -Warc-repeated-use-of-weak got a little too heavy to leave sitting at the top of Sema.cpp. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164856 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28-Warc-repeated-use-of-weak: check ivars and variables as well.Jordan Rose
Like properties, loading from a weak ivar twice in the same function can give you inconsistent results if the object is deallocated between the two loads. It is safer to assign to a strong local variable and use that. Second half of <rdar://problem/12280249>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164855 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Add a warning (off by default) for repeated use of the same weak property.Jordan Rose
The motivating example: if (self.weakProp) use(self.weakProp); As with any non-atomic test-then-use, it is possible a weak property to be non-nil at the 'if', but be deallocated by the time it is used. The correct way to write this example is as follows: id tmp = self.weakProp; if (tmp) use(tmp); The warning is controlled by -Warc-repeated-use-of-receiver, and uses the property name and base to determine if the same property on the same object is being accessed multiple times. In cases where the base is more complicated than just a single Decl (e.g. 'foo.bar.weakProp'), it picks a Decl for some degree of uniquing and reports the problem under a subflag, -Warc-maybe-repeated-use-of-receiver. This gives a way to tune the aggressiveness of the warning for a particular project. The warning is not on by default because it is not flow-sensitive and thus may have a higher-than-acceptable rate of false positives, though it is less noisy than -Wreceiver-is-weak. On the other hand, it will not warn about some cases that may be legitimate issues that -Wreceiver-is-weak will catch, and it does not attempt to reason about methods returning weak values. Even though this is not a real "analysis-based" check I've put the bug emission code in AnalysisBasedWarnings for two reasons: (1) to run on every kind of code body (function, method, block, or lambda), and (2) to suggest that it may be enhanced by flow-sensitive analysis in the future. The second (smaller) half of this work is to extend it to weak locals and weak ivars. This should use most of the same infrastructure. Part of <rdar://problem/12280249> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164854 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Add basic support for adding !tbaa.struct metadata on llvm.memcpy calls forDan Gohman
struct assignment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164853 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28When processing an InitListExpr and skipping the initialization of an invalidRichard Smith
record, skip at least one element from the InitListExpr to avoid an infinite loop if we're initializing an array of unknown bound. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164851 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Update template type diffing to handle qualifiers. Differing qualifiers willRichard Trieu
now be printed with highlighting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164843 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Allow __builtin_bswap32/64 in constant expressions, like gcc does. Patch by ↵Richard Smith
Tijl Coosemans! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164841 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Clean up part of template type diffing. Moved repeated code to separateRichard Trieu
functions. Reworked one of the conditionals. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164839 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Modern objcective-C translator. When doing rewriting, Do not Fariborz Jahanian
use the integrated pre-processor, preprocess in objective-c++ mode. // rdar://12189793. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164836 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28[analyzer] Handle inlined constructors for rvalue temporaries correctly.Jordan Rose
Previously the analyzer treated all inlined constructors like lvalues, setting the value of the CXXConstructExpr to the newly-constructed region. However, some CXXConstructExprs behave like rvalues -- in particular, the implicit copy constructor into a pass-by-value argument. In this case, we want only the /contents/ of a temporary object to be passed, so that we can use the same "copy each argument into the parameter region" algorithm that we use for scalar arguments. This may change when we start modeling destructors of temporaries, but for now this is the last part of <rdar://problem/12137950>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164830 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28[analyzer] Create a temp region when a method is called on a struct rvalue.Jordan Rose
An rvalue has no address, but calling a C++ member function requires a 'this' pointer. This commit makes the analyzer create a temporary region in which to store the struct rvalue and use as a 'this' pointer whenever a member function is called on an rvalue, which is essentially what CodeGen does. More of <rdar://problem/12137950>. The last part is tracking down the C++ FIXME in array-struct-region.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164829 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28[analyzer] Create a temporary region for rvalue structs when accessing fieldsJordan Rose
Struct rvalues are represented in the analyzer by CompoundVals, LazyCompoundVals, or plain ConjuredSymbols -- none of which have associated regions. If the entire structure is going to persist, this is not a problem -- either the rvalue will be assigned to an existing region, or a MaterializeTemporaryExpr will be present to create a temporary region. However, if we just need a field from the struct, we need to create the temporary region ourselves. This is inspired by the way CodeGen handles calls to temporaries; support for that in the analyzer is coming next. Part of <rdar://problem/12137950> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164828 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Avoid malloc thrashing in the uninitialized value analysis.Benjamin Kramer
- The size of the packed vector is often small, save mallocs using SmallBitVector. - Copying SmallBitVectors is also cheap, remove a level of indirection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164827 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-28Set Diag.ErrorOccurred even if a DiagnosticConsumer does not want it inDaniel Jasper
diagnostic count. If a DiagnosticConsumer sub-class overwrites IncludeInDiagnosticCounts, this should change diagnostic counts. However, it currently also influences Diag.ErrorOccurred, which in turn influences the behavior of parsing and semantic analysis (in a way that can make it crash). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164824 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27Fix a regression from r164656.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164804 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27[analyzer] Address Jordan's code review for r164790.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164803 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27[analyzer] IvarInvalidation: track synthesized ivars and allow escapeAnna Zaks
through property getters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164802 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27Unbreak cmake buildAnna Zaks
(fixup for r164790) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27[analyzer] Add an experimental ObjC direct ivar assignment checker.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164790 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27Make getDefaultSynthIvarName() a member of ObjCPropertyDecl.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164789 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27[analyzer] Address Jordan's code review comments for r164716.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164788 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27Pass PrintingPolicy by reference, copying it isn't cheap.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164781 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27clang/test/CodeGen/ms-inline-asm.c: It requires x86 codegen. Reported by ↵NAKAMURA Takumi
Joey Gouly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164775 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27Following up on r164620, cope with symlinking from an embeddedDouglas Gregor
framework location out to a top-level framework. Such frameworks are not really embedded at all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164774 91177308-0d34-0410-b5e6-96231b3b80d8