mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
scripts: Add "|" operator support to glibcpp's parsing
From the tests point of view, this is a necessary step for another patch [1] and allows parsing macros such as "#define A | B". Without it, a few tests [2] choke when the other patch [1] is applied: /src/glibc/scripts/../elf/elf.h:4167: error: uninterpretable macro token sequence: ( EF_ARC_MACH_MSK | EF_ARC_OSABI_MSK ) Traceback (most recent call last): File "/src/glibc/elf/tst-glibcelf.py", line 23, in <module> import glibcelf File "/src/glibc/scripts/glibcelf.py", line 226, in <module> _elf_h = _parse_elf_h() ^^^^^^^^^^^^^^ File "/src/glibc/scripts/glibcelf.py", line 223, in _parse_elf_h raise IOError('parse error in elf.h') OSError: parse error in elf.h [1] ARC: update definitions in elf/elf.h https://sourceware.org/pipermail/libc-alpha/2022-November/143503.html [2] tst-glibcelf, tst-relro-ldso, and tst-relro-libc Reviewed-by: Florian Weimer <fweimer@redhat.com> Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
This commit is contained in:
parent
227df6243a
commit
987f8647e8
@ -346,6 +346,7 @@ RE_SPLIT_INTEGER_SUFFIX = re.compile(r'([^ullULL]+)([ullULL]*)')
|
||||
BINARY_OPERATORS = {
|
||||
'+': operator.add,
|
||||
'<<': operator.lshift,
|
||||
'|': operator.or_,
|
||||
}
|
||||
|
||||
# Use the general-purpose dict type if it is order-preserving.
|
||||
|
@ -131,6 +131,7 @@ check_macro_eval('#define A 1', {'A': 1})
|
||||
check_macro_eval('#define A (1)', {'A': 1})
|
||||
check_macro_eval('#define A (1 + 1)', {'A': 2})
|
||||
check_macro_eval('#define A (1U << 31)', {'A': 1 << 31})
|
||||
check_macro_eval('#define A (1 | 2)', {'A': 1 | 2})
|
||||
check_macro_eval('''\
|
||||
#define A (B + 1)
|
||||
#define B 10
|
||||
|
Loading…
Reference in New Issue
Block a user