[llvm-dev] Exceptions on Windows & MSVC

Aaron Smith via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 27 13:30:59 PDT 2020


Here is a wiki page and git repo with an implementation of SEH that passes
all the tests for x86.
We're looking for feedback before putting a patch on Phabricator.

https://github.com/tentzen/llvm-project
https://github.com/tentzen/llvm-project/wiki

On Mon, Nov 18, 2019 at 10:59 PM Gaier, Bjoern <Bjoern.Gaier at horiba.com>
wrote:

> Thank you for this Aaron!
>
>
>
> In our company we rely heavily on the compatibility between Clang-Cl and
> the Visual Studio compiler, lately we encountered big problems with the
> handling of SEH exceptions in our code, so running those tests helped us.
> (Sadly we can’t move to the Visual Studio compiler)
>
>
>
> However, maybe it helps someone if I share the results from running those
> tests… I imported all of the tests into separated projects, compiling them
> with the same settings, with MSVC (v141) and Clang (9), then I compared the
> output. The compiler settings for all those projects were:
>
> /permissive- /GS /GL /W3 /Gy /Zc:wchar_t /Gm- /Ox /Ob2 /sdl /Zc:inline
> /fp:precise /D "_MBCS" /errorReport:prompt /GF- /WX- /Zc:forScope /Gd /Oy
> /Oi /MD /FC /EHsc /nologo /Ot /diagnostics:classic
>
>
>
> The MSVC compiler only failed the following test:
>
> EH:
> ihateeh.cxx
>
>
>
> Clang however failed multiple tests:
> EH:
>
> ihateeh.cxx
>
>
>
> SEH:
>
> seh0007.c (-> Test failed; The access violation was optimized away,
> leading to a random result; – forcing the access violation caused no
> catching of the exception)
> seh0019.c (-> No exception caught; Which makes sense because there are no
> catch handler, but MSVC does catch them)
> seh0055.c (-> Test failed; The result is not correct)
>
> sehframes.cpp (-> A certain exception was not caught)
>
>
>
> The following tests didn’t even compiled, instead they crashed the
> compiler:
>
> seh0034.c
>
> seh0035.c
>
> seh0036.c
>
> seh0041.c
>
> seh0042.c
>
> seh0043.c
>
> seh0048.c
>
> seh0049.c
>
> seh0050.c
> xcpt4u.c
>
>
>
> I hope that helped in some way – any comments or suggestions? I’m up for
> it!
>
>
>
> *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Aaron
> Smith via llvm-dev
> *Sent:* 11 November 2019 23:03
> *To:* llvm-dev at lists.llvm.org
> *Subject:* [llvm-dev] Exceptions on Windows & MSVC
>
>
>
> At Microsoft we open sourced some of our compiler tests for exception
> handling on github.
>
> https://github.com/microsoft/compiler-tests
>
>
>
> We are looking into what it would take to get these to work with clang-cl.
> I’m planning to share a design document on the mailing list soon.
>
>
>
> Aaron
>
>
>
>
> Als GmbH eingetragen im Handelsregister Bad Homburg v.d.H. HRB 9816,
> USt.ID-Nr. DE 114 165 789 Geschäftsführer: Dr. Hiroshi Nakamura, Dr. Robert
> Plank, Markus Bode, Heiko Lampert, Takashi Nagano, Takeshi Fukushima.
> Junichi Tajika
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200327/f6e4402a/attachment.html>


More information about the llvm-dev mailing list