Issue |
141114
|
Summary |
Unknown references and pointers related bad codegen
|
Labels |
clang:frontend,
needs-reduction
|
Assignees |
shafik
|
Reporter |
shafik
|
This semi-reduced code from: https://github.com/llvm/llvm-project/pull/95474#issuecomment-2884165093
```cpp
struct MyStruct {
double m0{-9999.0};
int m1{-12345};
};
constexpr MyStruct default_val;
auto compute_area(double l, const MyStruct &val = default_val) -> double {
if (val.m1 == 1)
return 2.0;
return 0;
}
#include <cassert>
auto main() -> int {
MyStruct in_val{.m0 = 2.0, .m1 = 1};
double val = compute_area(1.0, in_val);
assert(val == 2.0);
}
```
crashes at runtime, it looks like due to `VD->getAnyInitializer(VD)` pulling in the default value.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs