aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-06-30Use isFunctionOrMethod for vars declared localllyFariborz Jahanian
in method/blocks to decide not to mangle them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107309 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Add a return to silence a warning. Alternately a default: return falseEric Christopher
would work. Sebastian: figure out which one you want :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107305 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Fix RecursiveASTVisitor to traverse the ctor initializer list beforeZhanyong Wan
traversing the ctor body when traversing a CXXConstructorDecl. Reviewed by chandlerc and csilvers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107304 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30extern variable declared locally to objective-c++ methodFariborz Jahanian
should not be mangled either. Fixes radar 8016412. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107303 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Make both old and new versions of reference binding use the new ↵Sebastian Redl
classification functions, and updated them for N3092. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107301 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Clean up the diagnostic complaining about the element type of a vectorDouglas Gregor
type so that it actually complains about the element type itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107299 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Complain about the application of a transparent_union attribute to aDouglas Gregor
union whose first field has integral vector type. Also, clean up this diagnostic a bit. Thanks to Eli for spotting this change in semantics last week. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30reduce nesting.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107292 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Add header file needed to compile with g++-4.6, which has undergone some moreDuncan Sands
header trimming (needed for std::uninitialized_copy). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107291 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Fix a comment typo.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107290 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Nasty rewriter bug which turns out to have an easy fix inFariborz Jahanian
rewriting a c-style cast expression in statement printer. Fixes radar 8143056. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107289 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Fix rdar://8139785 "implement warning on dead expression in comma operator"Argyrios Kyrtzidis
As a bonus, fix the warning for || and && operators; it was emitted even if one of the operands had side effects, e.g: x || test_logical_foo1(); emitted a bogus "expression result unused" for 'x'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Fix PCH support for UnresolvedUsingTypenameDecl and UnresolvedUsingValueDecl.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107268 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Support DependentSizedArrayType for PCH.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107267 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Support ParenListExpr for PCH.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107266 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Make the constructor explicit.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107265 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Mangle arrays in the Microsoft C++ Mangler. It's not quite finished (itCharles Davis
doesn't mangle array parameters right), but I think that should be fixed in Sema (Doug, John, what do you think?). Also, stub out the remaining mangleType() routines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107264 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Correctly implement the CheckerVisit optimization introduced in r106884, but ↵Ted Kremenek
this time actually used the cached checker list when calling back to Checker visit methods. This reduces the analysis time for sqlite3.c by 8%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Headers: Define __INT64_TYPE__ in terms of getInt64Type(), which isn't alwaysDaniel Dunbar
'long'. The practical upshot is so that the uint64_t we define in our stdint.h ends up being compatible with that defined by gcc (at least on Darwin), which otherwise could lead to type incompatibilities with other system headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107255 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Headers: Change [u]intmax_t to be defined in terms of __[U]INTMAX_TYPE__, ↵Daniel Dunbar
instead of intN_t. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Reapply r107235, this time with both my typo fixed, and a logical bug fixed.Chandler Carruth
Previously we relied on the presence of a member which needs no initialization to prevent us from creating an additional initialization of the outer anonymous union field. We have already correctly marked that field as initialized by the member of the union (repeatedly due to the original bug this patch fixes) so we simply need to bail out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107242 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Revert r107235, it had a silly typo in it, and fixing the typo breaks somethingChandler Carruth
else. Get the build bots happy while I debug. Very sorry for the delay fixing this... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107239 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Pointers casted as integers still count as locations to SimpleSValuator, so ↵Jordy Rose
don't crash if we do a funny thing like ((int)ptr)&1. Fixes PR7527. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107236 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Fix PR7402: We were creating implicit member initializers for every field in anChandler Carruth
anonymous union under the presumption that they didn't do anything. While this is true, our checks for redundant initialization of an anonymous union still fire when these overlap with explicit user initialization. A cleaner approach is to avoid initializing multiple members of a union altogether, but this still is in a rather fuzzy are especially when C++0x allows non-POD types into unions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107235 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Revert r107173, "fix PR7519: after thrashing around and remembering how all ↵Daniel Dunbar
this stuff", it broke bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107232 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Revert r107216, "fix PR7523, which was caused by the ABI code calling ↵Daniel Dunbar
ConvertType instead", it is part of a boostrap breaking sequence. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107231 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Implement C++ DR299, which allows an implicit conversion from a classDouglas Gregor
type to an integral or enumeration type in the size of an array new expression, e.g., new int[ConvertibleToInt(10)]; This is a GNU and C++0x extension. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107229 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Retain the source location of the constructor when building an implicit memberChandler Carruth
initialization. I tried several ideas but couldn't come up with a test case for this that didn't rely on a Clang bug to report a diagnostic after template instantiation of the constructor due to the implicit initializers. Suggestions welcome. This fixes the source location aspect of PR7402. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107226 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Re-improve recovery when the condition of a switch statement does notDouglas Gregor
have integral or enumeration type, so that we still check the contents of the switch body. My previous patch made this worse; now we're back to where we were previously. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Factor the conversion from a switch condition to an integral orDouglas Gregor
enumeration type out into a separate, reusable routine. The only functionality change here is that we recover a little more aggressively from ill-formed switch conditions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107222 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Support C++ friend declarations for PCH.Argyrios Kyrtzidis
This commit 'introduces' a slightly different way to restore the state of the AST object. It makes PCHDeclReader/PCHDeclWriter friends and gives them access to the private members of the object. The rationale is to avoid using/modifying the AST interfaces for PCH read/write so that to: -Avoid complications with objects that have side-effects during creation or when using some setters. -Not 'pollute' the AST interface with methods only used by the PCH reader/writer -Allow AST objects to be read-only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107219 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29When we know that we are at sub-statement reading (which is all of ↵Argyrios Kyrtzidis
PCHStmtReader) use the "faster" ReadSubStmt. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107218 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29IRgen: Assignment to Objective-C properties shouldn't reload the value, forDaniel Dunbar
complex values either. Previously we did this properly for regular assignment, but not for compound assignment. - Also, tidy up assignment code a bit to look more like the scalar path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107217 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29fix PR7523, which was caused by the ABI code calling ConvertType insteadChris Lattner
of ConvertTypeRecursive when it needed to in a few cases, causing pointer types to get resolved at the wrong time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107216 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29IRgen: Assignment to Objective-C properties shouldn't reload the value (whichDaniel Dunbar
would trigger an extra method call). - While in the area, I also changed Clang to not emit an unnecessary load from 'x' in cases like 'y = (x = 1)'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107210 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Tweaker Checker::VisitEndAnalysis to have 'hasWorkRemaining' alsoTed Kremenek
be true if some paths were aborted because they exceeded the maximum loop unrolling count. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107209 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Add test case for <rdar://problem/4289832>. Clang actuallys getsTed Kremenek
the test case right (for the noreturn warning) because the CFG doesn't support @try yet, but the test case is now present when we do properly implement CFG support for @try...@catch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29When typo correction produces a result that is not of the kind we'reDouglas Gregor
looking for, reset the name within the LookupResult structure in addition to clearing out the results. Fixes PR7508. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107197 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29change ABIArgInfo to hold its llvm type with PATypeHolder so thatChris Lattner
it doesn't dangle as types get refined. This fixes Shootout-C++/lists1 and probably also PR7522. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107196 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Fix broken testcaseDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107194 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Typo correction for namespace alias definitionsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107191 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29tests: Fix test to not depend on instruction names.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107186 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Sema: Fix a subtle i64 -> i32 truncation which broke layout of large structuresDaniel Dunbar
with bit-fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107185 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29relax the CGFunctionInfo::CGFunctionInfo ctor to allow any sequence Chris Lattner
of CanQualTypes to be passed in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107176 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29This patch fixes a bug whereby, clang skipped Fariborz Jahanian
unimplemented property warning for properties coming from class's conformin protocol. It also simplifies the algorithm in the process. Fixes radar 8035776. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29fix PR7519: after thrashing around and remembering how all this stuffChris Lattner
works, the fix is quite simple: just make sure to call ConvertTypeRecursive when the function type being lowered is in the midst of ConvertType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107173 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29Allow a using directive to refer to the implicitly-defined namespaceDouglas Gregor
"std", with a warning, to improve GCC compatibility. Fixes PR7517. As a drive-by, add typo correction for using directives. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107172 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29With packed enums, an enumerator's value may be stored in more bitsDouglas Gregor
than the enumeration type itself takes. Fixes PR7477. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107163 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29tests: Use %clangxx when using driver for C++, in case C++ support is disabled.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29tests: Spell %clang_cc1 correctly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107152 91177308-0d34-0410-b5e6-96231b3b80d8