Anders Carlsson
17ed0496c5
Fix the test I broke, and also fix a crash when declaring a virtual destructor. Add debug info support for pure virtual member functions.
...
llvm-svn: 94519
2010-01-26 05:19:50 +00:00
Anders Carlsson
b85f0ab976
Factor creating the DISubprogram for a member function out into a separate function.
...
llvm-svn: 94513
2010-01-26 04:49:33 +00:00
Anders Carlsson
c1821155bf
Simplify CGDebugInfo::CollectCXXMemberFunctions a little. More to come.
...
llvm-svn: 94511
2010-01-26 04:40:11 +00:00
Anders Carlsson
20bbbd489b
Make sure to always mark a global variable as not being constant if it has a C++ initializer.
...
llvm-svn: 94504
2010-01-26 04:02:23 +00:00
Mike Stump
77537b136e
Be sure to track the non-virtual part of the vcall offset in complex
...
multiple inheritance cases. WIP.
This fixes 20% of the outstanding problems found by the randomized
tester.
llvm-svn: 94499
2010-01-26 03:42:22 +00:00
Mike Stump
90181eb294
Fixup a missing vcall entry. WIP.
...
llvm-svn: 94478
2010-01-26 00:05:04 +00:00
Devang Patel
c54353d935
First cut at emitting inheritance info.
...
llvm-svn: 94473
2010-01-25 23:32:18 +00:00
Devang Patel
7af03fb4f0
Emit debug info for virtual functions.
...
llvm-svn: 94467
2010-01-25 23:17:15 +00:00
Fariborz Jahanian
5cda92820f
global variable that binds reference to a non-lvalue reproted
...
as NYI now.
llvm-svn: 94453
2010-01-25 21:40:39 +00:00
Fariborz Jahanian
210031b79c
Fix a code gen. bug involving compiling global references.
...
(fixes radar 7574896).
llvm-svn: 94434
2010-01-25 18:30:26 +00:00
Chris Lattner
83b0dd16c3
fix rdar://7556129 a crash in blocks debug info codegen.
...
llvm-svn: 94402
2010-01-25 03:34:56 +00:00
Chris Lattner
bf78478d35
simplify code.
...
llvm-svn: 94401
2010-01-25 03:29:35 +00:00
Chris Lattner
0bcc858a2b
-fno-rtti is now the default.
...
llvm-svn: 94379
2010-01-24 20:43:31 +00:00
Alexis Hunt
aecc45cb3c
Mangle static variables with an extra name to distinguish them from non-static variables in the same TU.
...
Fixes PR5966 for real this time; also reverts r92911, which had a incorrect fix.
llvm-svn: 94352
2010-01-24 03:04:27 +00:00
Anders Carlsson
60ddba67a8
Fix a nasty bug where temporaries weren't marked as being conditional in some cases.
...
llvm-svn: 94341
2010-01-24 00:20:05 +00:00
Eli Friedman
d6ef69a7db
Add bzero builtin; this should help codegen quality for code using this
...
function.
llvm-svn: 94320
2010-01-23 19:00:10 +00:00
Benjamin Kramer
8f8f405c71
No need to terminate this buffer.
...
llvm-svn: 94313
2010-01-23 18:16:07 +00:00
David Chisnall
481e3a87fe
Created __builtin___NSStringMakeConstantString() builtin, which generates constant Objective-C strings.
...
llvm-svn: 94274
2010-01-23 02:40:42 +00:00
Mike Stump
1f49d65235
Finish off fixing up debug information.
...
llvm-svn: 94193
2010-01-22 18:48:47 +00:00
Douglas Gregor
0599df16a6
Eliminate some Clang warnings
...
llvm-svn: 94177
2010-01-22 15:41:14 +00:00
Benjamin Kramer
d6b28fc6ad
Simplify code.
...
llvm-svn: 94175
2010-01-22 13:59:13 +00:00
Mike Stump
9eb76d47f2
Ensure we output all non-virtual base vtables. Fixes PR5890.
...
llvm-svn: 94163
2010-01-22 06:45:05 +00:00
Mike Stump
d2808449e4
Update debugging code.
...
llvm-svn: 94145
2010-01-22 02:51:26 +00:00
Anders Carlsson
f768db7775
Move the VTT related code into its own file, CGVTT.cpp
...
llvm-svn: 94079
2010-01-21 16:50:45 +00:00
Devang Patel
3f4a77e082
A Decl->getName() is not unique. However, the debug info descriptors
...
are uniqued. The debug info descriptor describing record's context is
necessary to keep two Decl's descriptor unique if their name match.
There is more work to do to create descriptors for DeclContext.
As a temp. step use type's name in FwdDecl.
llvm-svn: 94050
2010-01-20 23:56:40 +00:00
Devang Patel
5e1a83c196
Emit human readable names for operators.
...
llvm-svn: 93837
2010-01-19 02:02:11 +00:00
Devang Patel
7a12ad0dc1
First cut at emitting debugging information for C++ member functions.
...
There is lot more work to do in this area.
llvm-svn: 93836
2010-01-19 01:54:44 +00:00
Devang Patel
757daca99c
Use llvm::Function name as the linkage name, but strip off leading '01' from display name.
...
llvm-svn: 93822
2010-01-19 00:25:12 +00:00
Devang Patel
889ce76f41
Refactor.
...
llvm-svn: 93814
2010-01-19 00:00:59 +00:00
Devang Patel
ddf6a57f3e
llvm::Function name is the linkage name. If it has a '01' as a prefix then probably there is a reason.
...
llvm-svn: 93808
2010-01-18 23:27:28 +00:00
Anders Carlsson
07894e8a0e
More VTT builder fixes. With these fixes we now correctly handle the very complex VTT example from the Itanium ABI spec.
...
llvm-svn: 93725
2010-01-18 17:13:59 +00:00
Anders Carlsson
3d1a09552c
Move some common code into BuildVTT.
...
llvm-svn: 93710
2010-01-18 04:45:46 +00:00
Anders Carlsson
1af3df854f
Fix a bunch of VTT layout bugs, add simple tests for VTT layout.
...
llvm-svn: 93709
2010-01-18 04:25:18 +00:00
Anders Carlsson
827b245fd6
Minor VTT builder cleanup, no functionality change.
...
llvm-svn: 93696
2010-01-17 23:53:20 +00:00
Anders Carlsson
42f1376f35
Get the ctor vtable address points directly from the VTT builder.
...
llvm-svn: 93681
2010-01-17 17:10:44 +00:00
Tanya Lattner
dbfd16014a
Add codgen for BI__builtin_llvm_memory_barrier.
...
llvm-svn: 93611
2010-01-16 01:21:14 +00:00
Eli Friedman
8fdc2cb46a
Fix crash generating debug info for constructor for anonymous struct.
...
llvm-svn: 93601
2010-01-16 00:43:13 +00:00
Eli Friedman
cab014721b
Fix a couple bugs in copy assignment operator synthesis.
...
llvm-svn: 93546
2010-01-15 20:06:11 +00:00
Ken Dyck
02990837ad
Convert the type of the LValue offset variable in APValue to CharUnits, moving
...
the LValue-related methods of APValue out of line to avoid header file leaching.
llvm-svn: 93512
2010-01-15 12:37:54 +00:00
Devang Patel
2d63010a9c
Emit linkage name even if it matches regular name. The code generator uses linkage name to find subprogram entry for the current function.
...
llvm-svn: 93461
2010-01-14 21:46:57 +00:00
Devang Patel
ea84f59f5c
Add comment.
...
llvm-svn: 93434
2010-01-14 18:06:13 +00:00
David Chisnall
035ead209f
Made ObjC method name mangling match GCC (which does it in a stupid and broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling).
...
llvm-svn: 93427
2010-01-14 14:08:19 +00:00
Anders Carlsson
5f9a881e1e
Store the address points for constructor vtables directly in the VTT builder, because that's the only time they're needed.
...
llvm-svn: 93412
2010-01-14 02:29:07 +00:00
Anders Carlsson
2a4adbea96
Add a DenseMapInfo specialization for BaseSubobject.
...
llvm-svn: 93399
2010-01-14 01:39:42 +00:00
Devang Patel
4274a326be
Because CurLoc is the current source location as far as CGDebugInfo is concerned. It is expected that this is set (usually left bracket location of function body compound statement) before EmitfunctionStart() is used.
...
llvm-svn: 93389
2010-01-14 00:48:09 +00:00
Devang Patel
934661ed73
Emit human readable names for c/c++ functions. Avoid emitting linkage name if it matches regular name.
...
llvm-svn: 93383
2010-01-14 00:36:21 +00:00
Anders Carlsson
20871481d2
Add a BaseSubobject class to uniquely identify a base class subobject. Not yet used.
...
llvm-svn: 93345
2010-01-13 20:11:15 +00:00
Chris Lattner
e3e76e2a69
Use the new isInteger() method in a couple places, some random cleanup, and
...
add a fixme.
llvm-svn: 93179
2010-01-11 19:58:10 +00:00
David Chisnall
c8fc573ea0
Fix type mismatch on 64-bit platforms (GNU ObjC).
...
llvm-svn: 93169
2010-01-11 19:02:35 +00:00
Ken Dyck
40775003e6
Roll out ASTContext::getTypeSizeInChars(), replacing instances of
...
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153
2010-01-11 17:06:35 +00:00