[LLVMbugs] [Bug 8538] New: clang with -O3 optimization level redefines functions from the included headers

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Nov 3 02:18:26 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=8538

           Summary: clang with -O3 optimization level redefines functions
                    from the included headers
           Product: clang
           Version: 2.7
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: compile-fail
          Severity: normal
          Priority: P
         Component: LLVM Codegen
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: xinfinity_a at yahoo.com
                CC: llvmbugs at cs.uiuc.edu


Overview: 
Compile time errors "multiple definition of ... " for a number of functions
from the included headers (stdio.h, stdlib.h, math.h etc) , when compiling the
perlbench benchmark from SPEC CPU 2006 with clang -O3. In the LLVM IR [obtained
with -S -emit-llvm], the functions are already redefined in all the files *.ll
generated from the C source files in perlbench.

Steps to Reproduce:
1) Install SPEC CPU 2006
2) Use the attached config file (llvm.cfg) to build and run the benchmark: in
this file, clang is specified as the compiler in use and the optimization level
is O3
   runspec  --size test --tune base --noreportable --config llvm.cfg
400.perlbench

Actual Results: 
The benchmark cannot be compiled, the errors are in make.err file
I have tried also passing the option -std=  with c98, c99, gnu99 and I got the
same errors.

Expected Results: 
The application should successfully build and run. I tested the same benchmark
with optimization level O0 and it compiled and run correctly.

Build Date & Platform:
I have tested the released version 2.7.

I have installed LLVM and clang from sources with --enable-optimized and
--enable-assertions options.

I have a PC with Intel(R) Xeon(R) CPU on 64 bits and I am using Ubuntu 10.04
LTS - the Lucid Lynx. 

Additional Builds and Platforms: 
The bug appears in version 2.8 as well as in the version from the svn
repository: 29 Oct 2010 10:47AM. 

Additional Information: 
I attach the generated *.ll files: the ones generated with clang -O0 (which run
correctly) and the ones generated with -O3 (which contain multiple
definitions). Also the make.err file generated by the SPEC suite, containing
the errors, and the config file llvm.cfg I have used. I have changed only the
optimization level to obtain these two different sets of files.

The original files are available in SPEC CPU 2006 and the benchmark causing
problems is perlbench.

-- 
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