Am 09.03.2010 17:41, schrieb Andrew Haley:
On 03/09/2010 04:30 PM, Thomas Martitz wrote:
EABI IIRC only mentions changed rules for passing 64bit types. This call
should have been the same with 4.4.3. It eventually is if the parameters
are in a different order.
If this is really a gcc bug, how should we proceed? I assume a bug
report on bugzilla?
This is very strange. Can you make a self-contained source file that shows
the problem on its own? We need to be able to try it. It doesn't have to
run, we just have to see the source it generates.
Andrew.
I tried, but the following code doesn't show this problem :(
-----
#define NULL (void*)0
typedef signed short int16_t;
typedef unsigned char uint8_t;
void foo(const int last, int16_t * block,
uint8_t * dest, const int stride);
int main(void)
{
const int a = 2, d = 3;
int16_t *b = NULL;
uint8_t *c = NULL;
foo(a,b,c,d);
return 0;
}
-----
compiled with arm-elf-eabi-gcc arm-elf-eabi-gcc -O0 -c -W -Wall -Wundef
-nostdlib -ffreestanding -Wstrict-prototypes -pipe -mcpu=arm9tdmi
-fomit-frame-pointer -Wno-pointer-sign -fno-strict-aliasing
-Wno-override-init -O0 -c test-arm.c
(that is the rockbox command line, stripped from a bunch of -I and -D)
Best regards.