[all-commits] [llvm/llvm-project] 283db5: BPF: fix enum value 0 issue for __builtin_preserve...
yonghong-song via All-commits
all-commits at lists.llvm.org
Mon Mar 1 10:24:07 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 283db5f0837d55f91242812003adf6e189ba743e
https://github.com/llvm/llvm-project/commit/283db5f0837d55f91242812003adf6e189ba743e
Author: Yonghong Song <yhs at fb.com>
Date: 2021-03-01 (Mon, 01 Mar 2021)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGen/builtins-bpf-preserve-field-info-4.c
Log Message:
-----------
BPF: fix enum value 0 issue for __builtin_preserve_enum_value()
Lorenz Bauer reported that the following code will have
compilation error for bpf target:
enum e { TWO };
bpf_core_enum_value_exists(enum e, TWO);
The clang emitted the following error message:
__builtin_preserve_enum_value argument 1 invalid
In SemaChecking, an expression like "*(enum NAME)1" will have
cast kind CK_IntegralToPointer, but "*(enum NAME)0" will have
cast kind CK_NullToPointer. Current implementation only permits
CK_IntegralToPointer, missing enum value 0 case.
This patch permits CK_NullToPointer cast kind and
the above test case can pass now.
Differential Revision: https://reviews.llvm.org/D97659
More information about the All-commits
mailing list