First Last Prev Next    No search results available
Details
: [llvmgcc] llvm-gcc incorrectly rejects some constant init...
Bug#: 487
: tools
: llvm-gcc
Status: RESOLVED
Resolution: FIXED
: All
: All
: 1.4
: P2
: normal
: 1.5

:
: compile-fail
:
:
  Show dependency tree - Show dependency graph
People
Reporter: Adam Warner <adam@consulting.net.nz>
Assigned To: Chris Lattner <sabre@nondot.org>

Attachments
Preprocessed code produced with gcc -pedantic -ansi -E (289.89 KB, text/plain)
2004-12-20 02:26, Adam Warner
Details


Note

You need to log in before you can comment on or make changes to this bug.

Related actions


Description:   Opened: 2004-12-20 02:00
I am attempting to build FreeType 2.1.9 with LLVM 1.4 and the
cfrontend-1.4.i686-redhat-linux-gnu.tar.gz compiler binary:

Reading specs from
/home/adam/t/llvm/cfrontend/x86/llvm-gcc/bin/../lib/gcc/i686-pc-linux-gnu/3.4-llvm/specs
Configured with: /home/vadve/criswell/release/llvm-gcc/configure
--prefix=/mounts/choi/disks/0/localhome/criswell/rel14/cfrontend/x86/llvm-gcc
--disable-threads --disable-nls --disable-shared --enable-languages=c,c++
Thread model: single
gcc version 3.4-llvm 20030924 (experimental)


Part way through the build this occurs:

 /home/adam/t/llvm/cfrontend/x86/llvm-gcc/bin/gcc -pedantic -ansi -c
-I/home/adam/t/t6/freetype-2.1.9/objs -I./builds/unix
-I/home/adam/t/t6/freetype-2.1.9/include -c -Wall -g -O2
-DFT_CONFIG_OPTION_SYSTEM_ZLIB -DDARWIN_NO_CARBON
"-DFT_CONFIG_CONFIG_H=<ftconfig.h>" -I/home/adam/t/t6/freetype-2.1.9/src/sfnt
/home/adam/t/t6/freetype-2.1.9/src/sfnt/sfnt.c -o
/home/adam/t/t6/freetype-2.1.9/objs/sfnt.oIn file included from
/home/adam/t/t6/freetype-2.1.9/src/sfnt/sfnt.c:22:
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c: In function
`tt_face_load_generic_header':

/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:597: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:597: error: (near
initialization for `header_fields[7].offset')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:597: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:597: error: (near
initialization for `header_fields[7]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:598: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:598: error: (near
initialization for `header_fields[8].offset')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:598: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:598: error: (near
initialization for `header_fields[8]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:599: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:599: error: (near
initialization for `header_fields[9].offset')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:599: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:599: error: (near
initialization for `header_fields[9]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:600: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:600: error: (near
initialization for `header_fields[10].offset')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:600: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:600: error: (near
initialization for `header_fields[10]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:601: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:601: error: (near
initialization for `header_fields[11]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:602: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:602: error: (near
initialization for `header_fields[12]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:603: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:603: error: (near
initialization for `header_fields[13]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:604: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:604: error: (near
initialization for `header_fields[14]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:605: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:605: error: (near
initialization for `header_fields[15]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:606: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:606: error: (near
initialization for `header_fields[16]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:607: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:607: error: (near
initialization for `header_fields[17]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:608: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:608: error: (near
initialization for `header_fields[18]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:609: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:609: error: (near
initialization for `header_fields[19]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:610: error: initializer element
is not constant
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:610: error: (near
initialization for `header_fields[20]')
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c: In function
`tt_face_load_metrics_header':

/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:986: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:986: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:987: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:987: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:988: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:988: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:989: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:989: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c: In function `tt_face_load_os2':

/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1319: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1319: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1320: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1320: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1321: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1321: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1322: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1322: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1323: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1323: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1324: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1324: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1325: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1325: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1326: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1326: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1327: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1327: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1328: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1328: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1333: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1333: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1334: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1334: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1335: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1335: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1336: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttload.c:1336: warning: initializer
element is not computable at load time
In file included from /home/adam/t/t6/freetype-2.1.9/src/sfnt/sfnt.c:28:
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttsbit.c: In function
`tt_face_load_sbit_strikes':

/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttsbit.c:421: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttsbit.c:421: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttsbit.c:422: warning: initializer
element is not computable at load time
/home/adam/t/t6/freetype-2.1.9/src/sfnt/ttsbit.c:422: warning: initializer
element is not computable at load time
make: *** [/home/adam/t/t6/freetype-2.1.9/objs/sfnt.lo] Error 1



I exported a custom path (giving the new gcc precedence):
export
PATH=/home/adam/t/llvm/Release/bin/:/home/adam/t/llvm/cfrontend/x86/llvm-gcc/bin/:$PATH

And used this configure invocation:
CC=/home/adam/t/llvm/cfrontend/x86/llvm-gcc/bin/gcc
CXX=/home/adam/t/llvm/cfrontend/x86/llvm-gcc/bin/g++ ./configure


I appended the -c flag to llvm-gcc and have confirmed that sfnt.o does not get
built. In both cases I first modified builds/unix/configure to match the gcc
build flags. That is I replaced:

if test "x$CC" = xgcc; then
  XX_CFLAGS="-Wall"
  XX_ANSIFLAGS="-pedantic -ansi"
else
  case "$host" in
  *-dec-osf*)
    CFLAGS=
    XX_CFLAGS="-std1 -g3"
    XX_ANSIFLAGS=
    ;;
  *)
    XX_CFLAGS=
    XX_ANSIFLAGS=
    ;;
  esac
fi


with:

  XX_CFLAGS="-Wall"
  XX_ANSIFLAGS="-pedantic -ansi -c"

and 

  XX_CFLAGS="-Wall"
  XX_ANSIFLAGS="-pedantic -ansi -E"

respectively. I will be attaching the preprocessed sfnt.o, 296848 bytes.

Regards,
Adam
------- Comment #1 From Adam Warner 2004-12-20 02:26:52 -------
Created an attachment (id=190) [details]
Preprocessed code produced with gcc -pedantic -ansi -E

Refer message thread at:
<http://mail.cs.uiuc.edu/pipermail/llvmdev/2004-December/002901.html>
------- Comment #2 From Adam Warner 2004-12-20 16:17:07 -------
Jeff Cohen writes:

I can reproduce the problem with just two lines:

   struct X { int a[2]; };
   int i = (int) &( ((struct X *)0) -> a[0]);

This compiles with gcc and fails with llvmgcc.
------- Comment #3 From Chris Lattner 2004-12-21 16:28:11 -------
I'll take a look at this when I get back from vacation on Jan 4th.  Sorry for
the delay.

Thanks for the bug report!

-Chris
------- Comment #4 From Chris Lattner 2005-01-02 22:18:56 -------
Fixed.  Patch here: 
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041227/022896.html 
 
Testcase here: 
Regression/CFrontend/2005-01-02-ConstantInits.c 
 
Thanks a lot for reporting this and to Jeff Cohen for reducing the testcase! 
 
-Chris 

First Last Prev Next    No search results available