<div dir="ltr"><div>The GCC-style clang++ driver defaults to enabling C++ exceptions, but those aren't really supported on Windows. Disable them with -fno-exceptions, and the __cxa_call_unexpected error should go away. clang-cl doesn't have this problem because it disables exceptions by default. This is a change in behavior since 3.5, but it's a regression in a not-yet supported configuration, so I don't consider it a release blocker.</div><div><br></div><div>The operator delete missing symbol has to do with some sized operator delete C++14 dust that hasn't settled yet. We used to emit an implicit weak definition of sized operator delete, but that caused ELF linkers to pull in more static archive members causing link failures, so we recently stopped doing it. We should probably revert the default back to emitting a weak definition.</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 17, 2015 at 10:20 AM, İsmail Dönmez <span dir="ltr"><<a href="mailto:ismail@donmez.ws" target="_blank">ismail@donmez.ws</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Sent to wrong list :/<br>
<div><div class="h5"><br>
<br>
---------- Forwarded message ----------<br>
From: İsmail Dönmez <<a href="mailto:ismail@donmez.ws">ismail@donmez.ws</a>><br>
Date: Tue, Feb 17, 2015 at 5:59 PM<br>
Subject: Weird linking problem on Windows<br>
To: "<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a>" <<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a>><br>
<br>
<br>
This is a possible regression:<br>
<br>
[~]> clang++ -std=c++14 -D_HAS_EXCEPTIONS=0 auto_ptr.cpp<br>
auto_ptr-556ebb.o : error LNK2019: unresolved external symbol "void<br>
__cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z)<br>
referenced in function main<br>
auto_ptr-556ebb.o : error LNK2019: unresolved external symbol<br>
__cxa_call_unexpected referenced in function "public: __cdecl<br>
std::basic_ostream<char,struct std::char_traits<char><br>
>::sentry::~sentry(void)"<br>
(??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ)<br>
a.exe : fatal error LNK1120: 2 unresolved externals<br>
clang++.exe: error: linker command failed with exit code 1120 (use -v<br>
to see invocation)<br>
<br>
[~]> clang++ -v<br>
clang version 3.7.0 (<a href="http://llvm.org/git/clang.git" target="_blank">http://llvm.org/git/clang.git</a><br>
d9d3dee4581c591ac65c759df275139ddd4cfa0c)<br>
(<a href="http://llvm.org/git/llvm.git" target="_blank">http://llvm.org/git/llvm.git</a><br>
2a43652f3b8a97e67251d80a749d5227667ff5b1)<br>
Target: x86_64-pc-windows-msvc<br>
Thread model: posix<br>
<br>
[~]> cat auto_ptr.cpp<br>
#include <memory><br>
#include <iostream><br>
<br>
class Foo {<br>
public:<br>
    Foo(){};<br>
    ~Foo() { std::cout << "Destructor called." << std::endl; };<br>
<br>
    void echo() { std::cout << "Echo!" << std::endl; };<br>
};<br>
<br>
int main()<br>
{<br>
    std::auto_ptr<Foo> foo(new Foo);<br>
    foo->echo();<br>
<br>
    std::auto_ptr<Foo> bar(foo);<br>
<br>
    bar->echo();<br>
    return 0;<br>
}<br>
<br>
If I drop -std=c++14 then the delete symbol works:<br>
<br>
[~]> clang++ -D_HAS_EXCEPTIONS=0 auto_ptr.cpp<br>
auto_ptr-64308e.o : error LNK2019: unresolved external symbol<br>
__cxa_call_unexpected referenced in function "public: __cdecl<br>
std::basic_ostream<char,struct std::char_traits<char><br>
>::sentry::~sentry(void)"<br>
(??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ)<br>
a.exe : fatal error LNK1120: 1 unresolved externals<br>
clang++.exe: error: linker command failed with exit code 1120 (use -v<br>
to see invocation)<br>
<br>
Also, clang-cl works fine.<br>
<br>
_______________________________________________<br>
</div></div>cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div></div></div>