Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | It's perfectly fine to see UserDefinedConversion casts when emitting scalar ↵ | Anders Carlsson | 2009-12-18 | 1 | -1/+1 | |
| | | | | | | expressions. llvm-svn: 91686 | |||||
* | Address some of Anders comments | Douglas Gregor | 2009-12-18 | 1 | -4/+8 | |
| | | | | llvm-svn: 91670 | |||||
* | Switch the initialization required by return statements over to the | Douglas Gregor | 2009-12-18 | 1 | -3/+6 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | new InitializationSequence. This fixes some bugs (e.g., PR5808), changed some diagnostics, and caused more churn than expected. What's new: - InitializationSequence now has a "C conversion sequence" category and step kind, which falls back to - Changed the diagnostics for returns to always have the result type of the function first and the type of the expression second. CheckSingleAssignmentConstraints to peform checking in C. - Improved ASTs for initialization of return values. The ASTs now capture all of the temporaries we need to create, but intentionally do not bind the tempoary that is actually returned, so that it won't get destroyed twice. - Make sure to perform an (elidable!) copy of the class object that is returned from a class. - Fix copy elision in CodeGen to properly see through the subexpressions that occur with elidable copies. - Give "new" its own entity kind; as with return values and thrown objects, we don't bind the expression so we don't call a destructor for it. Note that, with this patch, I've broken returning move-only types in C++0x. We'll fix it later, when we tackle NRVO. llvm-svn: 91669 | |||||
* | Add -dwarf-debug-flags, which provides a way to embed the cc1 level options used | Daniel Dunbar | 2009-12-18 | 1 | -7/+3 | |
| | | | | | | | | to compile a translation unit into the debug info for that file. - Used by parts of Darwin build process to check compiler flags, etc. - <rdar://problem/7256886> clang does not emit AT_APPLE_flags llvm-svn: 91661 | |||||
* | Handle case when DestPtr is 0. | Mike Stump | 2009-12-18 | 1 | -3/+22 | |
| | | | | llvm-svn: 91658 | |||||
* | Rename GetAddrOfRTTI to GetAddrOfRTTIDescriptor. Remove the overload that ↵ | Anders Carlsson | 2009-12-17 | 5 | -81/+69 | |
| | | | | | | takes a CXXRecordDecl since we were just creating a QualType from it anyway. llvm-svn: 91590 | |||||
* | Ensure we run cleanups for CXXTemporaries on the exceptional edge. WIP. | Mike Stump | 2009-12-17 | 2 | -1/+48 | |
| | | | | llvm-svn: 91588 | |||||
* | Simplify RTTIBuilder::finish. | Anders Carlsson | 2009-12-17 | 1 | -11/+9 | |
| | | | | llvm-svn: 91585 | |||||
* | Move the Info vector into the RTTIBuilder struct. No functionality change. | Anders Carlsson | 2009-12-17 | 1 | -18/+19 | |
| | | | | llvm-svn: 91583 | |||||
* | Fix for PR5801: codegen memcpy, memmove, memset directly to LLVM intrinsics. | Eli Friedman | 2009-12-17 | 1 | -0/+3 | |
| | | | | llvm-svn: 91573 | |||||
* | When value-initializing a class with no user-defined constructors but | Douglas Gregor | 2009-12-16 | 2 | -1/+7 | |
| | | | | | | | with a non-trivial default constructor, zero-initialize the storage and then call the default constructor. Fixes PR5800. llvm-svn: 91548 | |||||
* | Baby steps towards fixing PR5589. If a class needs a vtable pointer, add one. | Anders Carlsson | 2009-12-16 | 2 | -0/+21 | |
| | | | | llvm-svn: 91545 | |||||
* | Use GetAddrOfRTTI everywhere and remove GenerateRTTI and GenerateRTTIRef. ↵ | Anders Carlsson | 2009-12-16 | 4 | -38/+8 | |
| | | | | | | With this change, we can now compile and link TableGen. llvm-svn: 91520 | |||||
* | Handle ImplicitValueInitExpr in AggExprEmitter. | Anders Carlsson | 2009-12-16 | 1 | -2/+8 | |
| | | | | llvm-svn: 91519 | |||||
* | Mangle CXXOperatorCallExprs, fixes PR5796. | Anders Carlsson | 2009-12-16 | 1 | -0/+10 | |
| | | | | llvm-svn: 91507 | |||||
* | Add an addition check for undefined behavior for when we hit a | Mike Stump | 2009-12-16 | 1 | -0/+2 | |
| | | | | | | __builtin_unreachable. WIP. llvm-svn: 91499 | |||||
* | Implement additional undefined checks for additional loads and stores. WIP. | Mike Stump | 2009-12-16 | 3 | -4/+49 | |
| | | | | llvm-svn: 91498 | |||||
* | Fixes a code gen bug related to accessing a now | Fariborz Jahanian | 2009-12-15 | 1 | -0/+1 | |
| | | | | | | | | | non-existing 'isa' field of a non-existing struct type all related to legacy type definition for 'id' which we have dropped in clang in favor of a built-in type. (fixes radar 7470820). llvm-svn: 91455 | |||||
* | ShouldDestroyTemporaries? I don't think so. | Anders Carlsson | 2009-12-15 | 2 | -15/+3 | |
| | | | | llvm-svn: 91450 | |||||
* | update to match LLVM API change: | Chris Lattner | 2009-12-15 | 1 | -8/+7 | |
| | | | | | | | | | Remove isPod() from DenseMapInfo, splitting it out to its own isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. llvm-svn: 91422 | |||||
* | Fix a small bug in ComputeMethodVtableIndices. | Eli Friedman | 2009-12-15 | 1 | -2/+10 | |
| | | | | llvm-svn: 91411 | |||||
* | Don't force the emission of destructor definitions. | Eli Friedman | 2009-12-15 | 1 | -3/+3 | |
| | | | | llvm-svn: 91394 | |||||
* | Fix spacing. | Mike Stump | 2009-12-15 | 1 | -1/+1 | |
| | | | | llvm-svn: 91386 | |||||
* | Ensure we preserve line information for each trap for | Mike Stump | 2009-12-15 | 1 | -1/+9 | |
| | | | | | | -fcatch-undefined-behavior if we aren't optimizing. WIP. llvm-svn: 91382 | |||||
* | Switch codegen for -fcatch-undefined-bahavior over to __builtin_trap | Mike Stump | 2009-12-15 | 4 | -26/+20 | |
| | | | | | | instead of abort to improve codesize and codegen. llvm-svn: 91374 | |||||
* | We have to allow one to form an address for one past the end. WIP. | Mike Stump | 2009-12-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 91347 | |||||
* | Add support for detecting undefined shift behavior. WIP. | Mike Stump | 2009-12-14 | 3 | -7/+27 | |
| | | | | llvm-svn: 91341 | |||||
* | Patch to fix 32-bit @try failure with internal assertion when compiling | Fariborz Jahanian | 2009-12-14 | 1 | -2/+5 | |
| | | | | | | an Objective-C rethrow nested inside another try/catch block. (fixes radar 7466728). llvm-svn: 91335 | |||||
* | Simplifiy. | Mike Stump | 2009-12-14 | 1 | -16/+3 | |
| | | | | llvm-svn: 91324 | |||||
* | Revert mmx palignr to use an intrinsic, since mmx shuffle patterns are missing. | Nate Begeman | 2009-12-14 | 1 | -1/+4 | |
| | | | | llvm-svn: 91269 | |||||
* | Support x86's PALIGNR instruction without the use of a palignr intrinsic. | Nate Begeman | 2009-12-14 | 1 | -4/+32 | |
| | | | | llvm-svn: 91264 | |||||
* | Mangle unary, binary and ternary expressions correctly. | Anders Carlsson | 2009-12-14 | 1 | -18/+58 | |
| | | | | llvm-svn: 91257 | |||||
* | Simplify BuildSimpleType in the RTTBuilder to avoid using an std::vector. | Anders Carlsson | 2009-12-13 | 1 | -11/+6 | |
| | | | | llvm-svn: 91255 | |||||
* | Don't use a cookie if the global placement new function is used. | Anders Carlsson | 2009-12-13 | 1 | -1/+13 | |
| | | | | llvm-svn: 91251 | |||||
* | Fix regression in my last commit - if a struct has a trivial destructor but ↵ | Anders Carlsson | 2009-12-13 | 1 | -9/+17 | |
| | | | | | | no usual deallocation function we don't need a cookie. llvm-svn: 91249 | |||||
* | More array cookie improvements. | Anders Carlsson | 2009-12-13 | 2 | -69/+105 | |
| | | | | llvm-svn: 91247 | |||||
* | If the usual array deallocation function of a class takes two arguments, we ↵ | Anders Carlsson | 2009-12-13 | 1 | -27/+46 | |
| | | | | | | need to pass the number of bytes allocated to the deallocation function, just not the number of bytes in a single element. llvm-svn: 91246 | |||||
* | Change the RTTIBuilder's finish member function to take a pointer to the ↵ | Anders Carlsson | 2009-12-13 | 1 | -7/+5 | |
| | | | | | | constants array + the length of the array. llvm-svn: 91241 | |||||
* | Silence some release build warnings. | Chandler Carruth | 2009-12-13 | 1 | -0/+1 | |
| | | | | llvm-svn: 91234 | |||||
* | patch to add a property from a protocol to a class that adopts the protocol. | Fariborz Jahanian | 2009-12-12 | 1 | -0/+34 | |
| | | | | | | (fixes radar 7466494). llvm-svn: 91227 | |||||
* | Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave | Jeffrey Yasskin | 2009-12-12 | 3 | -5/+5 | |
| | | | | | | no extra safety anyway. llvm-svn: 91207 | |||||
* | Implement runtime checks for undefined behavior. WIP. | Mike Stump | 2009-12-12 | 3 | -1/+69 | |
| | | | | | | | | | | | | | This implements a new flag -fcatch-undefined-behavior. The flag turns on additional runtime checks for: T a[I]; a[i] abort when i < 0 or i >= I. Future stuff includes shifts by >= bitwidth amounts. llvm-svn: 91198 | |||||
* | Patch to allow C-style cast from 'void *' to block pointer type. | Fariborz Jahanian | 2009-12-11 | 1 | -0/+1 | |
| | | | | | | (fixes radar 7465023). llvm-svn: 91171 | |||||
* | Fix for PR5714: make sure globals that will be modified aren't marked const. | Eli Friedman | 2009-12-11 | 1 | -5/+13 | |
| | | | | llvm-svn: 91156 | |||||
* | Fix linkage of type info and vtable for classes without linkage. | Eli Friedman | 2009-12-11 | 2 | -3/+3 | |
| | | | | llvm-svn: 91152 | |||||
* | Make sure mangling doesn't crash in another case. Add some more tests. | Eli Friedman | 2009-12-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 91149 | |||||
* | Fix for PR5706: let mangleName deal with mangling names without identifiers | Eli Friedman | 2009-12-11 | 1 | -4/+1 | |
| | | | | | | correctly. llvm-svn: 91136 | |||||
* | Move info vectors and add assertions in preparation of moving the vector ↵ | Anders Carlsson | 2009-12-11 | 1 | -7/+11 | |
| | | | | | | directly into RTTIBuilder. llvm-svn: 91129 | |||||
* | Use GetAddrOfRTTI when getting the RTTI pointer for a base class. | Anders Carlsson | 2009-12-11 | 1 | -4/+1 | |
| | | | | llvm-svn: 91127 | |||||
* | Random string-related cleanups. | Benjamin Kramer | 2009-12-11 | 2 | -6/+4 | |
| | | | | llvm-svn: 91119 |