aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-02-03Fix DeclContext of an objective-c @catch variableFariborz Jahanian
declaration. Fixes radar 7590273. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95164 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Remove RegionStoreSubRegionMap::iterator and ↵Ted Kremenek
RegionStoreSubRegionMap::begin_end(). This is a precursor to using DenseSet to represent region sets instead of ImmutableSet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Explicitly check for casts to double or complex types instead of possibly ↵Ted Kremenek
asserting in SValuator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95128 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02update for llvm api changes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95125 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Implement promotion for enumeration types.Douglas Gregor
WHAT!?! It turns out that Type::isPromotableIntegerType() was not considering enumeration types to be promotable, so we would never do the promotion despite having properly computed the promotion type when the enum was defined. Various operations on values of enum type just "worked" because we could still compute the integer rank of an enum type; the oddity, however, is that operations such as "add an enum and an unsigned" would often have an enum result type (!). The bug actually showed up as a spurious -Wformat diagnostic (<rdar://problem/7595366>), but in theory it could cause miscompiles. In this commit: - Enum types with a promotion type of "int" or "unsigned int" are promotable. - Tweaked the computation of promotable types for enums - For all of the ABIs, treat enum types the same way as their underlying types (*not* their promotion types) for argument passing and return values - Extend the ABI tester with support for enumeration types git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Set the correct vtable pointers _before_ generating code for any member ↵Anders Carlsson
initializers. Fixes about ~2000 clang/LLVM tests in the clang-on-clang build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95116 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02update for llvm api change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95110 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Fix test.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95108 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Dump the constructor type for a CXXConstructExpr.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95106 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Fix this comment.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95104 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Check for redefinitions in MergeVarDecl. This finds redefinitions of globals ↵Sebastian Redl
without an initializer in C++ and thus fixes PR5451. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Fix up rewriting of protocol qualified types in objc rewriter.Fariborz Jahanian
Fixes radar 7589414. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95097 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Fix a C++ regression where redefinitions weren't diagnosed.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95096 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Include <stdlib.h>, so that we're sure to get atoi.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95095 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02the declspec of a declaration can have storage-class specifiers,Chris Lattner
type qualifiers and type specifiers in any order. For example, this is valid: struct x {...} typedef y; This fixes PR6208. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95094 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Driver/Darwin: Don't error/warn on conflicting deployment targets. ApparentlyDaniel Dunbar
this is still a popular thing to do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95093 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Use the Arg variable rather than re-computing it. This also silences GCC'sChandler Carruth
unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Mark dtors for parameter variables and eliminate some redundant type munging.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95079 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Access control for implicit destructor calls. Diagnostic could be orders ofJohn McCall
magnitude clearer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95078 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Codegen CXXConstructExprs with trivial constructors as constants.John McCall
Eliminates a lot of spurious global initializers, fixing PR6205. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95077 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Check in a test case and a nasty workaround for PR6199.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95076 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Extract a common base class between UnresolvedLookupExpr andJohn McCall
UnresolvedMemberExpr and employ it in a few places where it's useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95072 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02XFAIL two tests on Win32 until some cares to investigate... the problem onDaniel Dunbar
dyncast is just due to \r\n newline interaction w/ regexps. The remap-load.c failure is a bit stranger (the end of the extent is on the next line), but I don't care to investigate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95071 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02this is reasonably complete by now.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95069 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02CIndex: Use 'env' instead of relying on bash environment-variable settingDaniel Dunbar
syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95068 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02CIndex: Respect TMPDIR/TEMP/TMP when making temporary files for remapping. As aDaniel Dunbar
side effect, this also fixes some cases on Windows where the file would end up on a different drive, because tmpnam doesn't include the drive component. PR3837 strikes again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95067 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Improve handling of emitting 'null' pointers to data members.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95066 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02CIndex: Fix a crash in clang_createTranslationUnitFromSourceFile when usingDaniel Dunbar
external ASTs, and the ASTUnit fails to load. Also, move getLocationFromExpr outside extern "C" block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Move pointer to data member emission to CodeGenModule and use it in ↵Anders Carlsson
CGExprConstant. Fixes PR5674. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Merge a test into pointers-to-data-members.cpp and convert it to FileCheck.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95061 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Rename a test.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95060 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02FIXME complete.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95059 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Improve the diagnostic used when an incompatible overload set is passedJohn McCall
as an argument during overload resolution. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Implement C++ [temp.deduct.call]p6, template argument deduction for overloadedJohn McCall
arguments. Fix a bug where incomplete explicit specializations were being passed through as legitimate. Fix a bug where the absence of an explicit specialization in an overload set was causing overall deduction to fail. Fixes PR6191. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95052 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Add a stop gap to Sema::CorrectTypo() to correct only up to 20 typos.Ted Kremenek
This is to address a serious performance problem observed when running 'clang -fsyntax-only' on really broken source files. In one case, repeatedly calling CorrectTypo() caused one source file to be rejected after 2 minutes instead of 1 second. This patch causes typo correction to take neglible time on that file while still providing correction results for the first 20 cases. I felt this was a reasonable number for moderately broken source files. I don't claim this is the best solution. Comments welcome. It is necessary for us to address this issue because it is a serious performance problem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95049 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Fix bug in GRExprEngine::VisitSizeOfAlignOfExpr() where we do not addTed Kremenek
'Pred' to 'Dst' for cases we currently don't handle. This fixes <rdar://problem/7593875>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95048 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02add another example.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95043 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Implement PR6180, substantially improving the diagnostics we get fromChris Lattner
forgetting a ';' at the end of a struct. For something like: class c { } void foo() {} we now produce: t.cc:3:2: error: expected ';' after class } ^ ; instead of: t.cc:4:1: error: cannot combine with previous 'class' declaration specifier void foo() {} ^ t.cc:2:7: error: 'class c' can not be defined in the result type of a function class c { ^ GCC produces: t.cc:4: error: new types may not be defined in a return type t.cc:4: note: (perhaps a semicolon is missing after the definition of ‘c’) t.cc:4: error: two or more data types in declaration of ‘foo’ I *think* I got the follow set right, but if I forgot anything, we'll start getting spurious "expected ';' after class" errors, let me know if you see any. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95042 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02improve diagnostics for C++ struct ; issues. Before:Chris Lattner
t.cc:4:3: error: expected ';' at end of declaration list int y; ^ t.cc:6:1: error: expected ';' at end of declaration list }; ^ After: t.cc:3:8: error: expected ';' at end of declaration list int x ^ ; t.cc:5:8: error: expected ';' at end of declaration list int z ^ ; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02improve diagnostics on missing ; in a struct. Before:Chris Lattner
t.c:4:3: error: expected ';' at end of declaration list int y; ^ t.c:4:8: warning: extra ';' inside a struct or union int y; ^ t.c:6:1: warning: expected ';' at end of declaration list }; ^ After: t.c:3:8: error: expected ';' at end of declaration list int x // expected-error {{expected ';' at end of declaration list}} ^ ; t.c:5:8: warning: expected ';' at end of declaration list int z ^ ; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95038 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02Hoist diagnostic generation in ReturnStackAddressChecker into a separate ↵Ted Kremenek
method. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95037 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Make this fix-it test case actually fail when there is a problem; addDouglas Gregor
a test for access declarations and remove a (broken) test for removal of default arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95032 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Improve handling of enumerator values for C and C++, including:Douglas Gregor
- In C++, prior to the closing '}', set the type of enumerators based on the type of their initializer. Don't perform unary conversions on the enumerator values. - In C++, handle overflow when an enumerator has no initializer and its value cannot be represented in the type of the previous enumerator. - In C, handle overflow more gracefully, by complaining and then falling back to the C++ rules. - In C, if the enumerator value is representable in an int, convert the expression to the type 'int'. Fixes PR5854 and PR4515. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95031 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01ARM/APCS: Fix classification of small complex integer types as "integer like".Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95030 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01ARM/APCS: Pass Complex types following llvm-gcc.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95029 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Add format string type checking support for 'long double'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Fix FIXME and surrounding comment.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95023 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Use appropriate context descriptor in RecordDecl's debug info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95016 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Do not use clang type name to name a local variable, e.g. Decl.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95010 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Do not use clang type name to name a local variable, e.g. Decl.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95009 91177308-0d34-0410-b5e6-96231b3b80d8