Mike Stump
fd84d6d808
Fix ctor vtable name. WIP.
...
llvm-svn: 86879
2009-11-11 20:32:03 +00:00
Mike Stump
eac4559790
Push ctor vtable construction down further. WIP.
...
llvm-svn: 86878
2009-11-11 20:26:26 +00:00
Devang Patel
5348515193
Do not eagerly set stop point for arguments. This misleads the debugger in identifying beginning of function body. Instead, create new location to attach with llvm.dbg.declare. This location is only used to find the context of the variable by the code generator, and it is not used to emit line number info.
...
llvm-svn: 86862
2009-11-11 19:10:19 +00:00
Fariborz Jahanian
03f62ed9bb
Value initialize non-class array members in ctor's
...
initializer list. Fixes PR5463.
llvm-svn: 86849
2009-11-11 17:55:25 +00:00
Mike Stump
c7b9f5e762
More VTT work. We now track offsets and use the ctor vtable builder
...
interface. WIP.
llvm-svn: 86793
2009-11-11 03:08:24 +00:00
Fariborz Jahanian
e6c8112572
Avoid generating additional destructor(s) for initialized constructed
...
objects.
llvm-svn: 86778
2009-11-11 01:13:34 +00:00
Mike Stump
8b2d2d0707
Stub out most of the VTT building code. WIP.
...
llvm-svn: 86772
2009-11-11 00:35:07 +00:00
Devang Patel
af993bf5cc
Attach location info with llvm.dbg.declare.
...
llvm-svn: 86750
2009-11-10 23:07:24 +00:00
Eli Friedman
d76f438369
Revert r86741; it doesn't handle virtual bases correctly.
...
llvm-svn: 86745
2009-11-10 22:48:10 +00:00
Eli Friedman
0960059c0c
Minor optimization to skip null check in generated code where it isn't
...
necessary.
llvm-svn: 86741
2009-11-10 22:42:26 +00:00
Eli Friedman
3ad2645430
Fix for PR5454: make sure to use the right block as the predecessor in the
...
generated PHI node for the null check of a new operator.
llvm-svn: 86738
2009-11-10 22:39:09 +00:00
Fariborz Jahanian
1254a0978c
This patch implements Code gen. for destruction of
...
global array of objects.
llvm-svn: 86701
2009-11-10 19:24:06 +00:00
Mike Stump
b47222144b
Only generate a VTT for classes that need a VTT.
...
llvm-svn: 86699
2009-11-10 19:13:04 +00:00
Mike Stump
d846d0825b
Add vtable caching to prevent multiple vtables for the same class from
...
being generated.
Add the most derived vtable pointer to the VTT.
llvm-svn: 86671
2009-11-10 07:44:33 +00:00
Mike Stump
9f23a149cb
Be sure to clear out VCall when we clear out VCalls.
...
Start implementing VTTs. WIP.
llvm-svn: 86650
2009-11-10 02:30:51 +00:00
Mike Stump
3b9176985d
Finish off mangling for the VTT.
...
llvm-svn: 86647
2009-11-10 01:58:37 +00:00
Mike Stump
ef15744092
Add mangling for the construction vtable.
...
llvm-svn: 86643
2009-11-10 01:41:59 +00:00
Jeffrey Yasskin
612e38026a
Fix clang's use of DenseMap iterators after r86636 fixed their constness.
...
Patch by Victor Zverovich!
llvm-svn: 86638
2009-11-10 01:17:45 +00:00
Mike Stump
68ec7ee0e8
Enable the use of the new llvm objectsize intrinsic.
...
llvm-svn: 86607
2009-11-09 22:40:09 +00:00
Douglas Gregor
4ef1d400d9
Make sure that Type::getAs<ArrayType>() (or Type::getAs<subclass of
...
ArrayType>()) does not instantiate. Update all callers that used this
unsafe feature to use the appropriate ASTContext::getAs*ArrayType method.
llvm-svn: 86596
2009-11-09 22:08:55 +00:00
Eli Friedman
cc522d9ab3
Rearrange function to avoid recursive use-after-free.
...
llvm-svn: 86516
2009-11-09 05:07:37 +00:00
Eli Friedman
a72bf0fae8
Explicitly note that pre-inc/dec lvalues are not supported yet, so that it
...
doesn't crash. (Such expressions are valid in C++, but not in C.)
llvm-svn: 86513
2009-11-09 04:20:47 +00:00
Daniel Dunbar
11c08c8e5b
Rename areAllFields32Or64BitBasicType to canExpandIndirectArgument to closer match what it is semantically used for.
...
Also, fix a major bug where fields from a C++ struct might be dropped -- the expand action doesn't handle them correctly yet.
llvm-svn: 86502
2009-11-09 01:33:53 +00:00
Eli Friedman
d7686ef31c
Unify the codepaths used to verify base and member initializers for explicitly
...
and implicitly defined constructors. This has a number of benefits:
1. Less code.
2. Explicit and implicit constructors get the same diagnostics.
3. The AST explicitly contains constructor calls from implicit default
constructors. This allows handing some cases that previously weren't handled
correctly in IRGen without any additional code. Specifically, implicit default
constructors containing calls to constructors with default arguments are now
handled correctly.
llvm-svn: 86500
2009-11-09 01:05:47 +00:00
Daniel Dunbar
7e215ea165
Add clarifying parens.
...
llvm-svn: 86457
2009-11-08 09:46:46 +00:00
Anders Carlsson
5bbdc9f857
Handle member expressions where the member declaration is actually a static variable. Fixes PR5392.
...
llvm-svn: 86414
2009-11-07 23:16:50 +00:00
Anders Carlsson
ea4c30b39a
More LValue related code cleanup.
...
llvm-svn: 86413
2009-11-07 23:06:58 +00:00
Anders Carlsson
2ff6395ddc
More cleanup, the code is much easier to follow now.
...
llvm-svn: 86412
2009-11-07 22:53:10 +00:00
Anders Carlsson
6eee97276b
Reduce nesting, no functionality change.
...
llvm-svn: 86411
2009-11-07 22:46:42 +00:00
Anders Carlsson
03f83e58f7
We only need to call SetObjCNonGC for local variables. No functionality change.
...
llvm-svn: 86410
2009-11-07 22:43:34 +00:00
Anders Carlsson
509850ebec
Change EmitPointerToDataMemberLValue to take a FieldDecl. No intended functionality change.
...
llvm-svn: 86407
2009-11-07 22:00:15 +00:00
Chris Lattner
15275e55ce
add missing #include
...
llvm-svn: 86368
2009-11-07 09:22:46 +00:00
Anders Carlsson
c0a3561f0f
Always mangle functions with special names. Fixes PR5420.
...
llvm-svn: 86350
2009-11-07 07:15:03 +00:00
Anders Carlsson
ce21431fc4
When looking up and adding substitutions to the substitution table, make sure to always use the canonical declaration. With tihs change, FileCheck compiles and links but crashes during startup.
...
llvm-svn: 86339
2009-11-07 04:26:04 +00:00
Anders Carlsson
3d888e4548
Revert r86315 and add Type::FixedWidthInt to the FIXME cases.
...
llvm-svn: 86320
2009-11-07 01:19:37 +00:00
Devang Patel
5b39e2382f
Do not assert if debug info for certain type is not generated.
...
llvm-svn: 86315
2009-11-07 00:29:05 +00:00
Devang Patel
eef461c230
Do not emit linkage name for global variables. It confuses gdb, because it picks up AT_MIPS_linkage_name and ignores AT_name.
...
llvm-svn: 86308
2009-11-07 00:10:18 +00:00
Mike Stump
cd6f9ed906
Refine the non-virtual this adjustment. Optimize out virtual this
...
adjustments of zero.
llvm-svn: 86300
2009-11-06 23:27:42 +00:00
Fariborz Jahanian
e8e631c912
Prevent a code gen. crash on empty unions - pr5408.
...
llvm-svn: 86287
2009-11-06 20:47:40 +00:00
Anders Carlsson
443f677302
Simplify the debug info code, handle lvalue references and template specializations.
...
llvm-svn: 86277
2009-11-06 19:19:55 +00:00
Fariborz Jahanian
c2d71b531c
This patch fixes code gen. part of pr5333 (Conversion
...
using elipsis conversion).
llvm-svn: 86276
2009-11-06 18:47:57 +00:00
Anders Carlsson
8a6512961f
Handle QualifiedNameType and SubstTemplateTypeParmType types in CGDebugInfo::CreateTypeNode.
...
llvm-svn: 86274
2009-11-06 18:45:16 +00:00
Anders Carlsson
25ed5c2f42
Don't assert when trying to generate debug info for vector types. This needs to be fixed eventually...
...
llvm-svn: 86268
2009-11-06 18:24:04 +00:00
Chris Lattner
353fc1e447
update comment, pointed out by Gabor
...
llvm-svn: 86263
2009-11-06 18:10:47 +00:00
Chris Lattner
4f24225e8e
indirectbr seems to work! Rip out the old code.
...
llvm-svn: 86256
2009-11-06 17:38:18 +00:00
Anders Carlsson
eb9bc2ba82
Instead of returning a null DIType for unhandled types, assert.
...
llvm-svn: 86254
2009-11-06 17:01:39 +00:00
Anders Carlsson
421a5c9651
If a member variable of reference type is bound to a temporary in its member initializer it needs to be destroyed at the end of the constructor.
...
llvm-svn: 86230
2009-11-06 04:19:02 +00:00
Anders Carlsson
5852b13827
If a member initializer create temporaries we need to destroy them. Fixes PR5077.
...
llvm-svn: 86225
2009-11-06 04:11:09 +00:00
Anders Carlsson
a7cb98b202
More cleanup.
...
llvm-svn: 86224
2009-11-06 03:23:06 +00:00
Anders Carlsson
438cf92533
Cleanup ctor/dtor emission.
...
llvm-svn: 86222
2009-11-06 02:55:43 +00:00