Building with clang on windows BLI_expr_pylike_eval_test fails due
to an inliner bug in clang 9.0.0.
Cause:
in the function parse_add_func in source/blender/blenlib/intern/expr_pylike_eval.c
we have the following snipppet of code in the OPCODE_FUNC2 case [1]
double result = func(prev_ops[-2].arg.dval, prev_ops[-1].arg.dval);
if (fetestexcept(FE_DIVBYZERO | FE_INVALID) == 0) {build with Ob1 this generates the following code
00007FF7BA8CA7A7 movsd xmm0,mmword ptr [rbx-18h] 00007FF7BA8CA7AC movsd xmm1,mmword ptr [rbx-8] 00007FF7BA8CA7B1 call r14 00007FF7BA8CA7B4 movaps xmm6,xmm0 00007FF7BA8CA7B7 mov ecx,18h 00007FF7BA8CA7BC call fetestexcept (07FF7BA8B6F23h)
Ob2 takes it in another direction and does
00007FF7BA8CAF90 movsd xmm7,mmword ptr [rdi-18h] 00007FF7BA8CAF95 movsd xmm8,mmword ptr [rdi-8] 00007FF7BA8CAF9B mov ecx,18h 00007FF7BA8CAFA0 call fetestexcept (07FF7BA8B6F23h)
It somehow forgets to call the function doing the actual work
soo yeahhh, that's not great.
This patch just switches to /Ob1 for clang since I have no idea
what other locations not covered by our tests this bug will rear
its ugly head.
Option B is tagging a BLI_NO_INLINE on parse_add_func