c/7361: Internal compiler error in reload_cse_simplify_operands, at reload1.c:8387
Thomas D. Dean
tomdean@asus.tddhome
Sat Jul 20 03:16:00 GMT 2002
>Number: 7361
>Category: c
>Synopsis: Internal compiler error in reload_cse_simplify_operands, at reload1.c:8387
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jul 20 03:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Thomas D. Dean
>Release: 3.0.4 m68hc1x-20020616
>Organization:
Self
>Environment:
System: FreeBSD asus 4.6-STABLE FreeBSD 4.6-STABLE #6: Fri Jul 5 11:18:10 PDT 2002 root@asus:/usr/src/sys/compile/ASUS i386
host: i386-unknown-freebsd4.6
build: i386-unknown-freebsd4.6
target: m6811-unknown-none
configured with: ./configure --target=m6811-elf --program-prefix=m6811-elf- --enable-languages=c,c++
>Description:
When compiling, processing stops with "Internal Error". The command
line below was copied from the output of 'make'. Executing the
command on the preprocessed source repeats the problem.
>How-To-Repeat:
m6811-elf-gcc -S -g -O3 -msoft-reg-count=8 -DSOFT_REG_COUNT=8 -fshort-enums -Wall -c essai.c
essai.c: In function `task0':
essai.c:154: Insn does not satisfy its constraints:
(insn 27 25 28 (set (mem:QI (const_int 4099 [0x1003]) 0)
(and:QI (mem:QI (const_int 4099 [0x1003]) 0)
(const_int 252 [0xfc]))) 75 {*andqi3_const} (nil)
(nil))
essai.c:154: Internal compiler error in reload_cse_simplify_operands, at reload1.c:8387
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
Pre-processed source:
# 5 "essai.c"
# 1 "nanoK.h" 1
# 26 "nanoK.h"
# 1 "type_def.h" 1
# 26 "type_def.h"
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef signed char s8;
typedef signed short s16;
typedef signed int s32;
# 27 "nanoK.h" 2
# 45 "nanoK.h"
u8 nanoK_init(void);
# 56 "nanoK.h"
u8 nanoK_task_init(u8 t, void (*fct)(void), u8* stk, u16 stk_len);
# 65 "nanoK.h"
u8 nanoK_aggregate_task(u8 t1, u8 t2);
# 74 "nanoK.h"
inline void nanoK_task_terminate(void);
# 84 "nanoK.h"
inline u8 nanoK_task_reset(u8 t);
# 98 "nanoK.h"
void nanoK_hook_init(void (*fct)(void), u8* stk, u16 stk_len);
void nanoK_start(void);
void nanoK_kernel(void);
typedef struct {
struct {
u8 CCR;
u16 D;
u16 X;
u16 Y;
u16 PC;
u16 SP;
} hard_regs;
struct {
u16 r[8];
u16 tmp;
u16 z;
u16 xy;
u16 frame;
} soft_regs;
} t_context;
# 6 "essai.c" 2
# 1 "vectors.h" 1
# 26 "vectors.h"
# 1 "type_def.h" 1
# 27 "vectors.h" 2
typedef enum {
Sci,
Spi,
Pulse_acc_input,
Pulse_acc_overf,
Timer_overf,
Output_compare_5,
Output_compare_4,
Output_compare_3,
Output_compare_2,
Output_compare_1,
Input_capture_3,
Input_capture_2,
Input_capture_1,
Real_time,
Irq,
Xirq,
Swi,
Illegal,
Cop_fail,
Cop_clock_fail
} t_vector_num;
extern u8 VECTORS_init(void);
extern void VECTORS_set(t_vector_num n, void (*f)(void));
# 7 "essai.c" 2
# 23 "essai.c"
extern u8 run_task_num;
# 37 "essai.c"
static u16 compteur;
static u8 stk0[50];
static void task0(void)
{
while(1) {
(*((u8*)0x1003)) &= ~0x03;
(*((u8*)0x1003)) |= 0x00;
nanoK_task_terminate();
}
}
static u8 stk1[50];
static void task1(void)
{
while(1) {
(*((u8*)0x1003)) &= ~0x02;
(*((u8*)0x1003)) |= 0x01;
nanoK_task_terminate();
}
}
static u8 stk2[50];
static void task2(void)
{
while(1) {
(*((u8*)0x1003)) &= ~0x01;
(*((u8*)0x1003)) |= 0x02;
nanoK_task_terminate();
}
}
static u8 stk3[50];
static void task3(void)
{
while(1) {
(*((u8*)0x1003)) &= ~0x00;
(*((u8*)0x1003)) |= 0x03;
nanoK_task_terminate();
}
}
static u8 hook_stk[50];
static void hook(void)
{
compteur++;
(*((u8*)0x1025)) |= 0x40;
}
typedef void(*JMP)(void);
typedef struct t_vectors_table {
u8 opcode;
JMP f;
} t_vectors_table;
int main(void)
{
(*((u8*)0x1007)) = 0xf3;
nanoK_init();
VECTORS_init();
compteur = 0;
nanoK_task_init(0, task0, stk0, sizeof(stk0));
nanoK_task_init(1, task1, stk1, sizeof(stk1));
nanoK_task_init(2, task2, stk2, sizeof(stk2));
nanoK_task_init(3, task3, stk3, sizeof(stk3));
nanoK_hook_init(hook, hook_stk, sizeof(hook_stk));
VECTORS_set(Real_time, nanoK_kernel);
(*((u8*)0x1026)) |= 0x03;
(*((u8*)0x1024)) |= 0x43;
nanoK_start();
return 0;
}
void __premain() {
return;
}
>Fix:
A workaround is unknown at this time. The project is not critical.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-prs
mailing list