gcc 4.8: "invalid expression as operand" in aarch64 inline asm
Bug #1270789 reported by
Will Newton
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GCC |
Fix Released
|
Undecided
|
Kugan Vivekanandarajah | ||
gcc |
Fix Released
|
Medium
|
|||
gcc-4.8 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
The attached pre-processed source fails with:
# aarch64-
malloc.c: In function ‘__libc_mallopt’:
malloc.c:4761:16: error: invalid 'asm': invalid expression as operand
Splitting this inline asm out into a smaller testcase does not seem to reproduce the issue. It's possible this is a bug in the source file, but it's not clear from gcc's output what the problem is.
Related branches
Changed in gcc-linaro: | |
assignee: | nobody → Kugan Vivekanandarajah (kugan-vivekanandarajah) |
Changed in gcc-linaro: | |
status: | New → In Progress |
Changed in gcc: | |
importance: | Unknown → Medium |
status: | Unknown → Fix Released |
To post a comment you must log in.
Seems to be an issue with alignment calculation in classify_ address.
aarch64_
for rtl of the form (lo_sum:DI (reg/f:DI 132)
(symbol_ref:DI ("*.LANCHOR4") [flags 0x182])) we are currently
calculating align of 8bits and due to this the following statement
returns false. This causes output_addr_const (in gcc/final.c) to fail.
return ((INTVAL (offs) & (ref_size - 1)) == 0
&& ((align / BITS_PER_UNIT) & (ref_size - 1)) == 0);
AFIK, align of 8bits is not correct here.