[Clang][NeonEmitter] emit ret decl first for -Wdeclaration-after-statement
authorNick Desaulniers <ndesaulniers@google.com>
Wed, 23 Mar 2022 16:30:50 +0000 (09:30 -0700)
committerNick Desaulniers <ndesaulniers@google.com>
Wed, 23 Mar 2022 16:40:43 +0000 (09:40 -0700)
commit5a2e56b70e2fa7ad0d82e54bc4c741b16f05e475
tree3c8417183cb74119d7634c3419895946d3b5312e
parent355f1c75aa66fc3d9bef897375f5e0979a55001d
[Clang][NeonEmitter] emit ret decl first for -Wdeclaration-after-statement

The generated arm_neon.h header isn't -Wdeclaration-after-statement
compliant when targeting -mbig-endian. Update the generator to declare
the return value, if any, first before any other arguments that might
need to be "reversed" from little endian to big.

Another approach would have been to try to ignore this warning in system
headers, though that might not be precise for tokens involved in macro
expansion. See also: https://reviews.llvm.org/D116833#3236209.

Link: https://github.com/ClangBuiltLinux/linux/issues/1603
Fixes: https://github.com/llvm/llvm-project/issues/54062

Reviewed By: DavidSpickett

Differential Revision: https://reviews.llvm.org/D122189
clang/test/CodeGen/aarch64-neon-ldst-one.c
clang/test/CodeGen/arm_neon_intrinsics.c
clang/test/Sema/arm-neon-decl-after-stmt.c [new file with mode: 0644]
clang/utils/TableGen/NeonEmitter.cpp