[LLVMbugs] [Bug 2533] New: Code gen for x86_64 broken, example included
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Tue Jul 8 14:20:39 PDT 2008
http://llvm.org/bugs/show_bug.cgi?id=2533
Summary: Code gen for x86_64 broken, example included
Product: new-bugs
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Keywords: ABI, miscompilation
Severity: major
Priority: P2
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: thomas.knauth at gmx.de
CC: llvmbugs at cs.uiuc.edu
#include <stdio.h>
#include <inttypes.h>
void dummy(const char* a) {}
typedef struct {
const char *name;
int flags;
union {
void (*func_arg)(const char *); //FIXME passing error code as int return
would be nicer then exit() in the func
} u;
} OptionDef;
const OptionDef options[] = {
/* main options */
{ "a", 0, {dummy} },
{ "b", 0, {dummy} },
{ 0, },
};
int main(int argc, char **argv)
{
const OptionDef* po;
for (po=options; po->name!=0; po++) {
printf("%s\n", po->name);
}
return 0;
}
This code should iterate over all elements in 'options'. The code generated
with llvm-gcc (2.3 stable) however, does not do this. When compiled with gcc,
everything works as expected. On x86_32, llvm-gcc generates correct code.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list