[all-commits] [llvm/llvm-project] 4461b6: [X86_32][C++] fix 0 sized struct case in vaarg. (#...

Longsheng Mou via All-commits all-commits at lists.llvm.org
Thu Aug 1 18:21:10 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4461b69022ebd43350f560d4643ba6f373d891b7
      https://github.com/llvm/llvm-project/commit/4461b69022ebd43350f560d4643ba6f373d891b7
  Author: Longsheng Mou <moulongsheng at huawei.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/test/CodeGenCXX/regparm.cpp
    M clang/test/CodeGenCXX/x86_32-vaarg.cpp

  Log Message:
  -----------
  [X86_32][C++] fix 0 sized struct case in vaarg. (#86388)

struct SuperEmpty { struct{ int a[0];} b;};
Such 0 sized structs in c++ mode can not be ignored in i386 for that c++
fields are never empty.But when EmitVAArg, its size is 0, so that
va_list not increase.Maybe we can just Ignore this kind of arguments,
like X86_64 did. Fix #86385.



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