- Feb 18, 2009
-
-
Ted Kremenek authored
Update several tests to explicitly use BasicConstraintManager as well as to use RangeConstraintManager with RegionStoreManager. llvm-svn: 64854
-
Douglas Gregor authored
specialization of class templates, e.g., template<typename T> class X; template<> class X<int> { /* blah */ }; Each specialization is a different *Decl node (naturally), and can have different members. We keep track of forward declarations and definitions as for other class/struct/union types. This is only the basic framework: we still have to deal with checking the template headers properly, improving recovery when there are failures, handling nested name specifiers, etc. llvm-svn: 64848
-
- Feb 17, 2009
-
-
Daniel Dunbar authored
llvm-svn: 64837
-
Daniel Dunbar authored
- Renamed to getDeclAlignInBytes since most other query functions work in bits. - Fun to track down as isIntegerConstantExpr was getting it right, but Evaluate() was getting it wrong. Maybe we should assert they compute the same thing when they succeed? llvm-svn: 64828
-
Ted Kremenek authored
llvm-svn: 64799
-
Ted Kremenek authored
Enhance tests to exercise more combinations of using the RangeConstraintManager with the RegionStoreManager. llvm-svn: 64788
-
Douglas Gregor authored
llvm-svn: 64781
-
Daniel Dunbar authored
IRgen no longer relies on isConstantInitializer, instead we just try to emit the constant. If that fails then in C we emit an error unsupported (this occurs when Sema accepted something that it doesn't know how to fold, and IRgen doesn't know how to emit) and in C++ we emit a guarded initializer. This ends up handling a few more cases, because IRgen was actually able to emit some of the constants Sema accepts but can't Evaluate(). For example, PR3398. llvm-svn: 64780
-
Ben Laurie authored
llvm-svn: 64771
-
Douglas Gregor authored
much pain when compiling the Linux kernel (PR3592). llvm-svn: 64767
-
Ted Kremenek authored
- Move all analyzer options logic to AnalysisConsumer.cpp. - Unified specification of stores/constraints/output to be: -analyzer-output=... -analyzer-store=... -analyzer-constraints=... instead of -analyzer-range-constraints, -analyzer-store-basic, etc. - Updated drivers (ccc-analyzer, scan-builds, new ccc) to obey this new interface - Updated test cases to conform to new driver options llvm-svn: 64737
-
Douglas Gregor authored
functions, so if we're declaring a static we should implicitly declare a library function by the same name (e.g., malloc, strdup). Fixes PR3592. llvm-svn: 64736
-
Douglas Gregor authored
CXXRecordDecl that is used to represent class template specializations. These are canonical declarations that can refer to either an actual class template specialization in the code, e.g., template<> class vector<bool> { }; or to a template instantiation. However, neither of these features is actually implemented yet, so really we're just using (and uniqing) the declarations to make sure that, e.g., A<int> is a different type from A<float>. Note that we carefully distinguish between what the user wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it represents (e.g., "A<float, int>"); the former is in the sugared Type, the latter is an actual Decl. llvm-svn: 64716
-
Chris Lattner authored
llvm-svn: 64708
-
Chris Lattner authored
llvm-svn: 64707
-
Daniel Dunbar authored
llvm-svn: 64700
-
- Feb 16, 2009
-
-
Daniel Dunbar authored
- Define pow[lf]?, sqrt[lf]? as builtins. - Add -fmath-errno option which binds to LangOptions.MathErrno - Add new builtin flag Builtin::Context::isConstWithoutErrno for functions which can be marked as const if errno isn't respected for math functions. Sema automatically marks these functions as const when they are defined, if MathErrno=0. - IRgen uses const attribute on sqrt and pow library functions to decide if it can use the llvm intrinsic. llvm-svn: 64689
-
Douglas Gregor authored
extensions). This caught a couple bugs in our test suite :) llvm-svn: 64686
-
Chris Lattner authored
We now pass all the deprecation tests in the objc.dg suite. llvm-svn: 64679
-
Daniel Dunbar authored
- Fix test case to not only have negative tests. llvm-svn: 64674
-
Fariborz Jahanian authored
llvm-svn: 64672
-
Chris Lattner authored
llvm-svn: 64671
-
Chris Lattner authored
llvm-svn: 64670
-
Chris Lattner authored
llvm-svn: 64667
-
Douglas Gregor authored
prototype, synthesize ParmVarDecls for prototype-less FunctionDecl. llvm-svn: 64666
-
Ted Kremenek authored
llvm-svn: 64663
-
Chris Lattner authored
whose declaration was declared as deprecated. llvm-svn: 64658
-
Douglas Gregor authored
interface for ivars before assuming that this is an unresolved function name. Fixes <rdar://problem/6590445>. llvm-svn: 64653
-
Chris Lattner authored
property is deprecated, not the getter/setter if the attribute is on the property. llvm-svn: 64644
-
Douglas Gregor authored
merge the prototype into the redeclaration (and make a note in the declaration). Fixes PR3588. llvm-svn: 64641
-
Douglas Gregor authored
- If a declaration is an invalid redeclaration of an existing name, complain about the invalid redeclaration then avoid adding it to the AST (we can still parse the definition or initializer, if any). - If the declaration is invalid but there is no prior declaration with that name, introduce the invalid declaration into the AST (for later error recovery). - If the declaration is an invalid redeclaration of a builtin that starts with __builtin_, we produce an error and drop the redeclaration. If it is an invalid redeclaration of a library builtin (e.g., malloc, printf), warn (don't error!) and drop the redeclaration. If a user attempts to define a builtin, produce an error and (if it's a library builtin like malloc) suggest -ffreestanding. This addresses <rdar://problem/6097585> and PR2892. However, PR3588 is still going to cause some problems when builtins are redeclared without a prototype. llvm-svn: 64639
-
Chris Lattner authored
llvm-svn: 64637
-
Chris Lattner authored
hosts with a different size_t type. llvm-svn: 64636
-
Chris Lattner authored
llvm-svn: 64635
-
Chris Lattner authored
llvm-svn: 64634
-
- Feb 15, 2009
-
-
Nate Begeman authored
llvm-svn: 64614
-
Chris Lattner authored
llvm-svn: 64609
-
Chris Lattner authored
*end* of a macro instantiation, not the start of it. This is really all about bug-for-bug compatibility with GCC, but not doing this breaks the FreeBSD kernel. llvm-svn: 64603
-
Chris Lattner authored
Now instead of just tracking the expansion history, also track the full range of the macro that got replaced. For object-like macros, this doesn't change anything. For _Pragma and function-like macros, this means we track the locations of the ')'. This is required for PR3579 because apparently GCC uses the line of the ')' of a function-like macro as the location to expand __LINE__ to. llvm-svn: 64601
-
Daniel Dunbar authored
llvm-svn: 64599
-