Issue 157108
Summary [LifetimeSafety] Handle l-values and pointers in conditional operators
Labels clang:temporal-safety
Assignees
Reporter usx95
    ```cpp
#include <string>

void foo(bool cond) {
    std::string* res;
    {
 std::string a = "a";
        std::string b = "b";
        res = cond ? &a : &b;
        res = &(cond ? a : b);
    }
    (void)*res;
}

void bar(bool cond) {
    std::string* res;
    {
        std::string a = "a";
        std::string b = "b";
        std::string* p = &a;
 std::string* q = &b;
        res = cond ? p : q;
    }
 (void)*res;
}
```
https://godbolt.org/z/rf6WKPG51
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to