aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2011-02-23Add a CXXExceptions flag to LangOptions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126299 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Sema: diagnose kernel calls to non-global functionsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126292 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Enhance Sema::DiagRuntimeBehavior() to delay some diagnostics to see if the ↵Ted Kremenek
related code is reachable. This suppresses some diagnostics that occur in unreachable code (e.g., -Warray-bound). We only pay the cost of doing the reachability analysis when we issue one of these diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126290 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Migrate CFGReachabilityAnalysis out of the IdempotentOperationsChecker and ↵Ted Kremenek
into its own analysis file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126289 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Have IdempotentOperationsChecker pull its CFGStmtMap from AnalysisContext.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126288 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Issue AnalysisBasedWarnings as part of calling ↵Ted Kremenek
Sema::PopBlockOrFunctionScope(). No real functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126287 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Update Sema::DiagRuntimeBehavior() to take an optional Stmt* to indicate the ↵Ted Kremenek
code the diagnostic is associated with. This Stmt* is unused, but we will use it shortly for pruning diagnostics associated with unreachable code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126286 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Change -Warray-bounds logic to use DiagRuntimeBehavior in preparation for ↵Ted Kremenek
using basic dataflow to suppress warnings on unreachable array bounds checks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126285 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23[analyzer] Migrate to CheckerV2:Argyrios Kyrtzidis
CastToStructChecker FixedAddressChecker MacOSXAPIChecker PointerArithChecker PointerSubChecker PthreadLockChecker UnixAPIChecker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126284 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Switch the VerifyDiagnosticsClient to use PresumedLocs now that theyChandler Carruth
exist. Cheat and do this by adding some wrappers around the PresumedLoc machinery that directly return the line and column number. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126281 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Fix PR9276: We were missing the checks for auto deducing to different types ↵Richard Smith
in the same declaration group in the template instantiation case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126279 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23[analyzer] Migrate the BasicObjCFoundationChecks to CheckerV2:Argyrios Kyrtzidis
NilArgChecker CFNumberCreateChecker ClassReleaseChecker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126275 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23[analyzer] Fix CheckerManager::runCheckersForObjCMessage.Argyrios Kyrtzidis
It would run PostObjCMessage checkers even for PreObjCMessage checking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126274 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23[analyzer] Refactor BugTypes and their ownership model.Argyrios Kyrtzidis
-In general, don't have the BugReporter deleting BugTypes, BugTypes will eventually become owned by checkers and outlive the BugReporter. In the meantime, there will be some leaks since some checkers assume that the BugTypes they create will be destroyed by the BugReporter. -Have BugReporter::EmitBasicReport create BugTypes that are reused if the same name & category strings are passed to EmitBasicReport. These BugTypes are owned and destroyed by the BugReporter. This allows bugs reported through EmitBasicReport to be coalesced. -Remove the llvm::FoldingSet<BugReportEquivClass> from BugType and move it into the BugReporter. For uniquing BugReportEquivClass also use the BugType* so that we can iterate over all of them using only one set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126272 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-23Better parser recovery when method isFariborz Jahanian
errornously defined inside an objc class. // rdar://7029784 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126269 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Clean up the error recovery at the bottom of Sema::LookupMemberExpr. ThisMatt Beaumont-Gay
mostly just shuffles various possibilities for recovery into a more straightforward order, but also unifies a couple of diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126266 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22When checking for abstract types, don't crash when we have aDouglas Gregor
FunctionProtoTypeLoc with NULL function parameter types, which can occur in invalid code. Fixes PR9247 / <rdar://problem/9037911>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126262 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Provide Fixit warning when 'auto' is intended as storageFariborz Jahanian
specifier in legacy code. Patch is reviewed offline by Doug. // rdar://9036633. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126261 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Emit the structure layout of the block literal parameter to a blockJohn McCall
invocation function into the debug info. Rather than faking up a class, which is tricky because of the custom layout we do, we just emit a struct directly from the layout information we've already got. Also, don't emit an unnecessarily parameter alloca for this "variable". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126255 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Give ImplicitParamDecl a public constructor so that it can be allocated onJohn McCall
the stack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126254 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Provide a Decl::getNonClosureContext to look through any "closure" (i.e.John McCall
block and, eventually, C++ lambda) contexts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126252 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22A constructor call should force class's debug info even if ↵Devang Patel
-flimit-debug-info is enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126246 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22improve support for SUSE Linux Enterprise Server 11 SP1 (x86_64).Chris Lattner
Patch by Csaba Raduly! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126245 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Enable enumeration types with a fixed underlying type, e.g.,Douglas Gregor
enum X : long { Value = 0x100000000 }; when in Microsoft-extension mode (-fms-extensions). This (now C++0x) feature has been supported since Microsoft Visual Studio .NET 2003. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126243 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Use an unused-except-in-Debug variable.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126240 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Use LLVM coding standard.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126232 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Implement the GNU C extension which permits the initialization of anDouglas Gregor
array from a constant array compound literal. Fixes PR9261. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126230 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22[analyzer] Start moving the path-sensitive checkers to CheckerV2.Argyrios Kyrtzidis
-Migrate ObjCSelfInitChecker to CheckerV2. In the process remove the 'preCallSelfFlags' field from the checker class and use GRState for storing that info. -Get ExprEngine to start delegating checker running to CheckerManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126229 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Remove the storage for -cxx-system-include. Make libcxx toolchainJoerg Sonnenberger
use -nostdinc++ and -cxx-isystem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126223 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Reimplement __pragma support using a TokenLexerPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126221 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Make TokenLexer capable of storing preprocessor directive tokensPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126220 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Establish the iteration variable of an ObjC for-in loop beforeJohn McCall
emitting the collection expression. Fixes some really, really broken code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126193 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Reorganize the emission of local variables.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126189 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Add CStringChecker support for strncpy. Patch by Lenny Maiorani!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126188 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Add CStringChecker support for strnlen. Patch by Lenny Maiorani!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126187 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22lib/CodeGen/TargetInfo.cpp: On Win64, arg i128 should be emitted as INDIRECT.NAKAMURA Takumi
mingw-w64's i128 tweak should be done with x86_64-mingw32. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126186 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Fix a little bug in the handling of enumeration types with a fixedDouglas Gregor
underlying type: we weren't parsing unnamed enumeration types with a fixed underlying type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126184 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Warn about implicit conversions between values of different, namedDouglas Gregor
enumeration types. Fixes <rdar://problem/8559831>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126183 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Make clang -cc1 disable Objective-C exceptions by default, and add a ↵Anders Carlsson
-fobjc-exceptions flag to turn them on. Update all tests accordingly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22In Objective-C, there are no trailing return types, so don't produce ↵Richard Smith
diagnostics suggesting they are missing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126174 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Bug#8945: Add -cxx-isystem option to specify C++ system directories.Joerg Sonnenberger
It works like -isystem and the search path keeps -isystem and -cxx-isystem in order relative to each other. -cxx-isystem is only used for C++ sources though. Drop the existing -cxx-system-include option for cc1 as it is now redundant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Fix a few auto-related issues:Richard Smith
* 'auto' was being rejected on abstract-declarators with trailing return types and on typedefs with trailing return types. 'auto' is always allowed in these cases. This was found while testing the fix for PR 9278. * A very poor diagnostic was being issued for auto (f() -> int): "return type must be 'auto', not 'auto'". This is closely related to PR 9060. * Trailing return type handling was happening slightly too late, resulting in the checks for functions returning arrays and functions returning functions being missed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21Warn when type modifiers on objc method declarations inFariborz Jahanian
protocols do not match with method implementation. // rdar://7076235 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126162 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21The instance size of a metaclass should be the size of a class. This is ↵David Chisnall
not, in fact, 0, even for very small classes. (GNU runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126161 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21C++0x's deduced auto is illegal in typedefs.Richard Smith
This actually rules out too much, since it also catches typedefs for pointers to functions with trailing return types: typedef auto (*F)() -> int; Fix for that (and the same issue in all abstract-declarators) to follow shortly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126153 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21Targets/Darwin: mcount name on Darwin needs to be unmangled.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126152 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21Fix a CFGBuilder bug exposed on convoluted control-flow in the Linux kernel.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126149 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21add one more case of mismatched input/output constraints. Chris Lattner
When the mismatch is due to a larger input operand that is a constant, truncate it down to the size of the output. This allows us to accept some cases in the linux kernel and elsewhere. Pedantically speaking, we generate different code than GCC, though I can't imagine how it would matter: Clang: movb $-1, %al frob %al GCC: movl $255, %eax frob %al git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126148 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21more code restructuring, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126146 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21split the iteration loop out to a helper function, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126145 91177308-0d34-0410-b5e6-96231b3b80d8