[all-commits] [llvm/llvm-project] e9c2e0: [AArch64] Match GCC behaviour for zero-size struct...

Oliver Stannard via All-commits all-commits at lists.llvm.org
Wed Jan 29 07:03:02 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e9c2e0acd747b7b5260cf022233fa9b5336d2d30
      https://github.com/llvm/llvm-project/commit/e9c2e0acd747b7b5260cf022233fa9b5336d2d30
  Author: Oliver Stannard <oliver.stannard at arm.com>
  Date:   2025-01-29 (Wed, 29 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/Targets/AArch64.cpp
    M clang/test/CodeGen/AArch64/args.cpp

  Log Message:
  -----------
  [AArch64] Match GCC behaviour for zero-size structs (#124760)

We had a test claiming that this empty struct type consumes a register
slot when passing it to a function with GCC, but that does not appear to
be the case, at least with GCC versions going back to 4.8.

This also caused a miscompilation when passing one of these structs to a
variadic function, but it turned out that our implementation of `va_arg`
matches GCC's ABI, so the one change fixes both bugs.



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