[all-commits] [llvm/llvm-project] a27f40: [X86_64] Fix empty field error in vaarg of C++. (#...
Longsheng Mou via All-commits
all-commits at lists.llvm.org
Mon Aug 12 20:35:45 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: a27f40e5d9636b0853e8de0b95d72261f8d34696
https://github.com/llvm/llvm-project/commit/a27f40e5d9636b0853e8de0b95d72261f8d34696
Author: Longsheng Mou <moulongsheng at huawei.com>
Date: 2024-08-13 (Tue, 13 Aug 2024)
Changed paths:
M clang/lib/CodeGen/Targets/X86.cpp
M clang/test/CodeGenCXX/x86_64-vaarg.cpp
Log Message:
-----------
[X86_64] Fix empty field error in vaarg of C++. (#101639)
Such struct types:
```
struct {
struct{} a;
long long b;
};
stuct {
struct{} a;
double b;
};
```
For such structures, Lo is NoClass and Hi is Integer/SSE. And when this
structure argument is passed, the high part is passed at offset 8 in
memory. So we should do special handling for these types in
EmitVAArg.Fix https://github.com/llvm/llvm-project/issues/79790 and fix
https://github.com/llvm/llvm-project/issues/86371.
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