[Bug 1270789] Re: gcc 4.8: "invalid expression as operand" in aarch64 inline asm

Kugan Vivekanandarajah kugan.vivekanandarajah at linaro.org
Thu Jan 23 01:43:09 UTC 2014


Seems to be an issue with alignment calculation in
aarch64_classify_address.

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.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.8 in Ubuntu.
https://bugs.launchpad.net/bugs/1270789

Title:
  gcc 4.8: "invalid expression as operand" in aarch64 inline asm

Status in Linaro GCC:
  In Progress
Status in “gcc-4.8” package in Ubuntu:
  New

Bug description:
  
  The attached pre-processed source fails with:

  # aarch64-linux-gnu-gcc -std=gnu99 -fgnu89-inline  -O -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict-prototypes malloc.i
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc-linaro/+bug/1270789/+subscriptions



More information about the foundations-bugs mailing list