This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/16931] New: Segmentation Fault when template function name is passed in place of function instance


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]