- Oct 08, 2009
-
-
Steve Naroff authored
llvm-svn: 83579
-
Douglas Gregor authored
llvm-svn: 83577
-
Devang Patel authored
Record location info before emiting alloca for arguments. This allows arguments to have proper location info. llvm-svn: 83567
-
Fariborz Jahanian authored
llvm-svn: 83562
-
Ted Kremenek authored
llvm-svn: 83560
-
Anders Carlsson authored
If a global initializer has a non-trivial constructor or destructor, we never want to defer generation of it, even if it is declared static. With this change we're finally able to compile and run the (infamous) #include <string> #include <iostream> int main(int argc, char **argv) { std::cout << "Hello, World" << std::endl; } $ clang hello.cpp -lstdc++ -o hello $ ./hello Hello, World llvm-svn: 83559
-
Anders Carlsson authored
llvm-svn: 83557
-
Douglas Gregor authored
Also, eliminate a redundant diagnostic by marking a variable declared with incomplete type as an invalid declaration. llvm-svn: 83553
-
Fariborz Jahanian authored
functions. llvm-svn: 83552
-
Douglas Gregor authored
function and member function templates that are not definitions. Add more tests to ensure that explicit specializations of member function templates prevent instantiation. llvm-svn: 83550
-
Douglas Gregor authored
templates, and keep track of how those member classes were instantiated or specialized. Make sure that we don't try to instantiate an explicitly-specialized member class of a class template, when that explicit specialization was a declaration rather than a definition. llvm-svn: 83547
-
Douglas Gregor authored
track of the kind of specialization or instantiation. Also, check the scope of the specialization and ensure that a specialization declaration without an initializer is not a definition. llvm-svn: 83533
-
Douglas Gregor authored
template instantiation of a member function of a class template. FIXME -= 2; llvm-svn: 83520
-
Douglas Gregor authored
specialization kind is TSK_ImplicitInstantiation. Previously, we would end up implicitly instantiating functions that had explicit specialization declarations or explicit instantiation declarations (with no corresponding definitions). llvm-svn: 83511
-
Douglas Gregor authored
function of a class template was implicitly instantiated, explicitly instantiated (declaration or definition), or explicitly specialized. The same MemberSpecializationInfo structure will be used for static data members and member classes as well. llvm-svn: 83509
-
John McCall authored
Don't create a new declaration for friend classes if a declaration already exists. llvm-svn: 83505
-
Douglas Gregor authored
templates. Previously, these weren't handled as specializations at all. The AST for representing these as specializations is still a work in progress. llvm-svn: 83498
-
Anders Carlsson authored
llvm-svn: 83495
-
John McCall authored
llvm-svn: 83492
-
- Oct 07, 2009
-
-
Fariborz Jahanian authored
where matching conversion types in base classes were still visible. Plus refactoring and cleanup. Added a test case. llvm-svn: 83485
-
Douglas Gregor authored
llvm-svn: 83473
-
Fariborz Jahanian authored
convesion functions, look in base classes to. (Removes a FIXME). llvm-svn: 83472
-
Douglas Gregor authored
its definition may be defined, including in a class. Also, put in an assertion when trying to instantiate a class template partial specialization of a member template, which is not yet implemented. llvm-svn: 83469
-
Fariborz Jahanian authored
per Doug's obsevation. llvm-svn: 83464
-
Ted Kremenek authored
llvm-svn: 83451
-
Anders Carlsson authored
llvm-svn: 83448
-
Mike Stump authored
llvm-svn: 83443
-
Anders Carlsson authored
Add a MangleContext and pass it to all mangle functions. It will be used for keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. llvm-svn: 83442
-
Ted Kremenek authored
Change ExplodedNode to have its NodeGroups all BumpPtrAllocated, avoiding malloc() traffic when adding successors/predecessors to a node. This was done by introducing BumpVector, which is essentially SmallVector with all memory being BumpPtrAllocated (this can certainly be cleaned up or moved into llvm/ADT). This change yields a 1.8% speed increase when running the analyzer (with -analyzer-store=region) on a small benchmark file. llvm-svn: 83439
-
Douglas Gregor authored
declarations and explicit template instantiations, improving diagnostics and making the code usable for function template specializations (as well as class template specializations and partial specializations). llvm-svn: 83436
-
Mike Stump authored
llvm-svn: 83433
-
Fariborz Jahanian authored
Doug, please review. There is a FIXME in the test case with a question which is unrelated to this patch (that is, error is issued before set of builtins are added to the candidate list). llvm-svn: 83429
-
Anders Carlsson authored
llvm-svn: 83428
-
Anders Carlsson authored
Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base class offsets. Fix the code to handle virtual bases as well. llvm-svn: 83426
-
- Oct 06, 2009
-
-
Anders Carlsson authored
llvm-svn: 83420
-
Devang Patel authored
llvm-svn: 83419
-
Douglas Gregor authored
explicit specializations can occur. Also, fix a minor recovery bug where we should allow declarations coming from the parser to be NULL. llvm-svn: 83416
-
Devang Patel authored
This is not yet enabled. llvm-svn: 83399
-
Anders Carlsson authored
Emit the destructor epilogue in a cleanup block so a return from a destructor body still calls the epilogue. llvm-svn: 83397
-
Douglas Gregor authored
for bases, members, overridden virtual methods, etc. The operations isDerivedFrom and lookupInBases are now provided by CXXRecordDecl, rather than by Sema, so that CodeGen and other clients can use them directly. llvm-svn: 83396
-