The following code shows the error...

#include <vector>
#include <list>
#include <map>
#include <iostream>
#include <string>

using namespace std;

class foo {
public: 
    vector <string> bar (vector<string> s) {
         //nothing returned but g++ never complains
    }
};

int main()
{
    string strs[] = {"a", "b"};
    foo f;
    f.bar(vector<string>(strs, strs + 2));
}

------------------------------
[EMAIL PROTECTED]:~/working/TC$ g++ -o g_bug g_bug.cpp
[EMAIL PROTECTED]:~/working/TC$ ./g_bug
Segmentation fault
------------------------------

#include <vector>
#include <list>
#include <map>
#include <iostream>
#include <string>

using namespace std;

class foo {
public: 
    vector <string> bar (vector<string> s) {
        return vector<string>(); // fixes problem!?
    }
};

int main()
{
    string strs[] = {"a", "b"};
    foo f;
    f.bar(vector<string>(strs, strs + 2));
}
-----------------------------
[EMAIL PROTECTED]:~/working/TC$ g++ -o g_bug g_bug.cpp
[EMAIL PROTECTED]:~/working/TC$ ./g_bug
-----------------------------

Note that with -Wall it warn, but will not report any error...
---------------------------------
[EMAIL PROTECTED]:~/working/TC$ g++ -Wall -o g_bug g_bug.cpp
g_bug.cpp: In member function ‘std::vector<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > > > foo::bar(std::vector<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >)’:
g_bug.cpp:12: warning: no return statement in function returning non-void
g_bug.cpp:12: warning: control reaches end of non-void function
--------------------------------------------

I am using Ubuntu dapper with their version of gcc which I would assume to be
pretty up to date. Sorry if this is a repeat, I didn't quite know how to search
for this particular bug since it occurs at run time.


-- 
           Summary: Seg fault on member function that does not return a val
           Product: gcc
           Version: 4.0.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: CyrusOmega at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32832

Reply via email to