From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26752 invoked by alias); 10 Jul 2009 21:09:20 -0000 Received: (qmail 26691 invoked by uid 48); 10 Jul 2009 21:08:58 -0000 Date: Fri, 10 Jul 2009 21:09:00 -0000 Subject: [Bug pch/40715] New: SPU compiler does not work properly with precompiled headers X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ryan dot sammartino at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg00896.txt.bz2 The SPU compiler does not work properly with precompiled headers. $ cat pch.h #include $ cat test.cpp vec_float4 add(vec_float4 a, vec_float4 b) { return spu_add(a, b); } $ /opt/cell/toolchain/bin/spu-g++ -O3 pch.h -o pch.h.gch $ /opt/cell/toolchain/bin/spu-g++ -O3 -include pch.h -S test.cpp test.cpp: In function 'float __vector__ add(float __vector__, float __vector__)': test.cpp:3: error: insufficient arguments to overloaded function spu_add test.cpp:4: confused by earlier errors, bailing out However, if I delete pch.h.gch: $ rm -f pch.h.gch $ /opt/cell/toolchain/bin/spu-g++ -O3 -include pch.h -S test.cpp it compiles as expected. This behaviour is observed in: $ /opt/cell/toolchain/bin/spu-g++ -v Using built-in specs. Target: spu Configured with: ../configure --prefix=/opt/cell/toolchain --disable-shared --disable-nls --disable-threads --disable-checking --with-headers --enable-version-specific-runtime-libs --disable-libssp --enable-languages=c,c++ --with-system-zlib --with-newlib --program-prefix=spu- --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=spu : (reconfigured) ../configure --prefix=/opt/cell/toolchain --disable-shared --disable-nls --disable-threads --disable-checking --with-headers --enable-version-specific-runtime-libs --disable-libssp --enable-languages=c,c++ --with-system-zlib --with-newlib --program-prefix=spu- --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=spu Thread model: single gcc version 4.4.0 (GCC) as well as $ spu-g++ -v Using built-in specs. Target: spu Configured with: ../toolchain/gcc/configure --prefix=/usr/lib/cell/toolchain --libexecdir=/usr/lib/cell/toolchain/lib --mandir=/usr/lib/cell/toolchain/man --infodir=/usr/lib/cell/toolchain/info --with-sysroot=/usr/lib/cell/sysroot --disable-shared --disable-nls --disable-threads --disable-checking --with-headers --enable-version-specific-runtime-libs --disable-libssp --enable-languages=c,c++,fortran --with-system-zlib --with-newlib --program-prefix=spu- --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=spu Thread model: single gcc version 4.1.1 though the output is different with 4.1.1: $ spu-g++ -O3 -include pch.h -S test.cpp test.cpp: In function 'float __vector__ add(float __vector__, float __vector__)': test.cpp:3: error: no matching function for call to 'spu_add(float __vector__&, float __vector__&)' /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:818: note: candidates are: unsigned int __vector__ spu_add(unsigned int __vector__, unsigned int __vector__) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:823: note: int __vector__ spu_add(int __vector__, int __vector__) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:828: note: short unsigned int __vector__ spu_add(short unsigned int __vector__, short unsigned int __vector__) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:833: note: short int __vector__ spu_add(short int __vector__, short int __vector__) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:838: note: float __vector__ spu_add(float __vector__, float __vector__) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:843: note: double __vector__ spu_add(double __vector__, double __vector__) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:848: note: short unsigned int __vector__ spu_add(short unsigned int __vector__, short unsigned int) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:853: note: short int __vector__ spu_add(short int __vector__, short int) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:858: note: unsigned int __vector__ spu_add(unsigned int __vector__, unsigned int) /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include/spu_internals.h:863: note: int __vector__ spu_add(int __vector__, int) test.cpp:4: confused by earlier errors, bailing out -- Summary: SPU compiler does not work properly with precompiled headers Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: pch AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ryan dot sammartino at gmail dot com GCC build triplet: x86_64-linux-gnu GCC host triplet: x86_64-linux-gnu GCC target triplet: spu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40715