[LLVMbugs] [Bug 6795] New: clang/opt -O2 makes re2c crash on startup

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Apr 6 07:14:06 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=6795

           Summary: clang/opt -O2 makes re2c crash on startup
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: edwintorok at gmail.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=4647)
 --> (http://llvm.org/bugs/attachment.cgi?id=4647)
bugpoint-passinput

When compiling re2c with clang++ -O2 it crashes on startup like this:
#0  0x00000038ea66ae39 in std::locale::operator=(std::locale const&) () from
/usr/lib/libstdc++.so.6
#1  0x00000038ea66a37f in std::ios_base::_M_init() () from
/usr/lib/libstdc++.so.6
#2  0x00000038ea67b199 in std::basic_ios<char, std::char_traits<char>
>::init(std::basic_streambuf<char, std::char_traits<char
> >*) () from /usr/lib/libstdc++.so.6
#3  0x000000000041c349 in re2c::basic_ifstream_lc<char, std::char_traits<char>
>::basic_ifstream_lc() ()
#4  0x000000000041a99a in main () at main.cc:394

To reproduce: compile re2c with clang++ -O2, and run ./re2c foo

Small C++ testcase, crashes on startup with clang++ -O2, but not with clang++
-O1 or -O0:
#include <fstream>
using namespace std;
typedef unsigned int uint;
template<
    class _BaseStream>
class basic_fstream_lc
    : public _BaseStream
{
public:
    basic_fstream_lc()
    {
    }

    virtual ~basic_fstream_lc()
    {
    }

    uint get_line() const
    {
    }

protected:
    mutable void *mybuf;
};
class basic_ifstream_lc
    : public basic_fstream_lc<std::basic_istream<char> >
{
};
int main()
{
    class basic_ifstream_lc source;
}

Program received signal SIGSEGV, Segmentation fault.
0x0000003b3a475989 in *__GI___libc_free (mem=<value optimized out>) at
malloc.c:3724
3724    malloc.c: No such file or directory.
        in malloc.c
(gdb) bt
#0  0x0000003b3a475989 in *__GI___libc_free (mem=<value optimized out>) at
malloc.c:3724
#1  0x00000038ea6694bb in std::ios_base::~ios_base() () from
/usr/lib/libstdc++.so.6
#2  0x0000000000400c82 in main () at foo.cc:30

Attaching bugpoint reduced testcase:
*** Found miscompiling pass: -inline
Emitted bitcode to 'bugpoint-passinput.bc'

*** You can reproduce the problem with: opt bugpoint-passinput.bc -inline

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list