Boost logo

Boost :

Subject: Re: [boost] [review] Outcome: internal compiler error
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2018-01-27 02:25:54


>> Upon investigation, I discovered a newer version of the compiler and IDE.
>> Updating to "Version 15.5.5" produced the following results when compiling
>> the same translation unit:
>>
>> 1>c:\users\vinnie\src\boost\boost\outcome\detail\value_storage.hpp(141):
>> 1>fatal error C1001: An internal error has occurred in the compiler.
>> 1>(compiler file 'msc1.cpp', line 1507)
>>
>> Is this a supported configuration?
>
> It certainly is. Microsoft itself runs Outcome as part of the Visual
> Studio compiler validation suite!

I have confirmed this ICE in MSVC (15.5.4). It also occurs in
Microsoft's C2 clang edition. Shame on Microsoft, an empty source file
instantiating nothing should never, *ever* ICE the compiler, no matter
the headers included. CC Stephan and Andrew, because this is *bad*.

Vinnie if you choose the LLVM clang toolset, all will work correctly. I
suggest a minimum of clang 6.0, it actually somewhat works on Windows
when targeting the MSVC ABI, even produces usable debug info in the
Visual Studio debugger.

The standalone edition of Outcome is not affected. So something in Boost
+ Outcome is causing this ICE. Seeing as LLVM clang works correctly with
proposed Boost.Outcome, I am going to assert - not claim - that this
problem is 100% on Microsoft, and nothing to do with Boost or Outcome or
proposed Boost.Outcome.

For the record, my main development platform for Outcome and AFIO is
Windows with MSVC. Outcome has received almost all its testing on MSVC.
Whatever is tripping this MSVC ICE is not something I have seen to date
(the non-trivial value_storage implementation).

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk