================
@@ -2255,7 +2255,7 @@ SourceLocExpr::SourceLocExpr(const ASTContext &Ctx, 
SourceLocIdentKind Kind,
   SourceLocExprBits.Kind = llvm::to_underlying(Kind);
   // In dependent contexts, function names may change.
   setDependence(MayBeDependent(Kind) && ParentContext->isDependentContext()
-                    ? ExprDependence::Value
+                    ? ExprDependence::ValueInstantiation
----------------
mizvekov wrote:

The change looks correct in so far as it doesn't make sense to set value 
dependence by itself, without also setting instantiation dependence.

Value dependence means we don't know the value of this expression yet, as it 
depends on template parameters.

Instantiation dependence means this expression depends on template parameters, 
or rather actually, depends on instantiation somehow, even if the type or value 
might be known so far, if the expression doesn't turn out to be invalid after 
instantiation.

So value or type dependence should always imply instantiation dependence, but 
not the other way around.

https://github.com/llvm/llvm-project/pull/187755
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to