summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement __builtin_eh_return.John McCall2010-03-031-0/+16
| | | | llvm-svn: 97643
* Fix a bug with base offset merging that Devang noticed.Anders Carlsson2010-03-032-37/+67
| | | | llvm-svn: 97641
* Implement name hiding for names found through virtual base subobjectsDouglas Gregor2010-03-034-5/+154
| | | | | | | | that are hidden by other derived base subobjects reached along a lookup path that does *not* pass through the hiding subobject (C++ [class.member.lookup]p6). Fixes PR6462. llvm-svn: 97640
* Add proper target hooks for __builtin_extract_return_address andJohn McCall2010-03-033-4/+36
| | | | | | | __builtin_frob_return_address. The implementations for both are still trivial in the default case. llvm-svn: 97638
* Don't emit derived-to-base destructor aliases if we don't have a definitionJohn McCall2010-03-032-1/+21
| | | | | | | | for the base destructor, because aliases to declarations aren't legal. Fixes PR 6471. llvm-svn: 97637
* Refactor CXXRecordDecl::lookupInBases() to push the recursion down aDouglas Gregor2010-03-032-28/+41
| | | | | | | level. No functionality change, and it obeys access control this time. llvm-svn: 97634
* Use SVN_REVISION, not SVN_VERSION.Ted Kremenek2010-03-031-1/+1
| | | | llvm-svn: 97625
* Fix an algorithmic bug in LiveVariables pointed out by Zhongxing.Ted Kremenek2010-03-031-6/+9
| | | | | | | If an initializer in a DeclStmt references the declared variable, that extends the liveness of that variable. llvm-svn: 97624
* Revert r97618. Access control sucksDouglas Gregor2010-03-031-18/+9
| | | | llvm-svn: 97621
* Make getClangRevision() check that SVN_VERSION is an empty string Ted Kremenek2010-03-031-8/+8
| | | | | | | | (even if it is defined). This fixes the issue of this function returning '0' when SVN_VERSION is defined to be "". Fixes: <rdar://problem/7663667> llvm-svn: 97620
* Add comments to test case.Zhongxing Xu2010-03-031-0/+2
| | | | llvm-svn: 97619
* Factor out the recursive lookup into C++ base classes into a separate,Douglas Gregor2010-03-031-9/+18
| | | | | | static function. No functionality change. llvm-svn: 97618
* Initialize your storage, dummyDouglas Gregor2010-03-031-0/+2
| | | | llvm-svn: 97615
* Don't use echo in the Index test, which I hope will work around an ↵Douglas Gregor2010-03-032-2/+3
| | | | | | intermittent Windows failure llvm-svn: 97613
* Eliminate the static map of overridden C++ methods, which was going toDouglas Gregor2010-03-023-34/+124
| | | | | | come back to bite us at some point. llvm-svn: 97607
* Suppress implicit member redeclarations arising from explicit instantiationJohn McCall2010-03-022-0/+17
| | | | | | | | | | | | declarations after the member has been explicitly specialized. We already did this after explicit instantiation definitions; not doing it for declarations meant that subsequent definitions would see a previous member declaration with specialization kind "explicit instantiation decl", which would then happily get overridden. Fixes PR 6458. llvm-svn: 97605
* [CFG]Ted Kremenek2010-03-023-38/+52
| | | | | | | | | | | | | | | | | | | After discussion with Zhongxing, don't force the initializer of DeclStmts to be block-level expressions. This led to some interesting fallout: [UninitializedValues] Always visit the initializer of DeclStmts (do not assume they are block-level expressions). [BasicStore] With initializers of DeclStmts no longer block-level expressions, this causes self-referencing initializers (e.g. 'int x = x') to no longer cause the initialized variable to be live before the DeclStmt. While this is correct, it caused BasicStore::RemoveDeadBindings() to prune off the values of these variables from the initial store (where they are set to uninitialized). The fix is to back-port some (and only some) of the lazy-binding logic from RegionStore to BasicStore. Now the default values of local variables are determined lazily as opposed to explicitly initialized. llvm-svn: 97591
* Don't conjure a symbol for DeclStmts when the variable is a C++ reference.Ted Kremenek2010-03-021-5/+5
| | | | llvm-svn: 97590
* During codegen assert that any copy assignment, destructor or constructor thatRafael Espindola2010-03-025-52/+102
| | | | | | | | we need to synthesize has been marked as used by Sema. Change Sema to avoid these asserts. llvm-svn: 97589
* Bump the default maximum template-instantiation depth to 500, as inDouglas Gregor2010-03-021-1/+1
| | | | | | GCC. Fixes PR6301. llvm-svn: 97579
* Add test case from PR6064, which now worksDouglas Gregor2010-03-021-0/+13
| | | | llvm-svn: 97575
* Diagnose the declaration of enum templates. Also, be a bit moreDouglas Gregor2010-03-025-7/+24
| | | | | | careful about value-dependent enumerators. Fixes PR5786. llvm-svn: 97570
* Move Emit24 to clang::ioKovarththanan Rajaratnam2010-03-022-6/+8
| | | | llvm-svn: 97569
* Use CXXTemporaryObjectExpr for explicitly-constructed temporaries. WeDouglas Gregor2010-03-023-5/+39
| | | | | | | used to do this, but it got lost when we switched functional-style cast syntax over to using the new initialization code. Fixes PR6457. llvm-svn: 97568
* Pass -m32 and -m64 to the static analyzer when using scan-build. Now we canCharles Davis2010-03-021-0/+2
| | | | | | | | use scan-build with Wine, for example. Ted, I hope this is OK. llvm-svn: 97566
* Register all parameters even if they didn't occur in the function body.Zhongxing Xu2010-03-022-0/+18
| | | | | | | We may query their liveness because they are added to store when passing argument values. llvm-svn: 97562
* Unify initializer-instantiation code for variable declarations andDouglas Gregor2010-03-021-85/+93
| | | | | | base/member initializers. llvm-svn: 97560
* Simplify code.Anders Carlsson2010-03-021-8/+7
| | | | llvm-svn: 97551
* Inspired by seeing "MIPS" go by in the commits, I've gone ahead andJohn McCall2010-03-023-11/+35
| | | | | | | | | | | implemented a (codegen) target hook for __builtin_extend_pointer. I'm also making it return a uint64_t instead of an unsigned word; this comports with typical usage (i.e. the one use I know of). I don't know if any of the existing targets requires this hook to be set (other than x86 and x86_64, which I know do not). llvm-svn: 97547
* Rename BaseOffset to Offset and make it signed in preparation of more ↵Anders Carlsson2010-03-021-10/+11
| | | | | | construction vtable work. llvm-svn: 97546
* Add in some more MIPS command line options.Eric Christopher2010-03-023-1/+101
| | | | | | Patch by Oleksandr Tymoshenko! llvm-svn: 97544
* After much consultation aimed at figuring out what this builtin actuallyJohn McCall2010-03-022-1/+17
| | | | | | | does, document the results and then implement __builtin_extend_pointer for platforms where it's a no-op. llvm-svn: 97540
* Add test case from PR5812, which works now.Douglas Gregor2010-03-021-0/+12
| | | | llvm-svn: 97535
* Fix an amusing typo that completely the re-introduction of parametersDouglas Gregor2010-03-022-1/+16
| | | | | | | | | | | for the purposes of parsing default arguments. In effect, we would re-introduce the parameter with a default argument N times (where N is the number of parameters preceding the parameter with a default argument). This showed up when a defaulted parameter of a member function of a local class shadowed a parameter of the enclosing function. Fixes PR6383. llvm-svn: 97534
* Cast a pointer to 'long long' to satisfy all compilation models.Fariborz Jahanian2010-03-021-1/+3
| | | | | | Satisfies radar 7703202. llvm-svn: 97532
* Add commentDouglas Gregor2010-03-021-1/+2
| | | | llvm-svn: 97528
* When we're parsing template names as part of base-specifiers, we areDouglas Gregor2010-03-012-1/+20
| | | | | | | | *not* entering the context of the nested-name-specifier. This was causing us to look into an uninstantiated template that we shouldn't look into. Fixes PR6376. llvm-svn: 97524
* Split out types that are non-canonical unless dependent as their ownJohn McCall2010-03-016-13/+115
| | | | | | | | | | | 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. llvm-svn: 97523
* More rewriter of nested blocks fun stuff.Fariborz Jahanian2010-03-012-19/+75
| | | | | | Radar 7696893. llvm-svn: 97520
* Unbreak the buildDouglas Gregor2010-03-012-1/+5
| | | | llvm-svn: 97519
* Keep an explicit stack of function and block scopes, each element ofDouglas Gregor2010-03-0112-137/+231
| | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 97518
* Fix the lookup of names used in a friend declaration to not attempt toChandler Carruth2010-03-012-2/+65
| | | | | | | re-declare them. This fixes PR6317. Also add the beginnings of an interesting test case for p1 of [class.friend] which also covers PR6317. llvm-svn: 97499
* fix PR5933: don't warn about unused variables if a function has other errors ↵Chris Lattner2010-03-012-1/+8
| | | | | | in it. llvm-svn: 97498
* Implement jump checking for initialized c++ variables, implementingChris Lattner2010-03-018-13/+56
| | | | | | | | | | | | | | | | | | 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; ^ llvm-svn: 97497
* avoid issues with the new scope protector. Previously we'd errorChris Lattner2010-03-011-2/+4
| | | | | | with "address taken of label in protected scope, jump to it would have unknown effect on scope" llvm-svn: 97495
* Start detangling the BlockSemaInfo/Sema mess. No functionality change.Douglas Gregor2010-03-012-22/+37
| | | | llvm-svn: 97494
* Allow a '0' precision in format strings (as the man page says it is okay).Ted Kremenek2010-03-012-10/+21
| | | | | | Fixes <rdar://problem/7700339>. llvm-svn: 97482
* The latest draft uses 'dt' to mangle member expressions, and now so do we.John McCall2010-03-012-10/+4
| | | | llvm-svn: 97479
* When looking for a redeclaration of a static variable, only look for ↵Douglas Gregor2010-03-012-1/+24
| | | | | | redeclarations. Fixes PR6449 llvm-svn: 97478
* When instantiating a function-scoped enum, make sure that it and itsDouglas Gregor2010-03-013-1/+26
| | | | | | | enumeration constants get placed into the local instantiation hash table. Fixes PR6375. llvm-svn: 97471
OpenPOWER on IntegriCloud