diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-05-29 14:27:58 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2023-05-29 14:28:18 +0000 |
commit | 8792c03886d9e6df10fbac825819603dc059c7ea (patch) | |
tree | bbae20f4e4e3bf4b23425ced4478c3694123f17c /share/man/man4/man4.i386/pnpbios.4 | |
parent | aa61cff4249c92689d7a1f15db49d65d082184cb (diff) | |
download | src-8792c03886d9e6df10fbac825819603dc059c7ea.tar.gz src-8792c03886d9e6df10fbac825819603dc059c7ea.zip |
Apply clang fixes for crashes compiling ARM/AArch64 CRC intrinsics
Merge commit 069ecd0c6e2c from llvm-project (by Fangrui Song):
[ARM] Check target feature support for __builtin_arm_crc*
`__builtin_arm_crc*` requires the target feature crc which is available on armv8
and above. Calling the fuctions for armv7 leads to a SelectionDAG crash.
```
% clang -c --target=armv7-unknown-linux-gnueabi -c a.c
fatal error: error in backend: Cannot select: intrinsic %llvm.arm.crc32b
PLEASE submit a bug report to ...
```
Add `TARGET_BUILTIN` and define required features for these builtins to
report an error in `CodeGenFunction::checkTargetFeatures`. The problem is quite widespread.
I will add `TARGET_BUILTIN` for more builtins later.
Fix https://github.com/llvm/llvm-project/issues/57802
Differential Revision: https://reviews.llvm.org/D134127
Merge commit b2d7a0dcf1ff from llvm-project (by Fangrui Song):
[AArch64] Check target feature support for __builtin_arm_crc*
This is the AArch64 counterpart of D134127.
Daniel Kiss will change more `BUILTIN` to `TARGET_BUILTIN`.
Fix #57802
Note that programs attempting to use ARM/AArch64 CRC intrinsics, when
they are not supported by the targeted CPU, will still receive a regular
compilation error (instead of a fatal backend error) similar to:
7zCrc.c:4:10: error: '__builtin_arm_crc32b' needs target feature crc
return __builtin_arm_crc32b(a, b);
^
Reported by: Alastair Hogge <agh@riseup.net>
PR: 271624
MFC after: 3 days
Diffstat (limited to 'share/man/man4/man4.i386/pnpbios.4')
0 files changed, 0 insertions, 0 deletions