<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/CodeGen/CGObjCMac.cpp, branch users/nico/python-1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[CodeGen] Use range-based for loops (NFC) (#144939)</title>
<updated>2025-06-19T21:57:58+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-19T21:57:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a9d175f1735a508ac05ab48d83a99071ba97c10e'/>
<id>a9d175f1735a508ac05ab48d83a99071ba97c10e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] llvm::append_range (NFC) (#136440)</title>
<updated>2025-04-19T17:37:25+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-19T17:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0ed1c9862df408d3df171762bd8fa0dafbe1b7e2'/>
<id>0ed1c9862df408d3df171762bd8fa0dafbe1b7e2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][CGObjC] Remove unused ExternalProtocolPtrTy (NFC) (#133870)</title>
<updated>2025-04-05T09:01:36+00:00</updated>
<author>
<name>Mats Jun Larsen</name>
<email>mats@jun.codes</email>
</author>
<published>2025-04-05T09:01:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a64191053136078761a72fe800feedb8bcc70d31'/>
<id>a64191053136078761a72fe800feedb8bcc70d31</id>
<content type='text'>
This function was previously used to get a type to the protocol that
was used to bitcast the initializer of GenerateProtocol. This bitcast
has later been removed (thanks to opaque pointers), but the member was
left behind.

History:

- 020de3254acc3 used ExternalProtocolPtrTy
- 34ee69b4ce662 removes the bitcast

Also technically part of #123569</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This function was previously used to get a type to the protocol that
was used to bitcast the initializer of GenerateProtocol. This bitcast
has later been removed (thanks to opaque pointers), but the member was
left behind.

History:

- 020de3254acc3 used ExternalProtocolPtrTy
- 34ee69b4ce662 removes the bitcast

Also technically part of #123569</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][CGObjC] Prefer PointerType::get with LLVMContext over Type (NFC) (#133871)</title>
<updated>2025-04-04T07:18:01+00:00</updated>
<author>
<name>Mats Jun Larsen</name>
<email>mats@jun.codes</email>
</author>
<published>2025-04-04T07:18:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d579622b1e1a6bc59fbe0135ab30fc0fd9849882'/>
<id>d579622b1e1a6bc59fbe0135ab30fc0fd9849882</id>
<content type='text'>
Part of #123569</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Part of #123569</pre>
</div>
</content>
</entry>
<entry>
<title>[ObjC] Expand isClassLayoutKnownStatically to base classes as long as the implementation of it is known (#85465)</title>
<updated>2025-03-04T16:34:18+00:00</updated>
<author>
<name>AZero13</name>
<email>gfunni234@gmail.com</email>
</author>
<published>2025-03-04T16:34:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6720465c47303cafcd448c64af97e7b627c399a8'/>
<id>6720465c47303cafcd448c64af97e7b627c399a8</id>
<content type='text'>
Only NSObject we can trust the layout of won't change even though we
cannot directly see its @implementation</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only NSObject we can trust the layout of won't change even though we
cannot directly see its @implementation</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen][ObjC] Invalidate cached ObjC class layout information after parsing ObjC class implementations if new ivars are added to the interface (#126591)</title>
<updated>2025-02-17T19:50:44+00:00</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanak@gmail.com</email>
</author>
<published>2025-02-17T19:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f5c5bc5ed57e63fe11ddd58c4b392f27b86730f1'/>
<id>f5c5bc5ed57e63fe11ddd58c4b392f27b86730f1</id>
<content type='text'>
The layout and the size of an ObjC interface can change after its
corresponding implementation is parsed when synthesized ivars or ivars
declared in categories are added to the interface's list of ivars. This
can cause clang to mis-compile if the optimization that emits fixed
offsets for ivars (see 923ddf65f4e21ec67018cf56e823895de18d83bc) uses an
ObjC class layout that is outdated and no longer reflects the current
state of the class.

For example, when compiling `constant-non-fragile-ivar-offset.m`, clang
emits 20 instead of 24 as the offset for `IntermediateClass2Property` as
the class layout for `SuperClass2`, which is created when the
implementation of IntermediateClass3 is parsed, is outdated when the
implementation of `IntermediateClass2` is parsed.

This commit invalidates the stale layout information of the class and
its subclasses if new ivars are added to the interface.

With this change, we can also stop using ObjC implementation decls as
the key to retrieve ObjC class layouts information as the layout
retrieved using the ObjC interface as the key will always be up to date.

rdar://139531391</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The layout and the size of an ObjC interface can change after its
corresponding implementation is parsed when synthesized ivars or ivars
declared in categories are added to the interface's list of ivars. This
can cause clang to mis-compile if the optimization that emits fixed
offsets for ivars (see 923ddf65f4e21ec67018cf56e823895de18d83bc) uses an
ObjC class layout that is outdated and no longer reflects the current
state of the class.

For example, when compiling `constant-non-fragile-ivar-offset.m`, clang
emits 20 instead of 24 as the offset for `IntermediateClass2Property` as
the class layout for `SuperClass2`, which is created when the
implementation of IntermediateClass3 is parsed, is outdated when the
implementation of `IntermediateClass2` is parsed.

This commit invalidates the stale layout information of the class and
its subclasses if new ivars are added to the interface.

With this change, we can also stop using ObjC implementation decls as
the key to retrieve ObjC class layouts information as the layout
retrieved using the ObjC interface as the key will always be up to date.

rdar://139531391</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] run clang-format on some CGObjC files (#126644)</title>
<updated>2025-02-12T19:52:49+00:00</updated>
<author>
<name>Peter Rong</name>
<email>peterrong96@gmail.com</email>
</author>
<published>2025-02-12T19:52:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=53c618c07154f8a99762fb5222aa9c05f6c434f7'/>
<id>53c618c07154f8a99762fb5222aa9c05f6c434f7</id>
<content type='text'>
These files are relatively old and don't confront our formatting rules.
It's hard to change them without massive clang-format changes.

---------

Signed-off-by: Peter Rong &lt;PeterRong@meta.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These files are relatively old and don't confront our formatting rules.
It's hard to change them without massive clang-format changes.

---------

Signed-off-by: Peter Rong &lt;PeterRong@meta.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Replace of PointerType::get(Type) with opaque version (NFC) (#124771)</title>
<updated>2025-02-08T15:13:02+00:00</updated>
<author>
<name>Mats Jun Larsen</name>
<email>mats@jun.codes</email>
</author>
<published>2025-02-08T15:13:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e0fee55a5549e04bb14d45fba6267bd69285ce77'/>
<id>e0fee55a5549e04bb14d45fba6267bd69285ce77</id>
<content type='text'>
Follow-up to https://github.com/llvm/llvm-project/issues/123569</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow-up to https://github.com/llvm/llvm-project/issues/123569</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "[clang] Avoid re-evaluating field bitwidth" (#122289)</title>
<updated>2025-01-11T06:12:37+00:00</updated>
<author>
<name>Timm Baeder</name>
<email>tbaeder@redhat.com</email>
</author>
<published>2025-01-11T06:12:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cfe26358e3051755961fb1f3b46328dc2c326895'/>
<id>cfe26358e3051755961fb1f3b46328dc2c326895</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[clang] Avoid re-evaluating field bitwidth (#117732)"</title>
<updated>2025-01-08T14:09:52+00:00</updated>
<author>
<name>Timm Bäder</name>
<email>tbaeder@redhat.com</email>
</author>
<published>2025-01-08T14:09:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=59bdea24b09bca9332a7092b583ebf377efb0d50'/>
<id>59bdea24b09bca9332a7092b583ebf377efb0d50</id>
<content type='text'>
This reverts commit 81fc3add1e627c23b7270fe2739cdacc09063e54.

This breaks some LLDB tests, e.g.
SymbolFile/DWARF/x86/no_unique_address-with-bitfields.cpp:

lldb: ../llvm-project/clang/lib/AST/Decl.cpp:4604: unsigned int clang::FieldDecl::getBitWidthValue() const: Assertion `isa&lt;ConstantExpr&gt;(getBitWidth())' failed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 81fc3add1e627c23b7270fe2739cdacc09063e54.

This breaks some LLDB tests, e.g.
SymbolFile/DWARF/x86/no_unique_address-with-bitfields.cpp:

lldb: ../llvm-project/clang/lib/AST/Decl.cpp:4604: unsigned int clang::FieldDecl::getBitWidthValue() const: Assertion `isa&lt;ConstantExpr&gt;(getBitWidth())' failed.
</pre>
</div>
</content>
</entry>
</feed>
