aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-03-01Split out types that are non-canonical unless dependent as their ownJohn McCall
category. Use this in a few places to eliminate unnecessary TST cases and do some future-proofing. Provide terrible manglings for typeof. Mangle decltype with some hope of accuracy. Our manglings for some of the cases covered in the testcase are different from gcc's, which I've raised as an issue with the ABI list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97523 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01More rewriter of nested blocks fun stuff.Fariborz Jahanian
Radar 7696893. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97520 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Unbreak the buildDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97519 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Keep an explicit stack of function and block scopes, each element ofDouglas Gregor
which has the label map, switch statement stack, etc. Previously, we had a single set of maps in Sema (for the function) along with a stack of block scopes. However, this lead to funky behavior with nested functions, e.g., in the member functions of local classes. The explicit-stack approach is far cleaner, and we retain a 1-element cache so that we're not malloc/free'ing every time we enter a function. Fixes PR6382. Also, tweaked the unused-variable warning suppression logic to look at errors within a given Scope rather than within a given function. The prior code wasn't looking at the right number-of-errors count when dealing with blocks, since the block's count would be deallocated before we got to ActOnPopScope. This approach works with nested blocks/functions, and gives tighter error recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97518 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Fix the lookup of names used in a friend declaration to not attempt toChandler Carruth
re-declare them. This fixes PR6317. Also add the beginnings of an interesting test case for p1 of [class.friend] which also covers PR6317. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97499 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01fix PR5933: don't warn about unused variables if a function has other errors ↵Chris Lattner
in it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97498 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Implement jump checking for initialized c++ variables, implementingChris Lattner
a fixme and PR6451. Only perform jump checking if the containing function has no errors, and add the infrastructure needed to do this. On the testcase in the PR, we produce: t.cc:6:3: error: illegal goto into protected scope goto later; ^ t.cc:7:5: note: jump bypasses variable initialization X x; ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97497 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Start detangling the BlockSemaInfo/Sema mess. No functionality change.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97494 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Allow a '0' precision in format strings (as the man page says it is okay).Ted Kremenek
Fixes <rdar://problem/7700339>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97482 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01The latest draft uses 'dt' to mangle member expressions, and now so do we.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97479 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01When looking for a redeclaration of a static variable, only look for ↵Douglas Gregor
redeclarations. Fixes PR6449 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97478 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01When instantiating a function-scoped enum, make sure that it and itsDouglas Gregor
enumeration constants get placed into the local instantiation hash table. Fixes PR6375. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97471 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Robustify instantiation of templates when there are errors in theDouglas Gregor
template definition. Do this both by being more tolerant of errors in our asserts and by not dropping a variable declaration completely when its initializer is ill-formed. Fixes the crash-on-invalid in PR6375, but not the original issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97463 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Don't infinite-loop if TryAnnotateCXXScopeToken fails to annotate but doesn'tJohn McCall
signal an error. This can happen even when the current token is '::' if this is a ::new or ::delete expression. This was an oversight in my recent parser refactor; fixes PR 5825. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97462 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Finish pushing source-location information though TreeTransform'sDouglas Gregor
TransformDefinition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97445 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01When looking for the instantiated declaration that corresponds to aDouglas Gregor
given declaration in a template, make sure that the context we're searching through is complete. Fixes PR6376. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97444 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Since now we store the cast type with an ElementRegion, there isZhongxing Xu
no need to store a type with SymbolRegionValue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97437 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Assert when loading from a code text region instead of returning an unknown ↵Zhongxing Xu
silently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01Don't warn about case-value conversions from a negative value to aDouglas Gregor
larger unsigned value, since this is implementation-defined behavior. (We previously suppressed this warning when converting from a signed value to an unsigned value of the same size). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97430 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Improve name mangling for dependently-scoped declaration references.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97422 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Add name mangling for DeclRefExprs that refer to external namesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97418 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Remove debug output.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97407 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Handle unused functions in construction vtables correctly.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97406 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28pull some altivec stuff out of line.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97405 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Warn about the deprecated string literal -> char* conversion. Fixes PR6428.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97404 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Implement PR6423 by using one token of lookahead to disambiguate Chris Lattner
an *almost* always incorrect case. This only does the lookahead in the insanely unlikely case, so it shouldn't impact performance. On this testcase: struct foo { } typedef int x; Before: t.c:3:9: error: cannot combine with previous 'struct' declaration specifier typedef int x; ^ After: t.c:2:2: error: expected ';' after struct } ^ ; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97403 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28When laying out vtables for virtual bases in construction vtables, we need ↵Anders Carlsson
to check if the vtable is a primary base in the layout class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97402 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Support constant-evaluation of __builtin_nans* as well as the correct constantJohn McCall
evaluation of __builtin_nan*. Most of the work to make this work is in LLVM. Fixes <rdar://problem/7696712> and part of PR 5255. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97383 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Use getBody() to get the function definition when the decl referenced is notZhongxing Xu
definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97373 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28More improvements to construction vtables; we know handle vbase offsets ↵Anders Carlsson
correctly (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Opt into the Verifier now that it's an opt-in feature ofDan Gohman
addPassesToEmitFile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97358 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Pass information about whether a base is virtual or not down to ↵Anders Carlsson
getCtorVtable, we need this information in the vtable builder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97356 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Add new function.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97353 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Fix to dumpLayout; we want to be able to dump address points even if the ↵Anders Carlsson
vtable doesn't have any methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97350 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Debian sid moved these headers into /4.4 and left /4.4.3 as a symlink. Update.Nick Lewycky
Also, add support for 32-bit x86 Debian sid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97347 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Add a simple construction vtable test.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97344 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Start fleshing out construction vtable support.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97342 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Enable the new vtable layout code for vtables that aren't construction ↵Anders Carlsson
vtables. (This doesn't mean that we emit LLVM IR using it yet, it just means that it's running and hopefully not crashing or asserting). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97341 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Move ComputeThisAdjustmentBaseOffset to VtableBuilder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97340 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Make sure to insert the primary base in the set :)Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97339 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Use the real base offset when calculating vbase offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Figured out why the test was failing, this will hopefully fix it.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97336 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Don't add this adjustments for pure virtual member functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97334 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27We want to store method info for unused functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97333 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Revert 97324. Chris says this cleanup could hurt -E performance.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97331 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Move method out-of-line. I thought this would be a candidate for inlining ↵Benjamin Kramer
but I was wrong. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97330 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Finish up the changes to this adjustments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97328 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Another trivial getSpelling simplification.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97327 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Stub out more of the 'this' pointer adjustment fixes I've been planning. ↵Anders Carlsson
Start using a set vector for primary bases so they will be ordered. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97326 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Simplify code.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97324 91177308-0d34-0410-b5e6-96231b3b80d8