[cfe-dev] Crash with stdlibc++ but not with libc++

Navreet Gill navreet.s.gill at gmail.com
Thu Jan 3 13:29:05 PST 2013


Not sure where to report this... so I apologize if this is not the right
place.

When I build and run this simple program with gcc, it works.  It also works
with clang and libc++, but it fails with clang and stdlibc++.  Is clang +
stdlibc++ a supported combination?

#include <thread>
#include <iostream>

int main()
{
    auto hello_world = [] () { std::cout << "Hello world" << std::endl; };

    std::thread thr(hello_world);
    thr.join();

    return 0;
}

$ g++ -std=c++11 hw.cpp -lpthread && ./a.out
Hello world

$ clang++ -stdlib=libc++ -std=c++11 hw.cpp -lpthread && ./a.out
Hello world

$ clang++ -std=c++11 hw.cpp -lpthread && ./a.out

pure virtual method called
terminate called without an active exception
Aborted (core dumped)


I am on Ubuntu 12.10 with a PPA that built clang 3.2, here are my paths:


$ clang++ -std=c++11 -v -x c++ /dev/null -fsyntax-only

Ubuntu clang version 3.2-9 (tags/RELEASE_32/final) (based on LLVM 3.2)

Target: x86_64-pc-linux-gnu

Thread model: posix

 "/usr/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -fsyntax-only
-disable-free -disable-llvm-verifier -main-file-name null
-mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose
-mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64
-target-linker-version 2.22.90.20120924 -momit-leaf-frame-pointer -v
-resource-dir /usr/bin/../lib/clang/3.2 -fmodule-cache-path
/var/tmp/clang-module-cache -internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/x86_64-linux-gnu
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/x86_64-linux-gnu
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/backward
-internal-isystem /usr/local/include -internal-isystem
/usr/bin/../lib/clang/3.2/include -internal-isystem
/usr/include/clang/3.2/include/ -internal-externc-isystem
 -internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /usr/include -std=c++11 -fdeprecated-macro
-fdebug-compilation-dir /home/buildbot/Code/disruptor/disruptor--/test/test
-ferror-limit 19 -fmessage-length 316 -mstackrealign -fobjc-runtime=gcc
-fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics
-x c++ /dev/null

clang -cc1 version 3.2 based upon LLVM 3.2svn default target
x86_64-pc-linux-gnu

ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/x86_64-linux-gnu"

ignoring nonexistent directory
"/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/backward"

ignoring nonexistent directory "/usr/bin/../lib/clang/3.2/include"

ignoring nonexistent directory ""

ignoring duplicate directory "/usr/include/x86_64-linux-gnu"

#include "..." search starts here:

#include <...> search starts here:

 /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7

 /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/x86_64-linux-gnu

 /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward

 /usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++

 /usr/local/include

 /usr/include/clang/3.2/include

 /usr/include/x86_64-linux-gnu

 /usr/include

End of search list.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130103/d90f352a/attachment.html>


More information about the cfe-dev mailing list