[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