- Feb 06, 2010
-
-
Ted Kremenek authored
llvm-svn: 95476
-
John McCall authored
taken for non-trivial constructors. llvm-svn: 95457
-
- Feb 05, 2010
-
-
John McCall authored
follows (as conservatively as possible) gcc's current behavior: attributes written on return types that don't apply there are applied to the function instead, etc. Only parse CC attributes as type attributes, not as decl attributes; don't accepet noreturn as a decl attribute on ValueDecls, either (it still needs to apply to other decls, like blocks). Consistently consume CC/noreturn information throughout codegen; enforce this by removing their default values in CodeGenTypes::getFunctionInfo(). llvm-svn: 95436
-
- Feb 03, 2010
-
-
Anders Carlsson authored
Revert the new reference binding code; I came up with a way simpler solution for the reference binding bug that is preventing self-hosting. llvm-svn: 95223
-
- Feb 02, 2010
-
-
Anders Carlsson authored
Set the correct vtable pointers _before_ generating code for any member initializers. Fixes about ~2000 clang/LLVM tests in the clang-on-clang build. llvm-svn: 95116
-
- Jan 31, 2010
-
-
Eli Friedman authored
llvm-svn: 94965
-
Douglas Gregor authored
(necessarily simultaneous) changes: - CXXBaseOrMemberInitializer now contains only a single initializer rather than a set of initialiation arguments + a constructor. The single initializer covers all aspects of initialization, including constructor calls as necessary but also cleanup of temporaries created by the initializer (which we never handled before!). - Rework + simplify code generation for CXXBaseOrMemberInitializers, since we can now just emit the initializer as an initializer. - Switched base and member initialization over to the new initialization code (InitializationSequence), so that it - Improved diagnostics for the new initialization code when initializing bases and members, to match the diagnostics produced by the previous (special-purpose) code. - Simplify the representation of type-checked constructor initializers in templates; instead of keeping the fully-type-checked AST, which is rather hard to undo at template instantiation time, throw away the type-checked AST and store the raw expressions in the AST. This simplifies instantiation, but loses a little but of information in the AST. - When type-checking implicit base or member initializers within a dependent context, don't add the generated initializers into the AST, because they'll look like they were explicit. - Record in CXXConstructExpr when the constructor call is to initialize a base class, so that CodeGen does not have to infer it from context. This ensures that we call the right kind of constructor. There are also a few "opportunity" fixes here that were needed to not regress, for example: - Diagnose default-initialization of a const-qualified class that does not have a user-declared default constructor. We had this diagnostic specifically for bases and members, but missed it for variables. That's fixed now. - When defining the implicit constructors, destructor, and copy-assignment operator, set the CurContext to that constructor when we're defining the body. llvm-svn: 94952
-
Anders Carlsson authored
When performing a derived-to-base cast that we know will not change the offset, we don't need to null check the input pointer. Fixes PR5965. llvm-svn: 94942
-
Anders Carlsson authored
When doing a base-to-derived cast we don't need to null check the derived value if the class offset is 0. llvm-svn: 94939
-
Anders Carlsson authored
llvm-svn: 94938
-
- Jan 29, 2010
-
-
Anders Carlsson authored
llvm-svn: 94800
-
Anders Carlsson authored
Add a new EmitLValueForFieldInitialization that will be used for initializing fields (and reference type fields in particular). llvm-svn: 94799
-
Anders Carlsson authored
Simplify EmitLValueForField - we can get whether the field is part of a union or not from the FieldDecl (through its DeclContext). llvm-svn: 94798
-
- Jan 15, 2010
-
-
Eli Friedman authored
llvm-svn: 93546
-
- Jan 02, 2010
-
-
Anders Carlsson authored
llvm-svn: 92420
-
Anders Carlsson authored
Correctly pass VTT parameters to constructors and destructors. The VTTs aren't yet used in the ctors/dtors, but that will follow. llvm-svn: 92409
-
- Jan 01, 2010
-
-
Anders Carlsson authored
llvm-svn: 92399
-
- Dec 24, 2009
-
-
Anders Carlsson authored
llvm-svn: 92148
-
- Dec 03, 2009
-
-
Anders Carlsson authored
llvm-svn: 90401
-
- Nov 28, 2009
-
-
Eli Friedman authored
llvm-svn: 90026
-
Eli Friedman authored
GetCXXBaseClassOffset to actually pass the test. llvm-svn: 90025
-
- Nov 24, 2009
-
-
Anders Carlsson authored
llvm-svn: 89742
-
- Nov 23, 2009
-
-
Anders Carlsson authored
llvm-svn: 89678
-
- Nov 13, 2009
-
-
Mike Stump authored
but this is necessary to continue work on virtual vtables. We don't want to penalize virtual table building testcases, just because complex virtual conversions don't yet work. llvm-svn: 88676
-
- Nov 10, 2009
-
-
Eli Friedman authored
llvm-svn: 86745
-
Eli Friedman authored
necessary. llvm-svn: 86741
-
- Oct 13, 2009
-
-
Benjamin Kramer authored
llvm-svn: 83964
-
- Oct 07, 2009
-
-
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 03, 2009
-
-
Anders Carlsson authored
llvm-svn: 83263
-
- Sep 29, 2009
-
-
Anders Carlsson authored
llvm-svn: 83041
-
- Sep 22, 2009
-
-
Anders Carlsson authored
llvm-svn: 82579
-
- Sep 12, 2009
-
-
Anders Carlsson authored
llvm-svn: 81611
-
Anders Carlsson authored
llvm-svn: 81607
-