[SampleProfileInference] Work around odr-use of const non-inline static data member...
authorFangrui Song <i@maskray.me>
Tue, 8 Mar 2022 22:34:53 +0000 (14:34 -0800)
committerFangrui Song <i@maskray.me>
Tue, 8 Mar 2022 22:34:53 +0000 (14:34 -0800)
commit48c74bb2e2a72830f1068823bfc2f6fd4b53d427
tree9dd5990f72b7cca686c4db0b4a5ca0d493e20af4
parent12bfea58b8ffc141c4440af998dc8ee1b309dbe4
[SampleProfileInference] Work around odr-use of const non-inline static data member to fix -O0 builds after D120508

MinBaseDistance may be odr-used by std::max, leading to an undefined symbol linker error:

```
ld.lld: error: undefined symbol: (anonymous namespace)::MinCostMaxFlow::MinBaseDistance
>>> referenced by SampleProfileInference.cpp:744 (/home/ray/llvm-project/llvm/lib/Transforms/Utils/SampleProfileInference.cpp:744)
>>>               lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SampleProfileInference.cpp.o:((anonymous namespace)::FlowAdjuster::jumpDistance(llvm::FlowJump*) const)
```

Since llvm-project is still using C++ 14, workaround it with a cast.
llvm/lib/Transforms/Utils/SampleProfileInference.cpp