diff options
author | Cupertino Miranda <cupertino.miranda@oracle.com> | 2023-11-10 14:02:30 +0000 |
---|---|---|
committer | Cupertino Miranda <cupertino.miranda@oracle.com> | 2023-11-28 12:56:22 +0000 |
commit | 099b15e2bdb78c21ad3f9001af77072413f4e159 (patch) | |
tree | 74157c775c175eac3aed309a16a613f75000e864 /libsanitizer/sanitizer_common | |
parent | faf5b148588bd7fbb60ec669aefa704044037cdc (diff) | |
download | gcc-099b15e2bdb78c21ad3f9001af77072413f4e159.zip gcc-099b15e2bdb78c21ad3f9001af77072413f4e159.tar.gz gcc-099b15e2bdb78c21ad3f9001af77072413f4e159.tar.bz2 |
Fixed problem with BTF defining smaller enums.
This patch fixes a BTF, which would become invalid when having
smaller then 4 byte definitions of enums.
For example, when using the __attribute__((mode(byte))) in the enum
definition.
Two problems were identified:
- it would incorrectly create an entry for enum64 when the size of the
enum was different then 4.
- it would allocate less then 4 bytes for the value entry in BTF, in
case the type was smaller.
BTF generated was validated against clang.
gcc/ChangeLog:
* btfout.cc (btf_calc_num_vbytes): Fixed logic for enum64.
(btf_asm_enum_const): Corrected logic for enum64 and smaller
than 4 bytes values.
gcc/testsuite/ChangeLog:
* gcc.dg/debug/btf/btf-enum-small.c: Added test.
Diffstat (limited to 'libsanitizer/sanitizer_common')
0 files changed, 0 insertions, 0 deletions