[Bug c/30483] New: Internal compiler error with inline volatile assembly on AVR
richard at vems dot co dot nz
gcc-bugzilla@gcc.gnu.org
Tue Jan 16 11:18:00 GMT 2007
I was reworking an existing AVR application for C89 compatibility, and while
doing so, found an internal compiler error while dealing with inline assembly.
I have taken the offending function and trimmed the code to a minimum for a
test.
Output is as follows:
test.c: In function 'spi_manual_send_ass_GCC_BUGGY':
test.c:22: internal compiler error: in ptrreg_to_str, at config/avr/avr.c:1009
Please submit a full bug report,
with preprocessed source if appropriate.
The preprocessed source of test.i is appended:
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "test.c"
typedef unsigned char uint8_t;
__inline__ uint8_t spi_manual_send_ass_GCC_BUGGY( uint8_t dat )
{
uint8_t pb;
__asm__ volatile (
"\n"
"nop \n\t"
"ori %a1,8 \n\t"
"out 0x05,%a1 \n\t"
: "=&d" (dat)
: "d" (pb)
);
return pb;
}
int main() {
uint8_t dat = 0;
uint8_t result = 0;
result = spi_manual_send_ass_GCC_BUGGY(dat);
return 0;
}
--
Summary: Internal compiler error with inline volatile assembly on
AVR
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: richard at vems dot co dot nz
GCC build triplet: i586-suse-linux
GCC host triplet: i586-suse-linux
GCC target triplet: avr-unknown-unknown
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30483
More information about the Gcc-bugs
mailing list