This is a possible regression: [~]> clang++ -std=c++14 -D_HAS_EXCEPTIONS=0 auto_ptr.cpp auto_ptr-556ebb.o : error LNK2019: unresolved external symbol "void __cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z) referenced in function main auto_ptr-556ebb.o : error LNK2019: unresolved external symbol __cxa_call_unexpected referenced in function "public: __cdecl std::basic_ostream<char,struct std::char_traits<char> >::sentry::~sentry(void)" (??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ) a.exe : fatal error LNK1120: 2 unresolved externals clang++.exe: error: linker command failed with exit code 1120 (use -v to see invocation)
[~]> clang++ -v clang version 3.7.0 (http://llvm.org/git/clang.git d9d3dee4581c591ac65c759df275139ddd4cfa0c) (http://llvm.org/git/llvm.git 2a43652f3b8a97e67251d80a749d5227667ff5b1) Target: x86_64-pc-windows-msvc Thread model: posix [~]> cat auto_ptr.cpp #include <memory> #include <iostream> class Foo { public: Foo(){}; ~Foo() { std::cout << "Destructor called." << std::endl; }; void echo() { std::cout << "Echo!" << std::endl; }; }; int main() { std::auto_ptr<Foo> foo(new Foo); foo->echo(); std::auto_ptr<Foo> bar(foo); bar->echo(); return 0; } If I drop -std=c++14 then the delete symbol works: [~]> clang++ -D_HAS_EXCEPTIONS=0 auto_ptr.cpp auto_ptr-64308e.o : error LNK2019: unresolved external symbol __cxa_call_unexpected referenced in function "public: __cdecl std::basic_ostream<char,struct std::char_traits<char> >::sentry::~sentry(void)" (??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ) a.exe : fatal error LNK1120: 1 unresolved externals clang++.exe: error: linker command failed with exit code 1120 (use -v to see invocation) Also, clang-cl works fine. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
