This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/16931] New: Segmentation Fault when template function name is passed in place of function instance
- From: "in4tunio at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Aug 2004 10:09:06 -0000
- Subject: [Bug c++/16931] New: Segmentation Fault when template function name is passed in place of function instance
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I make an incorrect call to accumulate, where the last argument should have been
std::logical_and<bool>(), instead I wrongly pass std::logical_and. The result is
that the compiler stops with segmentation fault.
bool AdjacentCountsOfOppositeSign(const Minmax::ExtremaData& e) {
vector<int> adjCounts;
adjCounts.reserve(e.size()-1);
std::transform(e.begin(), e.end()-1, e.begin()+1,
std::back_inserter(adjCounts),
CountDiffSign());
return std::accumulate(adjCounts.begin(), adjCounts.end(), std::logical_and);
}
--------------------------------------------
Details
Version: gcc version 3.2 (mingw special 20020817-1)
Configuration:
Reading specs from D:/Program Files/Dev-Cpp/Bin/../lib/gcc-lib/mingw32/3.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as
--host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls
--enable-languages=f77,c++,objc,ada --disable-win32-registry --disable-shared
Thread model: win32
GCC Options/Command:
g++.exe -D__DEBUG__ -c ../src/minmaxTest.cpp -o ../src/minmaxTest.o
-I"D:/Program Files/Dev-Cpp/include/c++" -I"D:/Program
Files/Dev-Cpp/include/c++/mingw32" -I"D:/Program
Files/Dev-Cpp/include/c++/backward" -I"D:/Program Files/Dev-Cpp/include"
-D_DEBUG -Wall -v -g3
Compiler Output:
D:\Program Files\Dev-Cpp\Bin\..\lib\gcc-lib\mingw32\3.2\cc1plus.exe -v
-ID:/Program Files/Dev-Cpp/include/c++ -ID:/Program
Files/Dev-Cpp/include/c++/mingw32 -ID:/Program
Files/Dev-Cpp/include/c++/backward -ID:/Program Files/Dev-Cpp/include
-I../include -I../../IO/include -I../../Library/include -I../../driver/include
-I../../External/Blitz++-0.7 -I../../Library/include/matlab -iprefix D:\Program
Files\Dev-Cpp\Bin/../lib/gcc-lib/mingw32/3.2/ -D__GNUC__=3 -D__GNUC_MINOR__=2
-D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D_WIN32 -D__WIN32 -D__WIN32__
-DWIN32 -D__MINGW32__ -D__MSVCRT__ -DWINNT -D_X86_=1 -D_WIN32 -D__WIN32
-D__WIN32__ -D__WIN32__ -D__MINGW32__ -D__MSVCRT__ -D__WINNT__ -D_X86_=1
-D__WIN32 -D__WINNT -Asystem=winnt -D__NO_INLINE__ -D__STDC_HOSTED__=1 -dD
-Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i586__
-D__tune_pentium__ -D__stdcall=__attribute__((__stdcall__))
-D__cdecl=__attribute__((__cdecl__)) -D__fastcall=__attribute__((__fastcall__))
-D_stdcall=__attribute__((__stdcall__)) -D_cdecl=__attribute__((__cdecl__))
-D_fastcall=__attribute__((__fastcall__)) -D__declspec(x)=__attribute__((x))
-D__DEBUG__ -D_DEBUG ../src/minmaxTest.cpp -D__GNUG__=3 -D__DEPRECATED
-D__EXCEPTIONS -quiet -dumpbase minmaxTest.cpp -g3 -Wall -version -o
D:\DOCUME~1\amit\LOCALS~1\Temp/ccqcbaaa.s
GNU CPP version 3.2 (mingw special 20020817-1) (cpplib) (80386, BSD syntax)
GNU C++ version 3.2 (mingw special 20020817-1) (mingw32)
compiled by GNU C version 3.2.
ignoring nonexistent directory "D:/Program Files/Dev-Cpp/include/c++/3.2"
ignoring nonexistent directory "D:/Program Files/Dev-Cpp/include/c++/3.2/mingw32"
ignoring nonexistent directory "D:/Program Files/Dev-Cpp/include/c++/3.2/backward"
ignoring nonexistent directory "D:/Program Files/Dev-Cpp/mingw32/include"
ignoring nonexistent directory
"/mingw/lib/gcc-lib/mingw32/3.2/../../../../include/c++/3.2"
ignoring nonexistent directory
"/mingw/lib/gcc-lib/mingw32/3.2/../../../../include/c++/3.2/mingw32"
ignoring nonexistent directory
"/mingw/lib/gcc-lib/mingw32/3.2/../../../../include/c++/3.2/backward"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/../../../../include"
ignoring nonexistent directory "/mingw/include"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/include"
ignoring nonexistent directory
"/mingw/lib/gcc-lib/mingw32/3.2/../../../../mingw32/include"
ignoring nonexistent directory "/usr/local/mingw32/include"
...
...
../src/minmaxTest.cpp: In function `bool AdjacentCountsOfOppositeSign(const
Minmax::ExtremaData&)':
../src/minmaxTest.cpp:120: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make.exe: *** [../src/minmaxTest.o] Error 1
Execution terminated
--
Summary: Segmentation Fault when template function name is passed
in place of function instance
Product: gcc
Version: 3.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: in4tunio at yahoo dot com
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16931