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.