[all-commits] [llvm/llvm-project] 0b7842: [CodeGen][ObjC] Include all referenced protocols i...

Hugo Melder via All-commits all-commits at lists.llvm.org
Tue Jul 15 05:43:03 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0b784269f16f0555d33e259f0b194ad4ad1a8e94
      https://github.com/llvm/llvm-project/commit/0b784269f16f0555d33e259f0b194ad4ad1a8e94
  Author: Hugo Melder <service at hugomelder.com>
  Date:   2025-07-15 (Tue, 15 Jul 2025)

  Changed paths:
    M clang/lib/CodeGen/CGObjCGNU.cpp
    A clang/test/CodeGenObjC/gnustep2-class-exts.m

  Log Message:
  -----------
  [CodeGen][ObjC] Include all referenced protocols in protocol list (#148827)

When constructing the protocol list in the class metadata generation
(`GenerateClass`), only the protocols from the base class are added but
not protocols declared in class extensions.

This is fixed by using `all_referenced_protocol_{begin, end}` instead of
`protocol_{begin, end}`, matching the behaviour on Apple platforms.

A unit test is included to check if all protocol metadata was emitted
and that no duplication occurs in the protocol list.

Fixes https://github.com/gnustep/libobjc2/issues/339

CC: @davidchisnall



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list