[clang] [Sema] Fix lifetime extension for temporaries in range-based for loops in C++23 (PR #145164)
via cfe-commits
cfe-commits at lists.llvm.org
Sun Jun 22 05:14:53 PDT 2025
================
@@ -0,0 +1,79 @@
+// RUN: %clangxx -std=c++23 -fsyntax-only -Xclang -verify %s
+
+#include <string>
+#include <vector>
+#include <map>
+#include <tuple>
+#include <optional>
+#include <variant>
+#include <array>
+#include <span>
----------------
yronglin wrote:
We can construct some simple fake std dependencies.
Eg.
```cpp
namespace std {
typedef decltype(sizeof(int)) size_t;
template <class E>
struct initializer_list {
const E *begin;
size_t size;
initializer_list() : begin(nullptr), size(0) {}
};
template <typename E>
struct list {
list() {}
~list() {}
E *begin();
E *end();
const E *begin() const;
const E *end() const;
};
template <typename E>
struct vector {
vector() {}
vector(std::initializer_list<E>) {}
~vector() {}
E *begin();
E *end();
const E *begin() const;
const E *end() const;
};
} // namespace std
```
https://github.com/llvm/llvm-project/pull/145164
More information about the cfe-commits
mailing list