ef8225444452a1486bd721f3285301fe84643b00 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8d1f5a5c54514cb66390acaa133730f43e69d97e |
|
20-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195158: ------------------------------------------------------------------------ r195158 | whunt | 2013-11-19 14:11:09 -0800 (Tue, 19 Nov 2013) | 9 lines Microsoft Record Layout: zero sized base after base with vbtbl fix Microsoft adds an extra byte of padding before laying out zero sized non-virtual bases if the non-virtual base before it contains a vbptr. This patch adds the same behavior to clang. Differential Revision: http://llvm-reviews.chandlerc.com/D2106 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@195167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1d40d62f137d3831729131e56562fc490b7f9591 |
|
13-Nov-2013 |
Warren Hunt <whunt@google.com> |
No functional change. Renaming a variable in RecordLayoutBuilder and improving comments to make documentation more accurate. Differential Revision:http://llvm-reviews.chandlerc.com/D2172 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6acb04f755cfc73d05772457d70aeb5adfaf6d8f |
|
08-Nov-2013 |
Timur Iskhodzhanov <timurrrr@google.com> |
Thread the info about vbptr sharing through ASTRecordLayout Reviewed at http://llvm-reviews.chandlerc.com/D2120 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
92563d0c04d9f06e528439bb93073e41ecbdc07b |
|
06-Nov-2013 |
Warren Hunt <whunt@google.com> |
Microsoft adds weird padding before virtual bases if the last field was a bitfield This patch adds the same behavior to clang. Differential Revision: http://llvm-reviews.chandlerc.com/D2103 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
caf759752b086ef30b6c564654b382d17fb0c16f |
|
02-Nov-2013 |
Warren Hunt <whunt@google.com> |
Improves compatibility with cl.exe when laying out array fields Differential Revision: http://llvm-reviews.chandlerc.com/D2090 Clang was "improperly" over-aligning arrays with sizes are not a multiple of their alignment. This behavior was removed in microsoft 32 bit mode. In addition, after examination of ASTContext::getTypeInfoImpl, a redundant code block in MicrosoftRecordLayoutBuilder::getAdjustedFieldInfo was deleted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
68eccccbbfc9d87b754df539f5b1343f4c499b63 |
|
25-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove dead variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1bf080e8f1283aa3c85418a3da3a49457896f0cc |
|
24-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove dead recursive function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
7967c95891c5f65f6312fbbcb999ac257d776914 |
|
24-Oct-2013 |
Warren Hunt <whunt@google.com> |
Implements 64 bit microsoft record layout and adds lit tests to cover it. Also removes all of the microsoft C++ ABI related code from the itanium layout builder. Differential Revision: http://llvm-reviews.chandlerc.com/D2003 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bc6509175e1ce5cc1b48d1b97ac8d23d8b74167c |
|
17-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Rename some functions for consistency. Every other function in Redeclarable.h was using Decl instead of Declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a7dec298303edbf3eb2c7993801c602a1d88e9db |
|
14-Oct-2013 |
Reid Kleckner <reid@kleckner.net> |
PR17576: Fix assertion on polymorphic classes with small alignment We have to reserve at least the width of a pointer for the vfptr. For classes with small alignment, we weren't reserving enough space, and were overlapping the first field with the vfptr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d42217f7570e68d08bde1ff89960e1773b41749a |
|
14-Oct-2013 |
Warren Hunt <whunt@google.com> |
Correctly check for distructors when realizing vtordisps This patch fixes the distructor test when checking for vtordisp requirements in microsoft record layout. A test case is also included. Addresses: http://llvm.org/bugs/show_bug.cgi?id=16406#c7 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
812a32f41efc1cea52ee93220ba1519758807ad6 |
|
11-Oct-2013 |
Reid Kleckner <reid@kleckner.net> |
Only use the MS record layout when using the MS C++ ABI We're not ready to use it everywhere we use a win32 triple yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
70e37c458e9189cf2d8078b02deb8f8a189f826b |
|
11-Oct-2013 |
Reid Kleckner <reid@kleckner.net> |
Fix unused variable warning in MS record layout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b2969b1e50580344891a98f5b241f8351fe371cf |
|
11-Oct-2013 |
Warren Hunt <whunt@google.com> |
Adds Microsoft compatiable C++ record layout code to clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cd03f862d82cac28c9517e2036716f8d49112c8b |
|
30-Aug-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Be lazier when loading KeyFunctions from PCH/modules. We don't need to load these in eagerly if we're not actually processing a translation unit. The added laziness here also avoids us loading in parts of a CXXRecordDecl earlier than an upcoming class template specialization merging patch would like. Ideally, we should mark the vtable as used when we see a definition for the key function, rather than having a separate pass over dynamic classes at the end of the TU. The existing approach is pretty bad for PCH/modules, since it forcibly loads the declarations of all key functions in all imported modules, whether or not those key functions are defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5029bd518b4d5363ceb049c9162c30e5b38ba199 |
|
16-Jul-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix alignment of class derived from empty class. The record layout code didn't properly take into account that an empty class at offset 0 can have an alignment greater than 1. Patch by Andrea Di Biagio. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c250192494e0fa63be50269d2c1eb7786f8ab7a0 |
|
13-Jul-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Changes so that a few tests do not fail when running under guarded malloc. Guarded malloc emits some messages at the beginning in stderr when enabled. These messages caused a few tests to fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
2a42bc82c513756d200e49c9ea5a68e5d7bca43e |
|
27-Jun-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cd06f26835033e879a9278941f4f6e6a4086976d |
|
26-Jun-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Rewrite record layout for ms_struct structs. The old implementation of ms_struct in RecordLayoutBuilder was a complete mess: it depended on complicated conditionals which didn't really reflect the underlying logic, and placed a burden on users of the resulting RecordLayout. This commit rips out almost all of the old code, and replaces it with simple checks in RecordLayoutBuilder::LayoutBitField. This commit also fixes <rdar://problem/14252115>, a bug where class inheritance would cause us to lay out bitfields incorrectly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
147fab970c9877273e6185f0e276f376887c967f |
|
26-Jun-2013 |
Matt Beaumont-Gay <matthewbg@google.com> |
Don't try to get the layout of an invalid decl in getDeclAlign. When the decl that we're getting alignment for is a FieldDecl, and the field's parent record is invalid, skip the actual field alignment calculation (and return 1-byte alignment in the general case). Also, assert in in getASTRecordLayout that the decl is valid. This was inspired by PR16292; see also r184581 and r184751. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5a8b0491df5491566ddbf63a99e714a2bd4bb046 |
|
29-May-2013 |
Reid Kleckner <reid@kleckner.net> |
[ms-cxxabi] There are no key functions in the Microsoft C++ ABI MSVC's class data is always comdat, so clang's should always be linkonce_odr in LLVM IR. Reviewers: pcc Differential Revision: http://llvm-reviews.chandlerc.com/D838 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d6a08d16a0c8d98e2491f3ee012dbb46b64038f2 |
|
14-May-2013 |
Reid Kleckner <reid@kleckner.net> |
[ms-cxxabi] Mangle in an implicit 'E' for certain types on win64 Most of the complexity of this patch is figuring out which types get the qualifier and which don't. If we implement __ptr32/64, then we should check the qualifier instead of assuming all pointers are 64-bit. This fixes PR13792. Patch by Warren Hunt! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
181e3ecc0907ae0103586a9f4db52241995a8267 |
|
13-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Cleanup handling of UniqueExternalLinkage. This patch renames getLinkage to getLinkageInternal. Only code that needs to handle UniqueExternalLinkage specially should call this. Linkage, as defined in the c++ standard, is provided by getFormalLinkage. It maps UniqueExternalLinkage to ExternalLinkage. Most places in the compiler actually want isExternallyVisible, which handles UniqueExternalLinkage as internal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a438b2d277fae00a4fa467ffcf382246e0a201e9 |
|
29-Jan-2013 |
John McCall <rjmccall@apple.com> |
Abstract the behavior of when to use base-class tail padding. For fun, I added a comedy "actually obey the C++11 POD rules" option which nobody is allowed to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d5617eeafc93209a26b9f88276c88cf997c3a0a7 |
|
25-Jan-2013 |
John McCall <rjmccall@apple.com> |
The standard ARM C++ ABI dictates that inline functions are never key functions. We did not implement that rule for the iOS ABI, which was driven by what was implemented in gcc-4.2. However, implement it now for other ARM-based platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b8b2c9da87e7d70a1679db026f40548b3192b705 |
|
25-Jan-2013 |
John McCall <rjmccall@apple.com> |
First pass at abstracting out a class for the target C++ ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0ee69cc6d4fc547671303afbd715cb990e5c3af6 |
|
08-Dec-2012 |
Eli Bendersky <eliben@google.com> |
Currently when AST record layouts are dumped with -fdump-record-layouts, the following: sizeof=132, dsize=132, align=4 nvsize=132, nvalign=4 Is not indented, so when classes are nested there is no way to know to which class it belongs. Fix this problem by indenting the size summary properly for each class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
55fc873017f10f6f566b182b70f6fc22aefa3464 |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
f596760aab256d81a6823e731c988b35ef8197ad |
|
27-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
When an externally-supplied record layout has a size that clearly doesn't include padding up to the alignment of the record, take this as a cue that the alignment of the record should (conservatively) be set to 1. This is similar to other the other cues we use to determine that the record has a lower alignment, e.g., that the externally-supplied layout places fields at lower offsets than we would. Fixes <rdar://problem/12582052>; test case in LLDB. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5f608aedb6c5d32d2f7c51f9354a75b21f1eeaee |
|
13-Oct-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Make -mms-bitfields behave consistently. Patch by Jeremiah Zanin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
f56faa01936b9cf909623d7f06e3c2569ca4a78e |
|
15-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
31ba6135375433b617a8587ea6cc836a014ebd86 |
|
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Dont cast away const needlessly. Found by gcc48 -Wcast-qual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
7aaa167abba495ecb0e99eb4f2fa155cf28c798d |
|
01-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove windows line endings. While there fix a dead assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6666ed4ed2e2bc13da5ac5d0a4947019137d45be |
|
31-Aug-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Improved MSVC __interface support by adding first class support for it, instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c23aca44753ff65303fb19d4d6d2114018629f07 |
|
03-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Flesh out test for defaulted key functions a bit more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
f3fce80bb2eafaa556779c84f38104003bddb0ea |
|
03-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix failed to generate vtables in certain cases. By C++ standard, the vtable should be generated if the first non-inline virtual function is defined in the TU. Current version of clang doesn't generate vtable if the first virtual function is defaulted, because the key function is regarded as the defaulted function. Patch by Li Kan! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d4f5198ae07d9a4958d8191bac694ded12173ad9 |
|
04-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove get(V)BaseClassOffsetInBits, the CharUnit functions should be used instead. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
581deb3da481053c4993c7600f97acf7768caac5 |
|
06-Jun-2012 |
David Blaikie <dblaikie@gmail.com> |
Revert Decl's iterators back to pointer value_type rather than reference value_type In addition, I've made the pointer and reference typedef 'void' rather than T* just so they can't get misused. I would've omitted them entirely but std::distance likes them to be there even if it doesn't use them. This rolls back r155808 and r155869. Review by Doug Gregor incorporating feedback from Chandler Carruth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
441c6239c6df8c759bacf6510efbfd434b647066 |
|
01-May-2012 |
John McCall <rjmccall@apple.com> |
Add support for laying out vtordisps according to our current working knowledge of the Microsoft ABI. Based on a patch by Dmitry Sokolov. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
262bc18e32500558af7cb0afa205b34bd37bafed |
|
30-Apr-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove the ref/value inconsistency in filter_decl_iterator. filter_decl_iterator had a weird mismatch where both op* and op-> returned T* making it difficult to generalize this filtering behavior into a reusable library of any kind. This change errs on the side of value, making op-> return T* and op* return T&. (reviewed by Richard Smith) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cad313bd7b28674e0e409e610c450a2411107443 |
|
15-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
When laying out an Objective-C object, consult the external source to complete the Decl if it hasn't been completed already. This fixes a crash in LLDB. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d |
|
11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fd5a5f547c5012197475ba628947d9755c96cfdc |
|
08-Feb-2012 |
Sean Callanan <scallanan@apple.com> |
If a struct needs to be laid out, and it has not been completed yet, then complete it if possible. This fixes some assertion failures encountered by LLDB. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
394f7b650a03d5d4d8f740d6765f257b1c4e2ec0 |
|
28-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Allow the external AST source to provide a layout without specifying the alignment (because it's not encoded in DWARF). In this case, make an educated guess at the alignment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
453dbcbe30093fbf947a0bec2fbd46e9694eafe9 |
|
26-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Extend the ExternalASTSource interface to allow the AST source to provide the layout of records, rather than letting Clang compute the layout itself. LLDB provides the motivation for this feature: because various layout-altering attributes (packed, aligned, etc.) don't get reliably get placed into DWARF, the record layouts computed by LLDB from the reconstructed records differ from the actual layouts, and badness occurs. This interface lets the DWARF data drive layout, so we don't need the attributes preserved to get the answer write. The testing methodology for this change is fun. I've introduced a variant of -fdump-record-layouts called -fdump-record-layouts-simple that always has the simple C format and provides size/alignment/field offsets. There is also a -cc1 option -foverride-record-layout=<file> to take the output of -fdump-record-layouts-simple and parse it to produce a set of overridden layouts, which is introduced into the AST via a testing-only ExternalASTSource (called LayoutOverrideSource). Each test contains a number of records to lay out, which use various layout-changing attributes, and then dumps the layouts. We then run the test again, using the preprocessor to eliminate the layout-changing attributes entirely (which would give us different layouts for the records), but supplying the previously-computed record layouts. Finally, we diff the layouts produced from the two runs to be sure that they are identical. Note that this code makes the assumption that we don't *have* to provide the offsets of bases or virtual bases to get the layout right, because the alignment attributes don't affect it. I believe this assumption holds, but if it does not, we can extend LayoutOverrideSource to also provide base offset information. Fixes the Clang side of <rdar://problem/10169539>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
2d6a5670465cb3f1d811695a9f23e372508240d2 |
|
14-Jan-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
constexpr irgen: Add irgen support for APValue::Struct, APValue::Union, APValue::Array and APValue::MemberPointer. All APValue values can now be emitted as constants. Add new CGCXXABI entry point for emitting an APValue MemberPointer. The other entrypoints dealing with constant member pointers are no longer necessary and will be removed in a later change. Switch codegen from using EvaluateAsRValue/EvaluateAsLValue to VarDecl::evaluateValue. This performs caching and deals with the nasty cases in C++11 where a non-const object's initializer can refer indirectly to previously-initialized fields within the same object. Building the intermediate APValue object incurs a measurable performance hit on pathological testcases with huge initializer lists, so we continue to build IR directly from the Expr nodes for array and record types outside of C++11. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
83be12c8638a5136b937e602b3a9e25f4bc8e50d |
|
13-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Recommit r148056 with fixes to deal with weirdness with bitfields in unions. Original message: Make sure adding a field to a struct never reduces its size. PR11745. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cd7a21b85ec94f9bddded4ed990dd2e2019011ab |
|
13-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r148056 while I investigate failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a1796826729ba8c73c32dd49fa4945ff3cb12039 |
|
12-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure adding a field to a struct never reduces its size. PR11745. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e7aa27a826f0b353713df6bfa0715818db8cde74 |
|
20-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When performing layout for an Objective-C class, make sure to dig out the definition of that class. Fixes PR11613 / <rdar://problem/10604077>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
7723fec9b45b7258c0eddf4cbfd0d335348f5edc |
|
15-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Keep track of all declarations of an Objective-C class (both forward declarations and definitions) as ObjCInterfaceDecls within the same redeclaration chain. This new representation matches what we do for C/C++ variables/functions/classes/templates/etc., and makes it possible to answer the query "where are all of the declarations of this class?" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
364a59ed8f0b3adb6a9eb9f2d687650ec1d0d8e5 |
|
12-Dec-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a bug in calculation of field offsets of ms_struct fields by just following what comment says. // rdar://10513599 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bff22ac1f8b78e4c19d5c3e00226ecea3b24e60f |
|
02-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix bitfield handling for record layout with #pragma pack. <rdar://problem/10494810> and PR9560. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
901dd668931a70932ad09092959c42693409a3cd |
|
01-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix MSVC class layout for empty classes. Patch by Dmitry Sokolov. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9da235244c2de2bcca654b518c66133c30ebde53 |
|
08-Nov-2011 |
John McCall <rjmccall@apple.com> |
Fix the layout of vb-tables and vf-tables in the MS C++ ABI. Based on work by Dmitry Sokolov! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e4ebbf79c7045343b9dbe49c721c6023be06f9ee |
|
05-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Now that we have a portable 64 bit format string use it to make this simple again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8a5d0aedc16ab1a5beff6bbc1b470f47d2c28b67 |
|
05-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix incorrect format string in debug output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
227e483cb1f77ea6dcd38c2ca9fb490894a5f887 |
|
22-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
More ASTRecordLayout changes for MS ABI; based on patch by r4start. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
66f284632dc2e286e3abbd72bc1a44472f9117cc |
|
18-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
97c0aefe8c0523417ffe8a500a220286e11e7a46 |
|
18-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Rewrite parts of MS ABI C++ layout. Based on work by r4start; I ended up doing this while I was trying to review his patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b8989f27f116ff2400e92a52c067a69846119eb5 |
|
14-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Change operator<< for raw_ostream and NamedDecl to take a reference instead of a pointer. Passing a pointer was a bad idea as it collides with the overload for void*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a6b8b2c09610b8bc4330e948ece8b940c2386406 |
|
10-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation refactoring: - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5e1cdac63c3d9c9b32fa41fa0b2d242a58a20d49 |
|
07-Oct-2011 |
John McCall <rjmccall@apple.com> |
Rename TagDecl::isDefinition -> isCompleteDefinition for better self-documenting code, since the semantics are subtly different from getDefinition(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6595935602f57b4f2115785bb39dabc83e4232dc |
|
07-Oct-2011 |
John McCall <rjmccall@apple.com> |
Record layout requires not just a definition, but a complete definition. Assert this. Change IR generation to not try to aggressively emit the IR translation of a record during its own definition. Fixes PR10912. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
88934e85f81abdc4fb5202325252be3bcab5ebf0 |
|
05-Oct-2011 |
Daniel Dunbar <daniel@zuster.org> |
Driver & AST: Implement support for -fpack-struct and -fpack-struct= command line options. - <rdar://problem/10120602>, PR9631 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
68395a7a9c5ec4400c4d76f16ee20d9b4c9326d8 |
|
05-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Fix doxygen comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
2fe363622c32c471e8a68c68ba5cc372644f24fb |
|
27-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Some changes to improve compatibility for MSVC-style C++ struct layout. Patch from r4start at gmail.com (with some minor modifications by me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ae5860e1787230dd8b8948a08632c9be777d8522 |
|
06-Sep-2011 |
Ted Kremenek <kremenek@apple.com> |
Don't emit -Wpadded warnings without a valid SourceLocation. This can happen when RecordLayoutBuilder is used by Codegen, not Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bcfd1f55bfbb3e5944cd5e03d07b343e280838c4 |
|
02-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Extend the ASTContext constructor to delay the initialization of builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, rather than doing so after the fact. No actual functionality change (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b8fca90263760e579d2e463f02c846faa54d03a0 |
|
06-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
Add support for using anonymous bitfields (e.g., int : 0) to enforce alignment. This fixes cases where the anonymous bitfield is followed by a bitfield member. E.g., struct t4 { char foo; long : 0; char bar : 1; }; rdar://9859156 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
dd7fddb5b6883326e52b278a9b7e9cefea29aae0 |
|
05-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
More whitespace and naming fixup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0e7bf40027f75c0c62fb002af7eab0882de6d332 |
|
04-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
Fix style and remove obviously redundant code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6e43f3f0e2fa7a4b50d2497de94a40437cd26003 |
|
04-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
Additional comments and whitespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
61a62216a0bb33fb668ab653d9f9a704e43d2fc6 |
|
04-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
Add partial support for using anonymous bitfields (e.g., int : 0) to enforce alignment. This fixes cases where the anonymous bitfield is followed by a non-bitfield member. E.g., struct t4 { int foo : 1; long : 0; char bar; }; Part of rdar://9859156 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
db8264e4c5ffd7af6fbad4ca4306bd382bb02691 |
|
22-Jul-2011 |
Jordy Rose <jediknil@belkadan.com> |
Add a const overload for ObjCInterfaceDecl::all_declared_ivar_begin. This was previously not-const only because it has to lazily construct a chain of ivars the first time it is called (and after the chain is invalidated). In practice, all the clients were just const_casting their const Decls; all those now-unnecessary const_casts have been removed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bf9eb88792e022e54a658657bf22e1925948e384 |
|
28-Jun-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Eliminate most uses of ShallowCollectObjCIvars which requires a vector for collection. Use iterators where needed instead. // rdar://6817577 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cb5d2d0647fdab2e36c85b417e03bf18916ce10c |
|
10-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10120: Make CodeGenModule::getVTableLinkage use NamedDecl::getLinkage to determine whether the vtable should be externally visible, instead of a rough approximation of it which messes up with templates. While I'm here, zap the other user of isInAnonymousNamespace outside of Decl.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6ec50ad4b12cbb6ca12036080808f912d5ee2515 |
|
11-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Implenment #pack pragma and ms_struct attribute layout. Concludes // radar://8823265. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ed63e03e35f2c8ad1a06d7bbc2249d132a730175 |
|
10-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Support pack pragma and ms_struct attributes. // rdar://8823265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
30364d0a6450315989f6613910b09f865044a2a0 |
|
10-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
'long long' requires special treatment in ms_struct structs (impacts 32-bit only though). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
31e7f225fa3c603b84d66bc8ebdf7ed084e36e62 |
|
07-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
In ms_struct structs, Establish a new alignment for a non-bitfield following a bitfield if size of their types differ. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
52bbe7a1133c3cb57e9246f1b96c12940ea3821a |
|
06-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Establish a new alignment for an ms_struct bitfield following a non-bitfield if size of their types differ. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9b3acaa32548d0ce78b9c39a3911397f6738a47c |
|
04-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
More ms_struct bitfield stuff: Adjacent bit fields are packed into the same 1-, 2-, or 4-byte allocation unit if the integral types are the same size. // rdar://8823265. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cc0f9f1a3b5df7fd308ff3d800fbbbbff805157d |
|
04-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Only the first zero-length bitfield decides alignment of the followup data member in an ms_struct struct. // rdar:// 8823265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
855a8e79f42e670b405b31efd3963f4d89732aff |
|
03-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Finish off rules for z-length bitfields in ms_struct structs. // rdar://8823265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
340fa242130c2d8d74c83edca0952e771aebe0e6 |
|
02-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
More rule enforcement of zero bitfields for ms_struct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
14d56ef43ff4921c6749f7340212fbb743fdbb9b |
|
27-Apr-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Some refactoring of my ms_struct patch. // rdar://8823265 related. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
62055b0618fafb4747e783ba3fedd7bc7d57d27d |
|
27-Apr-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
With ms_struct attribut, Zero-length bitfields following non-bitfield members are ignore. // rdar://8823265 wip git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
43d8bcfc3601aec7dd3e7ccc7b6ddd3ff6189c62 |
|
22-Mar-2011 |
Ted Kremenek <kremenek@apple.com> |
Simplify crash recovery cleanup registration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4d96d9f0e758fb9244749f99d4b0a3ab1e3e0592 |
|
19-Mar-2011 |
Ted Kremenek <kremenek@apple.com> |
Recover memory from RecordLayoutBuilders during crashes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d5e3ed085032def4ac875d64cb029fc3926652ed |
|
10-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Instead of round up sizes to '8', round them up to the alignment of the char type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
90ce2dba294b8443169fe1a583914908fae0e767 |
|
10-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Round up the non-virtual size to the next char instead of rounding down. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3b3e1a1e8b44842ac3f07999c0f1eb82f13ffae4 |
|
01-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Use CharUnits for TypeAlign variable in LayoutWideBitField(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5dc989c4f630acc3c0028b2d1229511063671a29 |
|
01-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Change the return type of GetVirtualPointersSize() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
f079b735d876f75e67b8dcc6980d0b742903ce0d |
|
28-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Retry r126357. Use CharUnits for the Size and DataSize calculations when they are known to be exact multiples of the width of the char type. Add a test case to CodeGen/union.c that would have caught the problem with the previous attempt. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6b46cd9c8508e1a67c66cbb83a9077bb787a3ce2 |
|
24-Feb-2011 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Use CharUnits values for Size and DataSize outside of the bitfield layout", it broke some GCC tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8102fae66df9834662d1c51ee5b91f908c419bdf |
|
24-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Use CharUnits values for Size and DataSize outside of the bitfield layout methods, when they are known to be exact multiples of the width of the char type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9911344114cc493e089964f7602b619e5a47c7bc |
|
24-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Use Context.getCharWidth() in place of literal '8's in assertions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a0c21c4ec00ea083bf036edb08bb016085b53409 |
|
24-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Make the Size and DataSize members more CharUnits-friendly by wrapping them with getter and setter methods in both bit units and CharUnits. This will help simplify some of the unit mismatch in the parts of the code where sizes are known to be exact multiples of the width of the char type. Assertions in the getters help guard against accidentally converting to CharUnits when sizes are not exact multiples of the char width. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9ed9a250180f19b2c44df83a196fc3a2ac82f817 |
|
20-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Expand use of CharUnits in LayoutField(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3263e09c8e0925edaa541d0d4bb995b4bfb454e7 |
|
19-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Expand use of CharUnits for alignments further. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
834945c19cfb87fc21dfb6980a0980618655d79d |
|
17-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert MaxFieldAlignment to CharUnits from bits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6feb4bb3defce7e5efc05a69c6bd7dfc9c59fa45 |
|
16-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the UnpackedAlignment field to CharUnits from bits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ea7f6c2c53127b875ed432fd1793d48270d8ba6b |
|
16-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert Alignment member to CharUnits from bits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a1fdb0bc09aa0d17841cdbdd8c52cd1368251cbf |
|
16-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert NonVirtualSize to CharUnits from bits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
df205382dae666b011d857402114e4f4acd56c81 |
|
16-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert NonVirtualAlignment to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
dac54c124e302d6f028ea5723c425b7f66fc7c71 |
|
15-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert RecordLayout::Alignment to CharUnits from bit units. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ec2990351335f163601b98e39b52425e2e9f931e |
|
11-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert RecordLayout::DataSize to CharUnits from bits, eliminating two unnecessary calls to RoundUpToAlignment. No changes to functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
dd76a9ab9ea675671200f94b18ce95766841952b |
|
11-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Add a helper function, ASTContext::toBits(), that converts sizes in CharUnits to sizes in bits, and use it to tidy up the places where the conversion was done explicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5f022d82696c84e4d127c558871d68ac6273274e |
|
09-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert RecordLayout::Size to CharUnits from bits. No changes to functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
68cf1a5a01ba43ed56a8624632fd65e0804430ac |
|
08-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert RecordLayout::NonVirtualAlign to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
adf082e829eb71871b6043009888df3b79055dba |
|
02-Feb-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
For gcc compatibility, size of a class which is zero but has non-empty data fields, such as array of zero length, remains zero. // rdar://8945175 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6f75550e40a9177db9979fc130ce3ece026b137d |
|
01-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Basic support for -mms-bitfields, from Carl Norum! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5c3633fa57f27b0909ab5767715c4e66b8920165 |
|
01-Feb-2011 |
Ken Dyck <kd@kendyck.com> |
Convert RecordLayout::NonVirtualSize from bit units to CharUnits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ff3a5174d1f6e7dc98de348aecfdfe1d2fb7cd53 |
|
24-Jan-2011 |
Ken Dyck <kd@kendyck.com> |
Remove private toCharUnits() helper method, replacing with calls to ASTContext::toCharUnitsFromBits(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fb1e3bc29b667f4275e1d5a43d64ec173f4f9a7d |
|
18-Jan-2011 |
Ken Dyck <ken.dyck@onsemi.com> |
Replace calls to CharUnits::fromQuantity() with ones ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4ba2a17694148e16eaa8d3917f657ffcd3667be4 |
|
12-Jan-2011 |
Jay Foad <jay.foad@gmail.com> |
PR3558: mark "logically const" accessor methods in ASTContext as const, and mark the fields they use as mutable. This allows us to remove a few const_casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
272324bc881450a71873d2f4e72f17837d8998df |
|
30-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix PR8796. The problem was that we were asserting the we never added an empty class to the same offset twice. This is not true for unions, where two members, empty or not, can have the some offset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5a821198203bdd469175408c4c4c805cc3240159 |
|
09-Dec-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix another unnecessary-struct-padding issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
43ddd9f2027bdd9c36336a342e9c0dd2aa13f836 |
|
09-Dec-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Before determining the effect the alignment of base struct will have in the aligment of the sub-struct, take into account if the sub-struct is packed and its maximum field alignment. Fixes rdar://8745206 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
dae0cb52e4e3d46bbfc9a4510909522197a92e54 |
|
25-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Move isNearlyEmpty out into the ASTContext so it can be called from CodeGen as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c9e814ba193f38a7b08268612248f63beb279bb3 |
|
25-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Rename RecordLayout::getPrimaryBaseWasVirtual to isPrimaryBaseVirtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
245656ec65ec600ef1ab05f4c8d9f780542d689d |
|
24-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Use the newly added function in ASTRecordLayoutBuilder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
33e4e70c8c0a17e0ccb7465d96556b077a68ecb1 |
|
18-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Refactoring of Diagnostic class. -Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class. -DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units. -The rest of the state in Diagnostic object is considered related and tied to one translation unit. -Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a SourceLocation instead of a FullSourceLoc. -Reflect the changes to various interfaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fa84fbad4863e030b149febc88288514efca34b2 |
|
01-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Don't update empty field subobjects for bitfields. Fixes PR8519. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6a3567442307864eac52bb84ce41465753513635 |
|
01-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Get rid of more calls to getBaseClassOffsetInBits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3069a0d28637ad0ad583d9fdd7bc6bc6aa677fb5 |
|
01-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Port over a couple of getVBaseClassOffsetInBits call sites to use getVBaseClassOffset instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a14f5979572aa25c03d24750ee4724d2031d4ede |
|
01-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a2311513524ecef954d2b438bfbe09aa9511b660 |
|
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Start converting over the RecordLayoutBuilder next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a3d4380d6662a373bc78f915947e5bc06e985e91 |
|
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
EmptyObjectMap now uses CharUnits wherever possible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8c6acc6be0fbd4127d16c1c0e12a9362462e6e0c |
|
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
More CharUnits conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fe5ef73149514e513a231a1df1a5938f3ad1545a |
|
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
More CharUnits conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d8da76365f40a0c12c7d802a0da2aaacf4b2cf99 |
|
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Use CharUnits in the EmptyClassOffsets map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
376bda924ac92462a22d6a22ea65d8c1bb8f26f3 |
|
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Baby steps towards using only CharUnits for base class offsets in ASTRecordLayout. Start by storing the offsets in CharUnits in the ASTRecordLayout object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cb9c07418b699bd2b8384d31ff4392df7d76eb7c |
|
22-Oct-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move classes into anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
36d2fd44bfeec417bbd7465218353abb8bf7e95d |
|
14-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Store in PCH the key function of C++ class to avoid deserializing the complete declaration context in order to compute it. Progress for rdar://7260160. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3bd5b6c3c2ad1d5a6f88cf21f627e8d4f03c4df4 |
|
13-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Embrace C++ ABI 5.2.6 and consider that template instantiations don't have key functions (same as GCC). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
78a916ec5ff5b66adec3c499e1b9af7b87668309 |
|
22-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement -Wpadded and -Wpacked. -Wpadded warns when undesired padding is introduced in a struct. (rdar://7469556) -Wpacked warns if a struct is given the packed attribute, but the packed attribute has no effect on the layout or the size of the struct. Such structs may be mis-aligned for little benefit. The warnings are emitted at the point where layout is calculated, that is at RecordLayoutBuilder. To avoid calculating the layouts of all structs regardless of whether they are needed or not, I let the layouts be lazily constructed when needed. This has the disadvantage that the above warnings will be emitted only when they are used for IR gen, and not e.g with -fsyntax-only: $ cat t.c struct S { char c; int i; }; void f(struct S* s) {} $ clang -fsyntax-only -Wpadded t.c $ clang -c -Wpadded t.c -o t.o t.c:3:7: warning: padding struct 'struct S' with 3 bytes to align 'i' [-Wpadded] int i; ^ 1 warning generated. This is a good tradeoff between providing the warnings and not calculating layouts for all structs in case the user has enabled a couple of rarely used warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cfe17e5c82762cc854012e472b66f4278f0a4a2a |
|
25-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use a smart pointer instead of delete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6d09a194bb296948ef05f6bff4435752450389fe |
|
23-Aug-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Add a virtual destructor to the base of another class hierarchy with virtual methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
20cf717034ba1f20fc47c025ecb72ed9b631ad13 |
|
19-Aug-2010 |
Charles Davis <cdavis@mines.edu> |
Add some enum goodness as requested by Chris. Now instead of storing the active C++ ABI as a raw string, we store it as an enum. This should improve performance somewhat. And yes, this time, I started from a clean build directory, and all the tests passed. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b61b7d24f3f8fee5ef7c92187d2a9bb3df5a5192 |
|
19-Aug-2010 |
John McCall <rjmccall@apple.com> |
Restore the build git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c9f8aece7e111f90265dfad9a81f3f517be948de |
|
19-Aug-2010 |
Charles Davis <cdavis@mines.edu> |
Add a special RecordLayoutBuilder for the Microsoft C++ ABI. All it does right now is add space for two vtable pointers instead of one when a class has both virtual methods and virtual bases. This is a requirement of the Microsoft ABI, since it has separate vtables for methods and bases. Other stuff will come up over time, but we'll cross those bridges when we get to them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cf807c4dfdb23e8fa3f400e0b24ef5b79db7a530 |
|
19-Aug-2010 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Generate Attr subclasses with TableGen. Now all classes derived from Attr are generated from TableGen. Additionally, Attr* is no longer its own linked list; SmallVectors or Attr* are used. The accompanying LLVM commit contains the updates to TableGen necessary for this. Some other notes about newly-generated attribute classes: - The constructor arguments are a SourceLocation and a Context&, followed by the attributes arguments in the order that they were defined in Attr.td - Every argument in Attr.td has an appropriate accessor named getFoo, and there are sometimes a few extra ones (such as to get the length of a variadic argument). Additionally, specific_attr_iterator has been introduced, which will iterate over an AttrVec, but only over attributes of a certain type. It can be accessed through either Decl::specific_attr_begin/end or the global functions of the same name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4087f27e5416c799bcb6be072f905be752acb61c |
|
18-Aug-2010 |
Daniel Dunbar <daniel@zuster.org> |
StringRef'ication of lots stuff, patch by Peter Davies! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c83d2d7d8914a0fe00d679a262f2bdae7689f16d |
|
15-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Remove ATTRIBUTE_UNUSED from the common pattern of disallowing copying. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ed635e4bff56ffc50d9ad2929eee9d7ffc516c2d |
|
15-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add ATTRIBUTE_UNUSED to methods not supposed to be used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
84b0316f720bd089d87acb21ec0002b2da33e6c9 |
|
29-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Sema: Fix a subtle i64 -> i32 truncation which broke layout of large structures with bit-fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fe8ec01bba74f6841576a2ee93d2c62cdfa4eff2 |
|
29-Jun-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Delete assert in ComputeKeyFunction. The function runs fine without it, since there's an explicit guard on isPolymorphic, and virtual bases don't affect the key function calculation. This allows people to call ASTContext::getKeyFunction on arbitrary classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e3362bc104f401564a68ef2e0e5fd89f440cf4fc |
|
13-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Do the same short-circuit optimization when laying out bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5ccfdd8d215c7bf324a14523c71ed328325c2bc8 |
|
13-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Implement part of the EmptySubobjectMap optimization described in PR6998. We still need to do this for bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
45f5b54d67215639ae6585d12df5133e99180c2b |
|
08-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly handle fields with virtual bases containing empty subobjects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
2177ab7be5256e691a115356fcb8f3eef9c9733f |
|
08-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
When checking whether we can place a base subobject at an offset, we don't need to go past the highest offset that's known to contain an empty base subobject. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c8cb462e57ac13518a170fe52b77bb8656234b35 |
|
08-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Minor cleanups to the empty subobject map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c15503d77bb109ab33f1a865cc318de18a3a1adf |
|
30-May-2010 |
Anders Carlsson <andersca@mac.com> |
And now for the best part: Removing the old code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
83a45e7dab892e9efd3515eca4eb5b81bc3f2126 |
|
30-May-2010 |
Anders Carlsson <andersca@mac.com> |
Turn on the new empty base subobject tracking code. It's a bit faster than the previous code. However, it still has quadratic performance, something which I intend to fix shortly in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4137d517700a1b0f834535545c3f1676f40abcfb |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5b1319c78061e76d70cca50fb3343b25928e001b |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Make EmptySubobjectMap::CanPlaceBaseAtOffset take a BaseSubobjectInfo as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b1d880b15f6b254349bd7a700e6b4f2ec1c24f5b |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Change RecordLayoutBuilder::LayoutBase to take a BaseSubobjectInfo. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3cd09ccbb1a750a7b40593a7b0a2d95ee2a0ba0e |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Rework the way virtual primary bases are added when laying out classes. Instead of doing it as a separate step, we now use the BaseSubobjectInfo and use it when laying out the bases. This fixes a bug where we would either not add a primary virtual base at all, or add it at the wrong offset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
276b491b44b473d91610432aa335927b2c7ad152 |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Change LayoutVirtualBase to also take a BaseSubobjectInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
07cebc57123db6a50c7c293e44a9647ce069952b |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Change RecordLayoutBuilder::LayoutNonVirtualBase to take a BaseSubobjectInfo. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6e26454ecceb20938b866717dc8a72c6d37d224d |
|
29-May-2010 |
Anders Carlsson <andersca@mac.com> |
Move computing the base subobject info for a class into the RecordLayoutBuilder because we're going to need it to be able to correctly add offsets for primary virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ea2f41c584b9741a591e11c83819b31856f5bc18 |
|
28-May-2010 |
Anders Carlsson <andersca@mac.com> |
Rename BaseInfo to BaseSubobjectInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4a25799760982b3363f3c4eb6df953d70e35e37d |
|
28-May-2010 |
Anders Carlsson <andersca@mac.com> |
Move BaseInfo outside of the EmptySubobject class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
812a3456b63708a5972f712e9e4b54d3cc436378 |
|
27-May-2010 |
Anders Carlsson <andersca@mac.com> |
More work on the empty subobject map. This code is not yet used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c6082fe347a414a2e19f2ad8fe41720f10733296 |
|
27-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Sema: Add initial support for '#pragma options align=mac68k'. - Docs are fairly sketchy, if someone wants to pore through gcc to look for holes I'd appreciate any failing test cases! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
58b16b6e46716e24f1cdaa0a5e1253415c4e30b3 |
|
27-May-2010 |
Anders Carlsson <andersca@mac.com> |
More work on the new empty subobject map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0aa7edbc1f579787c4f69144fd1b04e777d89391 |
|
27-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Strip trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8a2c92cab213bd7e28ff669577e815cd70bafbe3 |
|
27-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
AST: Rename PragmaPackAttr to MaxFieldAlignmentAttr, which is more accurate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
261febd091cd05325ae202b7d388a2d266bbf126 |
|
27-May-2010 |
Anders Carlsson <andersca@mac.com> |
More work on the empty subobjects map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0c54fc91322faaa78422c3aaec261a26e45d7f8c |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Move ComputeEmptySubobjectSizes to EmptySubobjectMap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6a91c0328c81fe1be4e5380fb0e586cafee53b26 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Stub out the EmptySubobjectsMap class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0efac254e385f06e34158aaa351942c80149042f |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Inline the RecordLayoutBuilder constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c6cab68ae1f8ebdcabaf51391dba09bfbad02e4f |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Add a Layout overload that takes a CXXRecordDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
7e220286410422ed1dc0409a9cb9708fe50e3df0 |
|
26-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move RecordLayoutBuilder into an anonymous namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
7d0918acd134ab93b7d3eb6add93dfde37b1f7b3 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Rename ASTRecordLayoutBuilder to RecordLayoutBuilder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9392fa63e45716e32061d05673fa28909f325b02 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Move the ASTRecordLayoutBuilder class declaration into the .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
aa230b7bd2054e70e9500aff584845cb1cc34ca7 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Fix thinko and remove another unused function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4831710518be9f506f0bc2d11bec6205061fc119 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Fix build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
28fdd0a8b450c1329b3303e5cf8e8a788a0ef85a |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
No need to use the PrimaryBaseInfo struct in the builder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
400b06dde52df439b25264fbbc0271d96d27903c |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Remove FIXME. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
2f64e377d1aa733b81a4c5e78e32a62c41426626 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Fold the other Layout overload into its sole call site. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
36cdc61b98460c06ee07710f77b911675fdce6a7 |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Fold the ASTRecordLayoutBuilder::ComputeLayout overload that takes an ObjCInterfaceDecl pointer into its only callsite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1e641ce1c169b4b0cac3d7ad6da44b323453049c |
|
26-May-2010 |
Anders Carlsson <andersca@mac.com> |
Move the relevant ASTContext member functions that deal with ASTRecordLayoutBuilder into RecordLayoutBuilder.cpp. This matches the way we interact with other builder classes (CGRecordLayoutBuilder, VTableBuilder and VTTBuilder) and it also allows for making ASTRecordLayoutBuilder a private class without a header file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bfcdc40cbc213d91d91513ba8e1fbde65734ddf4 |
|
23-May-2010 |
Anders Carlsson <andersca@mac.com> |
When recording empty subobjects we should always look at the primary virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ecafebe28f379bf45eaca4bf8469e2586eba9902 |
|
10-May-2010 |
Anders Carlsson <andersca@mac.com> |
Add an UpdateVBases parameter to UpdateEmptyClassOffsets. Not used just yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3159ffeb233021bb38d7c75f214998de741d5663 |
|
10-May-2010 |
Anders Carlsson <andersca@mac.com> |
More work on handling empty classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ddae877b5d1657398f6a8f528dbd3f20dc19607f |
|
09-May-2010 |
Anders Carlsson <andersca@mac.com> |
Cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
836fc14e6cdad2362fc31f11bf7b14832cba34b9 |
|
09-May-2010 |
Anders Carlsson <andersca@mac.com> |
Actually compute the empty subobject sizes. No functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
c3fddeb4384de2238ec03c77be6bee606725609e |
|
09-May-2010 |
Anders Carlsson <andersca@mac.com> |
Add a SizeOfLargestEmptySubobject member to ASTRecordLayout. For C++ classes this will hold the largest empty subobject or 0 if the class doesn't have any empty subobjects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8d8ab749f6f8bb63ea2cd2b589c0f050b67fc5cc |
|
19-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
AST: Dump ASTRecordLayout objects when they are created with -fdump-record-layouts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
cb421fa690da545b58a720abe5f1c49b166dbde7 |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
de9f153b2348f590151504888c22cb937134cd27 |
|
17-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
If a wide bit-field is inside a union its offset should always be 0. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
900fc6388e803868a34b9483510c345e9b49d7eb |
|
17-Apr-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add raw_ostream operators to NamedDecl for convenience. Switch over all users of getNameAsString on a stream. The next step is to print the name directly into the stream, avoiding a temporary std::string copy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4b16e97ff7761cfc61a42b15dfce5d868335196f |
|
16-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Remove printfs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4cf6f5fdc529f0b4412505e2e6af099370a479b3 |
|
16-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
More work on wide bit-fields, WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0f0e9b0ace2a970d31ac31811f07e0b1d93501d6 |
|
16-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Rename the ASTContext member 'Context'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
97913576dbe624971bf18726899983d211d742c0 |
|
15-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Split adding the primary virtual base offsets out into a separate pass. This fixes a bug where we would lay out virtual bases in the wrong order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b6830d616a068971f13e1e213e06a945c8c93cea |
|
15-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
Tweak spelling (Bitfield -> BitField) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b6a169395c1b30c76daffebcbd2164b6247a5d21 |
|
15-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
Add TargetInfo::useBitfieldTypeAlignment(). - Used to determine whether the alignment of the type in a bit-field is respected when laying out structures. The default is true, targets can override this as needed. - This is designed to correspond to the PCC_BITFIELD_TYPE_MATTERS macro in gcc. The AST/Sema implementation only affects one line, unless I have forgotten something. I'd appreciate further review. - IRgen still needs to be updated to fully support this (which is effectively PR5591). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4895a8ca41352b9ce572cd64ffa93208898e7546 |
|
13-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
Remove unnecessary cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
573021fc10d0668a9d59888bdfc259e3a304b405 |
|
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another vbase layout bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a1e87162d36f94d3dc58ff3f0743d6026635a0c6 |
|
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Add a simple debug-only verification pass to the record layout builder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bdda6c1788dfdb890e1eccd13b949b1cc875eeaa |
|
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Simplify the virtual base layout code and fix a bug where we wouldn't store the offset for a virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bf9e48cbaaa23d990dbedf9489513500bd0b9751 |
|
08-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
AST: Move C++ record layout dumping to ASTContext::DumpRecordLayout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
37147ea14f39a8522e32e3ba4d043a2a33fff90c |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More record layout builder cleanup and simplification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
88f4296e85d49e4ea63cda729cd5f696824c67ce |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Get rid of the PrimaryBase parameter from LayoutVirtualBases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
622e2477d0698d734671523389277e10d8566e26 |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More cleanup towards fixing the real bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
147b5ddc6c8618a9d70a83f90de409e444ae705b |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Replace the class offset vectors in RecordLayoutBuilder with maps instead so we'll have faster lookup and so we can detect duplicates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
584e1dfaf6ab682cebe4fe51f55f0ae3215d303f |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
23a5fcba194c3dec737f296860d75327d85cc349 |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More record layout builder cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9dc82d2193971ed57dc657dbd21249a2c57da376 |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Remove the IndirectPrimary parameter in LayoutVirtualBases; it's already there as a member variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
200c5c2d9488165626925235ff918e3d744d785a |
|
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More cleanup and simplification of the record layout builder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e3bdbee47059839d5e24acab5ee7b925285f573e |
|
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Get rid of the LayoutBaseNonVirtually; it was used to lay out a base either as a non-virtual base or a virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e239b9d5da3bdc722d29c276b261c136ca9f4eaa |
|
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More shuffling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4c3a7b04a682ee2dbb73fd78441b07869cc3024d |
|
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Cleanups, no functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
503524acc73f2f8280080ca0d200377406001b65 |
|
08-Mar-2010 |
Ted Kremenek <kremenek@apple.com> |
Allocate ASTRecordLayout objects using the allocator associated with ASTContext. This allows them to be allocated using a BumpPtrAllocated in the common case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
11062e11236b7bc689dad150e8b490fd6b063ec3 |
|
19-Feb-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch removes IVars list from ObjCInterfaceDecl and instead relies on their DeclContext for iteration, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
94ba380b820cde3fb9d97d5f07ac709ebbb6ac1e |
|
15-Feb-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Simplify code. If we can reach here, the base must be virtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6ebee078ec83dbeb61abd95967ec385a15f6af91 |
|
22-Jan-2010 |
Mike Stump <mrs@apple.com> |
Be sure to select primary bases among the nearly empties in preorder, not just among the direct bases. Before we where missing nearly empties that were bases of virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bd6d6197fcfc98356ea60e816365eb0648b69556 |
|
05-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve key-function computation for templates. In particular: - All classes can have a key function; templates don't change that. non-template classes when computing the key function. - We always mark all of the virtual member functions of class template instantiations. - The vtable for an instantiation of a class template has weak linkage. We could probably use available_externally linkage for vtables of classes instantiated by explicit instantiation declarations (extern templates), but GCC doesn't do this and I'm not 100% that the ABI permits it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
61eab8872168af6eb1e0047a82901096cf145e27 |
|
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Misc key function fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
863dbcb45eb7b1e663f2d62be0fbdda6d9aa13ef |
|
07-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Instantiated or specialized class templates never have a key function. This (and the previous check-in) fixes PR5557. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
f53df2398e07d13be9962b95aebc19b31706fa33 |
|
07-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Move key functions to a separate map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d7d7f67c1dd8626520bb243d3928f59d32424534 |
|
06-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Move helper onto CXXMethodDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
378fe06b93752669d8a7dd8fa7000094b9679267 |
|
05-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Tweak "key function" rules so that they work for templates with virtual inline functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
5ec02ae147760c32ad5b6fb0fec30ab3b3696778 |
|
02-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
In Sema, whenever we think that a function is going to cause a vtable to be generated, we mark any virtual implicit member functions as referenced. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1a5e0d7f18485e4fb958f96dcddff3e4486a4069 |
|
01-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Have ASTRecordLayout keep track of the key function, in preparation of fixing a synthetic ctor/dtor bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
261fba6cf57a09a1f1d0c4a4c4856aaa62753242 |
|
27-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Use a PointerIntPair for the PrimaryBaseInfo. Yay for clever LLVM data structures! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ce2009ab2f59894dbcc847e25e05abe78c296e95 |
|
27-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Add a new PrimaryBaseInfo struct that combines the record decl of a primary base with whether it's virtual or not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e4fc0d97420e13d13c9664a3c27c17aa7c1e47b9 |
|
22-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
When laying out bitfields, make sure that the data size is always aligned to a byte. This fixes PR5580. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
42dbcc4d8f0c483693befc76f37ca6dc4e0844e1 |
|
22-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Move bit-field layout out into a separate function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bbd37c62e34db3f5a95c899723484a76c71d7757 |
|
21-Nov-2009 |
Sean Hunt <rideau3@gmail.com> |
Added rudimentary C++0x attribute support. The following attributes are currently supported in C++0x attribute lists (and in GNU ones as well): - align() - semantics believed to be conformant to n3000, except for redeclarations and what entities it may apply to - final - semantics believed to be conformant to CWG issue 817's proposed wording, except for redeclarations - noreturn - semantics believed to be conformant to n3000, except for redeclarations - carries_dependency - currently ignored (this is an optimization hint) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
37acf5a57f87abdbb4ac6115c5f3f09295ec2dc3 |
|
11-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fixup spacing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
968db3364611a475909b5e76969d2f5472e65597 |
|
05-Nov-2009 |
Mike Stump <mrs@apple.com> |
Refine layout for indirect virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9994a34f6cf842721ba7723edc0b9036229fe387 |
|
25-Oct-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Audit the code for places where it is assumed that every base specifier refers to a RecordType. Add assertions or conditions as appropriate. This fixes another crash in the Apache stdlib vector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ff2460883bd4b0760c4ca36c7f024e34c78b9e12 |
|
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Address comment from Daniel. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a223935e5cf82e939e1ca1da4111d63025a04e39 |
|
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Rename NextOffset to DataSize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
dfde681bddd525fd8dcebc98865ff74682d8b833 |
|
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Start at NextOffset when laying out bases as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
7e41038723bf77132674f55b12f60e24e5473b33 |
|
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Use NextOffset when laying out a field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1eca99b815e531eba63233c0558af0dc971387aa |
|
25-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Even more work on empty classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a4c6081abd5582515b110bdcb576b4b85536467b |
|
25-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Who would have thought that empty classes were so tricky? Handle cases where an empty virtual base class needs to be moved aside because it conflicts with the first field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fbbce49c116aa8c8c7c0707cb6048b55f70461a9 |
|
25-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle array fields that contain empty structs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6026504302763f74102592602b392cecd5ced3ae |
|
25-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
More work on empty classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
ffbdefc7a24c01a0f77425423278774796a3aa53 |
|
24-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
More improvements with laying out empty bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1345bd2b093e78620c32f5148b1279ed290188e8 |
|
24-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
More work on empty classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
9606149722bedfc48fc56cafc58de1139aef481d |
|
24-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Scaffolding for supporting empty bases/fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
56cfdc183e6012201c7e0a45b04fe74fd1ab51e4 |
|
22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
If we already set a primary base, don't set it to the first nearly empty base class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0cd40e4f909b4172254c83ae7291576204a588b8 |
|
22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Explicitly initialize the PrimaryBase and PrimaryBaseWasVirtual members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a48f552c74fadd9b0c1c5d11478ef144f480fc4f |
|
22-Sep-2009 |
Mike Stump <mrs@apple.com> |
Yes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3f066522342538509cf0aa4f381503b43fbdb68b |
|
22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Store the set of indirect primary bases directly in the record layout builder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
e4feb834fb1a6b03291ed78fd32d13729b5a3c4a |
|
22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Record layout builder cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b237fd6f36145c023ed12fe83f21727cbe197158 |
|
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Temporary band-aid for handling empty classes somewhat better. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
fe3010d09cec5cd06e31a3d57fe188a04d9bfa17 |
|
16-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine vbase offset calculations. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
276b9f1d814f4f6551cc3000590759a34185d6da |
|
16-Aug-2009 |
Mike Stump <mrs@apple.com> |
Cleanups and fixups for calculating the virtual base offsets. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
215389180617e4edb8aa95a5526509948ed1416f |
|
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Deconflate virtual base offsets from non-virtual base offsets. Deconflate a virtual base primary from a non-virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0880e75541899bc1cdd73c50eb549110b5916c59 |
|
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
We can't avoid doing the work to find all the indirect primary virtual base classes as we'll need that to layout the virtual bases... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
4ef980984fd0e131fca3f9e6ba15e8a79cabf88c |
|
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine vtable layout for virtual bases and keep better track of primaries. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d53cef178ddf90386d343dccfe28c531b93cfe8f |
|
13-Aug-2009 |
Mike Stump <mrs@apple.com> |
Prep for vbase layout refinements. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
94d0bceeb3afd82293326261c793b45023fd3cab |
|
13-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine virtual base layout. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
0a5cfd86dec28c0a3bc28742da8a19d5f63581be |
|
13-Aug-2009 |
Mike Stump <mrs@apple.com> |
Remove another done audit FIXME. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
02b16238a39d9b83674c3a531b6aaaf066ac95f2 |
|
13-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refactor a bit and remove some FIXME audit markers, now that the code has been audited for correctness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
d76264e0b20470267249660ab947197cf6d6e31f |
|
12-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine primary vbase selection ordering. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
49520944c688a9d5fc78d0c2af544b825873477b |
|
11-Aug-2009 |
Mike Stump <mrs@apple.com> |
Implement more of the inductive case for vtable layout involving virtual base primaries and improve the layout of classes with virtual bases. WIP. Hey, I've decided I want a change to FileCheck, I need to ensure that the group is together, nothing in between. Can we change it to check the match line is from the line immediately following the last matched line, if the source for the matched line is immediately after the source for the previously matched line? // CHECK: 1 // CHECK: 2 // CHECK: 3 // CHECK: 4 // CHECK: 5 // CHECK: 6 would require 1 2 and 3 to be continuous in the output, and 4 5 and 6 to be continuous. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a5dd722bdf2f74a1a249fe6661d96a7236aee0f0 |
|
08-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Take #pragma pack into account when laying out structs. Fixes rdar://problem/7095436. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a860e755f1f9f071b6a6a2f96128a6a258f5c331 |
|
08-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Introduce a new PragmaPack attribute, and use it for #pragma pack. The PackedAttr now only represents __attribute__((packed)). This is necessary because #pragma pack and __attribute__((packed)) have different semantics. No functionality change yet, but this lays the groundwork for fixing a record layout bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
928f1506eb38bb26a1284b876213a8f5244f6933 |
|
07-Aug-2009 |
Mike Stump <mrs@apple.com> |
Add ability to generate vcall offsets for primary virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
eb19fa948173502f47c26357c2ec41aa4be197b4 |
|
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Layout virtual bases. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a71d5713ea5e14eaf07ef978cef1c3ad492311f6 |
|
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Fix spell-o. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
2effeca6b4461c56c9b2d38778cd718be006f90e |
|
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Fixup object layout when we have a primary base (it goes first). Start preping for virtual base layout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6f376336138ea719e3c4757ae046a5768043b276 |
|
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Calculate the primary base class better and use that when laying down the vtable. Still a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
f121677b6bbbf4e4a51ee7a1120b77adf187bad4 |
|
31-Jul-2009 |
Mike Stump <mrs@apple.com> |
Add code to setup the vtable pointer in the constructor. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b49ef009e431c92d73287367122b0aaa1aa60175 |
|
30-Jul-2009 |
Mike Stump <mrs@apple.com> |
Update based upon comments. Explain why we have an assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
90f67083882915c2c6227839f3c2afcd64c5af3d |
|
30-Jul-2009 |
Mike Stump <mrs@apple.com> |
We'll also need a vtable pointer if we have virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
3dee6efcad9ad56d14f7edd1c29924f0b876a7f9 |
|
30-Jul-2009 |
Mike Stump <mrs@apple.com> |
Add ability to layout the vtable pointer in trivial cases. I noticed that we would silently do bad things with virtual bases in the layout code, so, we just turn them off. When people do better things with them, we can turn them back on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
6217b80b7a1379b74cced1c076338262c3c980b3 |
|
29-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Change uses of: Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
8a8a629844d26c24dc0147d55a32a937b14b9381 |
|
29-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
No longer need to keep base class offsets in the offset table as it has its own place now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
b2fafd4978166114c54748a73738d8b2c3a37e2b |
|
28-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Add a field for C++ specific data to ASTRecordLayout. Use it to store the non-virtual size and alignment + base offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
742cd1b7bb86b52b23b335d47abbd842dac0e1bf |
|
25-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for non-virtual base class initialization in constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
74cbe226207fd101623638dadfa7fbada04ff2a6 |
|
19-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Handle layout of non-virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
a2df41c107d3c5f5bff2d090fab77734e0da735d |
|
18-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Refactor field layout into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
243a68551ac9ec71bf341e062418e33eb4f286ff |
|
18-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Rename NextOffset to DataSize, which better matches the Itanium C++ ABI git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
93fab9d67ca62e3e291803e5a1309473d6e00344 |
|
18-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
More layout builder work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|
bda4c1015e27ac82d31afb4519dd53586e61a51a |
|
18-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Add a new ASTRecordLayoutBuilder class. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/RecordLayoutBuilder.cpp
|