|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
| #
12f27d8b |
| 25-Aug-2022 |
Tobias Hieta <[email protected]> |
Revert "GCC ABI Compatibility: Preserve alignment of non-pod members in packed structs"
This reverts commit 277123376ce08c98b07c154bf83e4092a5d4d3c6.
See issue: https://github.com/llvm/llvm-project
Revert "GCC ABI Compatibility: Preserve alignment of non-pod members in packed structs"
This reverts commit 277123376ce08c98b07c154bf83e4092a5d4d3c6.
See issue: https://github.com/llvm/llvm-project/issues/57346
show more ...
|
|
Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6 |
|
| #
0fe88f96 |
| 10-Jun-2022 |
Paul Robinson <[email protected]> |
[PS4/PS5] Don't inherit base class alignment
|
|
Revision tags: llvmorg-14.0.5 |
|
| #
30b7ffe7 |
| 02-Jun-2022 |
Paul Robinson <[email protected]> |
[PS5] Pack non-POD members in packed structs, matching PS4 ABI
|
| #
bb7835e2 |
| 02-Jun-2022 |
Paul Robinson <[email protected]> |
[PS5] Apply 'packed' attribute to base classes, matching PS4 ABI
|
| #
e59f648d |
| 24-May-2022 |
David Blaikie <[email protected]> |
Move GCC-compatible pod-packing change to v15/old behavior available at v14 and below
Since this didn't make it into the v14 release - anyone requesting the v14 ABI shouldn't get this GCC-compatible
Move GCC-compatible pod-packing change to v15/old behavior available at v14 and below
Since this didn't make it into the v14 release - anyone requesting the v14 ABI shouldn't get this GCC-compatible change that isn't backwards compatible with v14 Clang.
Differential Revision: https://reviews.llvm.org/D126334
show more ...
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
cfb81690 |
| 20-Apr-2022 |
Nathan James <[email protected]> |
[clang] Add a raw_ostream operator<< overload for QualType
Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostrea
[clang] Add a raw_ostream operator<< overload for QualType
Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostream.
Also cleaned up all the call sites where this occurs.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D123926
show more ...
|
|
Revision tags: llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
27712337 |
| 18-Jan-2022 |
David Blaikie <[email protected]> |
GCC ABI Compatibility: Preserve alignment of non-pod members in packed structs
This matches GCC: https://godbolt.org/z/sM5q95PGY
I realize this is an API break for clang+clang - so I'm totally open
GCC ABI Compatibility: Preserve alignment of non-pod members in packed structs
This matches GCC: https://godbolt.org/z/sM5q95PGY
I realize this is an API break for clang+clang - so I'm totally open to discussing how we should deal with that. If Apple wants to keep the Clang layout indefinitely, if we want to put a flag on this so non-Apple folks can opt out of this fix/new behavior.
Differential Revision: https://reviews.llvm.org/D117616
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc2 |
|
| #
35737df4 |
| 23-Dec-2021 |
Mubashar Ahmad <[email protected]> |
[Clang][AArch64][ARM] Unaligned Access Warning Added
Added warning for potential cases of unaligned access when option -mno-unaligned-access has been specified
Differential Revision: https://review
[Clang][AArch64][ARM] Unaligned Access Warning Added
Added warning for potential cases of unaligned access when option -mno-unaligned-access has been specified
Differential Revision: https://reviews.llvm.org/D116221
show more ...
|
| #
3aec4b3d |
| 07-Jan-2022 |
Archibald Elliott <[email protected]> |
Revert "Unaligned Access Warning Added"
This reverts commits: - 2cd2600abaf3c604889b77ab408fdf89d7a21c48 - 11c67e5a4e99f51ec66c9781710f81955cfd5e24
Due to test failures on Windows.
|
| #
2cd2600a |
| 23-Dec-2021 |
Mubashar Ahmad <[email protected]> |
Unaligned Access Warning Added
Added warning for potential cases of unaligned access when option -mno-unaligned-access has been specified
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
4db2e4ce |
| 31-Oct-2021 |
Kazu Hirata <[email protected]> |
Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC)
|
| #
57b40b5f |
| 12-Oct-2021 |
Kazu Hirata <[email protected]> |
[AST, CodeGen, Driver] Use llvm::is_contained (NFC)
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
9fad9de5 |
| 22-Sep-2021 |
Volodymyr Sapsai <[email protected]> |
[modules] Fix IRGen assertion on accessing ObjC ivar inside a method.
When have ObjCInterfaceDecl with the same name in 2 different modules, hitting the assertion
> Assertion failed: (Index < RL->g
[modules] Fix IRGen assertion on accessing ObjC ivar inside a method.
When have ObjCInterfaceDecl with the same name in 2 different modules, hitting the assertion
> Assertion failed: (Index < RL->getFieldCount() && "Ivar is not inside record layout!"), > function lookupFieldBitOffset, file llvm-project/clang/lib/AST/RecordLayoutBuilder.cpp, line 3434.
on accessing an ivar inside a method. The assertion happens because ivar belongs to one module while its containing interface belongs to another module and then we fail to find the ivar inside the containing interface. We already keep a single ObjCInterfaceDecl definition in redecleration chain and in this case containing interface was correct. The issue is with ObjCIvarDecl. IVar decl for IRGen is taken from ObjCIvarRefExpr that is created in `Sema::BuildIvarRefExpr` using ivar decl returned from `Sema::LookupIvarInObjCMethod`. And ivar lookup returns a wrong decl because basically we take the first ObjCIvarDecl found in `ASTReader::FindExternalVisibleDeclsByName` (called by `DeclContext::lookup`). And in `ASTReader.Lookups` lookup table for a wrong module comes first because `ASTReader::finishPendingActions` processes `PendingUpdateRecords` in reverse order and the first encountered ObjCIvarDecl will end up the last in `ASTReader.Lookups`.
Fix by merging ObjCIvarDecl from different modules correctly and by using a canonical one in IRGen.
rdar://82854574
Differential Revision: https://reviews.llvm.org/D110280
show more ...
|
| #
60ab6861 |
| 21-Sep-2021 |
Nico Weber <[email protected]> |
[clang] Fix a few more comment typos to cycle bots
|
|
Revision tags: llvmorg-13.0.0-rc3 |
|
| #
71b170cc |
| 30-Aug-2021 |
Steven Wan <[email protected]> |
[AIX] "aligned" attribute does not decrease alignment
The "aligned" attribute can only increase the alignment of a struct, or struct member, unless it's used together with the "packed" attribute, or
[AIX] "aligned" attribute does not decrease alignment
The "aligned" attribute can only increase the alignment of a struct, or struct member, unless it's used together with the "packed" attribute, or used as a part of a typedef, in which case, the "aligned" attribute can both increase and decrease alignment.
That said, we expect: 1. "aligned" attribute alone: does not interfere with the alignment upgrade instrumented by the AIX "power" alignment rule, 2. "aligned" attribute + typedef: overrides any computed alignment, 3. "aligned" attribute + "packed" attribute: overrides any computed alignment. The old implementation achieved 2 and 3, but didn't get 1 right, in that any field marked attribute "aligned" would not go through the alignment upgrade.
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D107394
show more ...
|
| #
73733ae5 |
| 28-Aug-2021 |
Steven Wan <[email protected]> |
TypeInfo records more information about align requirement
Extend the information preserved in `TypeInfo` by replacing the `AlignIsRequired` bool flag with a three-valued enum, the enum also indicate
TypeInfo records more information about align requirement
Extend the information preserved in `TypeInfo` by replacing the `AlignIsRequired` bool flag with a three-valued enum, the enum also indicates where the alignment attribute come from, which could be helpful in determining whether the attribute should overrule.
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D108858
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc2 |
|
| #
b8f612e7 |
| 04-Aug-2021 |
Sean Fertile <[email protected]> |
[PowerPC][AIX] Packed zero-width bitfields do not affect alignment.
Zero-width bitfields on AIX pad out to the natral alignment boundary but do not change the containing records alignment.
Differen
[PowerPC][AIX] Packed zero-width bitfields do not affect alignment.
Zero-width bitfields on AIX pad out to the natral alignment boundary but do not change the containing records alignment.
Differential Revision: https://reviews.llvm.org/D106900
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init |
|
| #
798fe3c7 |
| 12-Jul-2021 |
Steven Wan <[email protected]> |
[PowerPC][AIX] Fix Zero-width bit fields wrt MaxFieldAlign.
On AIX when there is a pragma pack, or pragma align in effect then zero-width bitfields should pad out to the end of the bitfield containe
[PowerPC][AIX] Fix Zero-width bit fields wrt MaxFieldAlign.
On AIX when there is a pragma pack, or pragma align in effect then zero-width bitfields should pad out to the end of the bitfield container but not increase the alignment requirements of the struct greater then the max field align.
Reviewed By: ZarkoCA
Differential Revision: https://reviews.llvm.org/D105635
show more ...
|
| #
9964b0ef |
| 05-Jul-2021 |
David Tenty <[email protected]> |
[clang] Add -fdump-record-layouts-canonical option
This option implies -fdump-record-layouts but dumps record layout information with canonical field types, which can be more useful in certain cases
[clang] Add -fdump-record-layouts-canonical option
This option implies -fdump-record-layouts but dumps record layout information with canonical field types, which can be more useful in certain cases when comparing structure layouts.
Reviewed By: stevewan
Differential Revision: https://reviews.llvm.org/D105112
show more ...
|
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
e0921655 |
| 17-May-2021 |
Xiangling Liao <[email protected]> |
[AIX] Implement AIX special bitfield related alignment rules
1.[bool, char, short] bitfields have the same alignment as unsigned int 2.Adjust alignment on typedef field decls/honor align attribute 3
[AIX] Implement AIX special bitfield related alignment rules
1.[bool, char, short] bitfields have the same alignment as unsigned int 2.Adjust alignment on typedef field decls/honor align attribute 3.Fix alignment for scoped enum class 4.Long long bitfield has 4bytes alignment and StorageUnitSize under 32 bit compile mode
Differential Revision: https://reviews.llvm.org/D87029
show more ...
|
| #
eae2d4b8 |
| 13-Apr-2021 |
Ben Dunbobbin <[email protected]> |
[Windows Itanium][PS4] handle dllimport/export w.r.t vtables/rtti
The existing Windows Itanium patches for dllimport/export behaviour w.r.t vtables/rtti can't be adopted for PS4 due to backwards com
[Windows Itanium][PS4] handle dllimport/export w.r.t vtables/rtti
The existing Windows Itanium patches for dllimport/export behaviour w.r.t vtables/rtti can't be adopted for PS4 due to backwards compatibility reasons (see comments on https://reviews.llvm.org/D90299).
This commit adds our PS4 scheme for this to Clang.
Differential Revision: https://reviews.llvm.org/D93203
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
| #
6f91cf75 |
| 26-Mar-2021 |
Fanbo Meng <[email protected]> |
[SystemZ][z/OS] Ignore leading zero width bitfield alignment on z/OS target
Zero length bitfield alignment is not respected if they are leading members on z/OS target.
Reviewed By: abhina.sreeskant
[SystemZ][z/OS] Ignore leading zero width bitfield alignment on z/OS target
Zero length bitfield alignment is not respected if they are leading members on z/OS target.
Reviewed By: abhina.sreeskantharajan
Differential Revision: https://reviews.llvm.org/D98890
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2 |
|
| #
f0abe2ae |
| 13-Jan-2021 |
Xiangling Liao <[email protected]> |
[Frontend] Add pragma align natural and sort out pragma pack stack effect
- Implemente the natural align for XL on AIX - Sort out pragma pack stack effect - Add -fxl-pragma-stack option to enable XL
[Frontend] Add pragma align natural and sort out pragma pack stack effect
- Implemente the natural align for XL on AIX - Sort out pragma pack stack effect - Add -fxl-pragma-stack option to enable XL on AIX pragma stack effect
Differential Revision: https://reviews.llvm.org/D87702
show more ...
|
|
Revision tags: llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
| #
101309fe |
| 24-Aug-2020 |
Bevin Hansson <[email protected]> |
[AST] Change return type of getTypeInfoInChars to a proper struct instead of std::pair.
Followup to D85191.
This changes getTypeInfoInChars to return a TypeInfoChars struct instead of a std::pair o
[AST] Change return type of getTypeInfoInChars to a proper struct instead of std::pair.
Followup to D85191.
This changes getTypeInfoInChars to return a TypeInfoChars struct instead of a std::pair of CharUnits. This lets the interface match getTypeInfo more closely.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D86447
show more ...
|
| #
944691f0 |
| 30-Sep-2020 |
Xiangling Liao <[email protected]> |
[NFC][FE] Replace TypeSize with StorageUnitSize
On some targets like AIX, last bitfield size is not always equal to last bitfield type size. Some bitfield like bool will have the same alignment as [
[NFC][FE] Replace TypeSize with StorageUnitSize
On some targets like AIX, last bitfield size is not always equal to last bitfield type size. Some bitfield like bool will have the same alignment as [unsigned]. So we'd like to use a more general term `StorageUnit` to replace type in this field.
Differential Revision: https://reviews.llvm.org/D88260
show more ...
|