[clang] [Clang] Fix dependency computation for pack indexing expression (PR #91933)

Younan Zhang via cfe-commits cfe-commits at lists.llvm.org
Mon May 13 01:54:14 PDT 2024


================
@@ -376,6 +376,9 @@ ExprDependence clang::computeDependence(PackExpansionExpr *E) {
 
 ExprDependence clang::computeDependence(PackIndexingExpr *E) {
   ExprDependence D = E->getIndexExpr()->getDependence();
+  if (D & ExprDependence::Value)
+    D |= ExprDependence::TypeInstantiation;
----------------
zyn0217 wrote:

Does it mean "if the index expression is value-dependent, then the whole `PackIndexingExpr` is type-dependent despite its expressions"? For example,
```cpp
template <int N, int... E>
auto foo() {
  return E...[N];
}
```
Should `E...[N]` be treated as type-dependent regardless of the result being always an int?

https://github.com/llvm/llvm-project/pull/91933


More information about the cfe-commits mailing list