aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2017-05-05 22:36:06 +0000
committerTim Northover <tnorthover@apple.com>2017-05-05 22:36:06 +0000
commit23bcad226c564944d2155b027b9c9fe8a2591d05 (patch)
tree8119cddf0382e65ed1af0ec1ff2f662521389d96 /clang/lib/Frontend/CompilerInvocation.cpp
parentce03732ec85296f942ee6644596056ce5e577f89 (diff)
downloadllvm-23bcad226c564944d2155b027b9c9fe8a2591d05.zip
llvm-23bcad226c564944d2155b027b9c9fe8a2591d05.tar.gz
llvm-23bcad226c564944d2155b027b9c9fe8a2591d05.tar.bz2
AArch64: fix weird edge case in ABI.
It turns out there are some sort-of-but-not-quite empty structs that break all the rules. For example: struct SuperEmpty { int arr[0]; }; struct SortOfEmpty { struct SuperEmpty e; }; Both of these have sizeof == 0, even in C++ mode, for GCC compatibility. The first one also doesn't occupy a register when passed by value in GNU C++ mode, unlike everything else. On Darwin, we want to ignore the lot (and especially don't want to try to use an i0 as we were). llvm-svn: 302313
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions