summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* When -fdump-vtable-layouts is specified, construction vtable initializers ↵Anders Carlsson2010-03-252-18/+145
| | | | | | will be generated using the new vtable layout code. (The code is still not completely in place but this is a huge step forward). llvm-svn: 99508
* Properly instantiate friend class template declarations and link them intoJohn McCall2010-03-252-26/+101
| | | | | | | the redeclaration chain. Recommitted from r99477 with a fix: we need to merge in default template arguments from previous declarations. llvm-svn: 99496
* Revert 99477 since it appears to be breaking the clang-x86_64-darwin10-fntBob Wilson2010-03-252-91/+26
| | | | | | | | | | | buildbot. The tramp3d test fails. --- Reverse-merging r99477 into '.': U test/SemaTemplate/friend-template.cpp U test/CXX/temp/temp.decls/temp.friend/p1.cpp U lib/Sema/SemaTemplateInstantiateDecl.cpp U lib/Sema/SemaAccess.cpp llvm-svn: 99481
* Fix two bugs in format-string checking:Ted Kremenek2010-03-251-19/+17
| | | | | | | | | (1) Do not assume the data arguments start after the format string (2) Do not use the fact that a function is variadic to treat it like a va_list printf function Fixes PR 6697. llvm-svn: 99480
* Fix '+=' accumulation error when parsing numeric amounts in a format string.Ted Kremenek2010-03-251-1/+1
| | | | llvm-svn: 99479
* Properly instantiate and link in friend-class-template declarations.John McCall2010-03-252-26/+91
| | | | llvm-svn: 99477
* Add methods to remove a GDM entry.Zhongxing Xu2010-03-252-1/+13
| | | | | | Instead of setting the ReturnExpr GDM to NULL, remove it. llvm-svn: 99470
* More address point map shuffling.Anders Carlsson2010-03-253-10/+36
| | | | llvm-svn: 99462
* Shuffle some code around; this will make it easier to use the new layout ↵Anders Carlsson2010-03-253-57/+57
| | | | | | code for address points. llvm-svn: 99461
* Kill off two more uses of Sema::CheckReferenceInit in favor of the newDouglas Gregor2010-03-253-24/+23
| | | | | | | | initialization code. Exposed a bug where we were not marking an implicit conversion as an lvalue when we were forming a call to a conversion function whose return type is a reference. llvm-svn: 99459
* Switch static_cast from the old reference-initialization code (viaDouglas Gregor2010-03-241-20/+17
| | | | | | | | CheckReferenceInit) over to the new initialization code (InitializationSequence), which is better-tested and doesn't require us to compute the entire conversion sequence twice. llvm-svn: 99452
* When returning from a function that has a reference return type, useDouglas Gregor2010-03-241-1/+2
| | | | | | | | EmitReferenceBindingToExpr() rather than assuming we have an lvalue. This is just the lowest hanging fruit for PR6024, which still requires a bit of work. llvm-svn: 99447
* Use llvm::SmallString instead of std::string.Ted Kremenek2010-03-241-20/+15
| | | | llvm-svn: 99442
* Improve static analyzer diagnostic concerning the use of 'mktemp'Ted Kremenek2010-03-241-3/+2
| | | | llvm-svn: 99441
* When pulling apart an initializer that involves a CXXConstructExpr, doDouglas Gregor2010-03-241-11/+13
| | | | | | | not pick apart a CXXTemporaryObjectExpr because such an object construction was explicitly written in the source code. Fixes PR6657. llvm-svn: 99427
* Allow conversion of qualified Class type to unqualifiedFariborz Jahanian2010-03-241-2/+4
| | | | | | Class type to match gcc's. Fixes radar 7789113. llvm-svn: 99425
* Implement support for -nostdc++. Fixes PR6446.Douglas Gregor2010-03-243-4/+12
| | | | llvm-svn: 99417
* Improve diagnostics when ivar added to classFariborz Jahanian2010-03-241-1/+1
| | | | | | extension (radar 6812436). llvm-svn: 99408
* Silently drop dependent friend function template specializations,Douglas Gregor2010-03-241-4/+11
| | | | | | | | since we have absolutely no way to match them when they are declared nor do we have a way to represent these parsed-but-not-checked friend declarations. llvm-svn: 99407
* Change two class forward declarations to struct forward declarations, ↵Douglas Gregor2010-03-241-2/+2
| | | | | | silencing a Clang warning llvm-svn: 99405
* Code gen for multi-dimensional dynamic allocations.Fariborz Jahanian2010-03-241-6/+37
| | | | | | Fixes PR6641. llvm-svn: 99404
* More vtable improvements. We now compute and keep track of all vtable ↵Anders Carlsson2010-03-242-28/+97
| | | | | | related information which avoids computing the same vtable layout over and over. llvm-svn: 99403
* Walk out of enums when determining effective context.John McCall2010-03-241-1/+11
| | | | llvm-svn: 99391
* Correct that last fixit: if the user wroteJohn McCall2010-03-241-2/+17
| | | | | | | | | template <> friend void foo(int); we need to change it to friend void foo<>(int); or else the user won't get the template specialization they obviously want. llvm-svn: 99390
* Support friend function specializations.John McCall2010-03-243-12/+31
| | | | llvm-svn: 99389
* When a declaration of a function is missing an exception specificationDouglas Gregor2010-03-242-14/+116
| | | | | | | | | | | | | | | | | | | | | that was present in a prior declaration, emit a warning rather than a hard error (which we did before, and still do with mismatched exception specifications). Moreover, provide a fix-it hint with the throw() clause that should be added, e.g., t.C:10:7: warning: 'operator new' is missing exception specification 'throw(std::bad_alloc)' void *operator new(unsigned long sz) ^ throw(std::bad_alloc) As part of this, disable the warning when we're missing an exception specification on operator new, operator new[], operator delete, or operator delete[] when exceptions are turned off (-fno-exceptions). Fixes PR5957. llvm-svn: 99388
* Use getNamedGlobal instead of getGlobalVariable. (Fixes self-host).Anders Carlsson2010-03-244-6/+6
| | | | llvm-svn: 99385
* Make the license header in smmintrin.h match the other SSE headers.Anders Carlsson2010-03-241-22/+22
| | | | llvm-svn: 99384
* Implement a framework for the delay of arbitrary diagnostics withinJohn McCall2010-03-245-82/+393
| | | | | | | | | templates. So delay access-control diagnostics when (for example) the target of a friend declaration is a specific specialization of a template. I was surprised to find that this was required for an access-controlled selfhost. llvm-svn: 99383
* When performing name lookup for the allocation or deallocationDouglas Gregor2010-03-241-0/+17
| | | | | | | operators, make sure that the implicitly-declared global new and delete operators are always available. Fixes PR5904. llvm-svn: 99382
* More vtable work; preparations for moving over to the new vtable layout code ↵Anders Carlsson2010-03-245-20/+48
| | | | | | (finally). llvm-svn: 99381
* Each non-local class instantiation is its own local instantiationDouglas Gregor2010-03-241-0/+6
| | | | | | scope. Fixes PR6619. llvm-svn: 99377
* Remove old thunks code.Anders Carlsson2010-03-245-339/+0
| | | | llvm-svn: 99374
* Make sure to properly track the anonymous namespace that lives insideDouglas Gregor2010-03-241-1/+2
| | | | | | | | | | each namespace, even when the outer namespace has multiple definitions. As part of this, collapsed two pointers worth of storage (original namespace and inner anonymous namespace) into a single pointer with a distinguishing bit, since the two are mutually exclusive, saving a pointer per NamespaceDecl. Fixes PR6620. llvm-svn: 99368
* Flip the switch and use the new vtable layout code for thunks by default. ↵Anders Carlsson2010-03-241-7/+0
| | | | | | Add a thunks.cpp test. llvm-svn: 99367
* Add CodeGenFunction::GenerateThunk and implement it.Anders Carlsson2010-03-242-1/+179
| | | | llvm-svn: 99365
* Minor cleanup.Anders Carlsson2010-03-241-10/+8
| | | | llvm-svn: 99364
* Implement computation of the final overriders for each virtualDouglas Gregor2010-03-232-94/+324
| | | | | | | | | | | | | | | | | | | | function within a class hierarchy (C++ [class.virtual]p2). We use the final-overrider computation to determine when a particular class is ill-formed because it has multiple final overriders for a given virtual function (e.g., because two virtual functions override the same virtual function in the same virtual base class). Fixes PR5973. We also use the final-overrider computation to determine which virtual member functions are pure when determining whether a class is abstract or diagnosing the improper use of an abstract class. The prior approach to determining whether there were any pure virtual functions in a class didn't cope with virtual base class subobjects properly, and could not easily be fixed to deal with the oddities of subobject hiding. Fixes PR6631. llvm-svn: 99351
* revert 99311. Looks like it broke darwin bootstrap.Rafael Espindola2010-03-233-23/+10
| | | | llvm-svn: 99317
* Improve diagnostic for @property/ivar type mismatch by including the types ↵Ted Kremenek2010-03-231-2/+6
| | | | | | | | of the ivar and @property respectively. llvm-svn: 99312
* Avoid producing implicit methods when we have a explicit template instantiationRafael Espindola2010-03-233-10/+23
| | | | | | declaration. llvm-svn: 99311
* Code gen for compound assignment of complexFariborz Jahanian2010-03-231-2/+7
| | | | | | | types using property syntax to access setter/getters. (also radar 7351147). llvm-svn: 99307
* More work on thunks - don't assert if there's a variable with the same name ↵Anders Carlsson2010-03-232-2/+34
| | | | | | as the thunk already. llvm-svn: 99303
* Patch to implement code gen. use of compound assignent onFariborz Jahanian2010-03-231-6/+19
| | | | | | properties of complex type. Radar 7351147. llvm-svn: 99299
* More thunks scaffolding.Anders Carlsson2010-03-234-5/+86
| | | | llvm-svn: 99294
* More work on thunks.Anders Carlsson2010-03-232-1/+68
| | | | llvm-svn: 99287
* When recovering from a qualified typedef name, don't clear out theDouglas Gregor2010-03-231-1/+2
| | | | | | | DeclContext because we don't want a NULL DeclContext. Instead, use the current context. llvm-svn: 99281
* Move ThunkInfo as well.Anders Carlsson2010-03-232-29/+28
| | | | llvm-svn: 99280
* Move ReturnAdjustment and ThisAdjustment out into CGVtable.hAnders Carlsson2010-03-232-64/+63
| | | | llvm-svn: 99279
* Ignore a more comprehensive set of gcc-special format attributes.Duncan Sands2010-03-231-1/+2
| | | | llvm-svn: 99277
OpenPOWER on IntegriCloud