optimization/7714: inlining of function with inline assembler causes duplicate assembler lables

Loren Osborn linux_dr@yahoo.com
Tue Nov 26 11:16:00 GMT 2002


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view audit-trail


Here is the text of the file mentioned above... the filename
should be InlineLableBug.c:

================BEGIN InlineLableBug.c================
static inline void DoNothing()
{
        __asm__ (
                        "jmp   leave_fn\n\t"
                        "nop   \n"
                        "leave_fn:\n\t"
                        : // No Input Regs
                        : // No Output Regs
                        );
}

static void DoNothingOne()
{
        DoNothing();
}

static void DoNothingTwo()
{
        DoNothing();
}

static void DoNothingThree()
{
        DoNothing();
}

typedef void(*CVoidFunc)();
extern CVoidFunc FuncArray[];
extern void InitFuncArray();
#define NULL 0

extern CVoidFunc FuncArray[4];
void InitFuncArray()
{
        FuncArray[0] = DoNothingOne;
        FuncArray[1] = DoNothingTwo;
        FuncArray[2] = DoNothingThree;
        FuncArray[3] = NULL;
}
=================END InlineLableBug.c=================


Now how do I change the state of this bug back to "open"????

Thanks,

-Loren



More information about the Gcc-bugs mailing list