[llvm] r260654 - [ADT] OptionSet: ifdef out some code that seems to be crashing MSVC.
Aaron Ballman via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 12 05:08:12 PST 2016
On Thu, Feb 11, 2016 at 11:36 PM, Argyrios Kyrtzidis via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: akirtzidis
> Date: Thu Feb 11 22:36:48 2016
> New Revision: 260654
>
> URL: http://llvm.org/viewvc/llvm-project?rev=260654&view=rev
> Log:
> [ADT] OptionSet: ifdef out some code that seems to be crashing MSVC.
>
> Modified:
> llvm/trunk/include/llvm/ADT/OptionSet.h
>
> Modified: llvm/trunk/include/llvm/ADT/OptionSet.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/OptionSet.h?rev=260654&r1=260653&r2=260654&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/OptionSet.h (original)
> +++ llvm/trunk/include/llvm/ADT/OptionSet.h Thu Feb 11 22:36:48 2016
> @@ -116,6 +116,8 @@ public:
> }
>
> private:
> +#ifndef _MSC_VER
> + // This is crashing MSVC.
> template <typename T>
> static auto _checkResultTypeOperatorOr(T t) -> decltype(t | t) { return T(); }
>
> @@ -124,6 +126,7 @@ private:
> static_assert(!std::is_same<decltype(_checkResultTypeOperatorOr(Flags())),
> Flags>::value,
> "operator| should produce an OptionSet");
> +#endif
> };
Are there plans to correct this for MSVC and recommit? Is there a
requirement for this to use automatic type deduction instead of using
the decltype in the is_same check, like this:
http://coliru.stacked-crooked.com/a/94f224987d9feaee
This compiles fine in MSVC 2015, uncertain what MSVC was crashing for
you however.
~Aaron
>
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list