[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/27129] New: [aarch64] broken logical immediate operations in ND
From: |
d_garry at mail dot ru |
Subject: |
[Bug gas/27129] New: [aarch64] broken logical immediate operations in NDEBUG builds |
Date: |
Wed, 30 Dec 2020 09:01:28 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=27129
Bug ID: 27129
Summary: [aarch64] broken logical immediate operations in
NDEBUG builds
Product: binutils
Version: 2.36 (HEAD)
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: d_garry at mail dot ru
Target Milestone: ---
When -NDEBUG is defined during build, it transforms "assert(anything)" into
something like "(void*)(0)" - at least in Linux, as defined in <assert.h>:
ifdef NDEBUG
...
# define assert(expr) (__ASSERT_VOID_CAST (0))
...
endif
Thus in case when any function is about to be called from assert, it will be
silently ignored. Example (see opcodes/aarch64-asm.c:555):
/* The constraint check should have guaranteed this wouldn't happen. */
assert (aarch64_logical_immediate_p (imm, esize, &value));
If -NDEBUG-ged, aarch64_logical_immediate_p() simply won't be called, making
aarch64 logical operations (e.g. AND opcode) work incorrectly.
Seems that regression occured in commit 535b785fb0.
--
You are receiving this mail because:
You are on the CC list for the bug.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug gas/27129] New: [aarch64] broken logical immediate operations in NDEBUG builds,
d_garry at mail dot ru <=