@@ -6410,9 +6410,9 @@ static bool TryOCLSamplerInitialization(Sema &S,
64106410 return true ;
64116411}
64126412
6413- static bool IsZeroInitializer (Expr *Initializer, Sema &S ) {
6414- return Initializer-> isIntegerConstantExpr (S. getASTContext ()) &&
6415- (Initializer-> EvaluateKnownConstInt (S. getASTContext ()) == 0 );
6413+ static bool IsZeroInitializer (const Expr *Init, ASTContext &Ctx ) {
6414+ std::optional<llvm::APSInt> Value = Init-> getIntegerConstantExpr (Ctx);
6415+ return Value && Value-> isZero ( );
64166416}
64176417
64186418static bool TryOCLZeroOpaqueTypeInitialization (Sema &S,
@@ -6431,7 +6431,7 @@ static bool TryOCLZeroOpaqueTypeInitialization(Sema &S,
64316431 // event should be zero.
64326432 //
64336433 if (DestType->isEventT () || DestType->isQueueT ()) {
6434- if (!IsZeroInitializer (Initializer, S))
6434+ if (!IsZeroInitializer (Initializer, S. getASTContext () ))
64356435 return false ;
64366436
64376437 Sequence.AddOCLZeroOpaqueTypeStep (DestType);
@@ -6447,7 +6447,7 @@ static bool TryOCLZeroOpaqueTypeInitialization(Sema &S,
64476447 if (DestType->isOCLIntelSubgroupAVCMcePayloadType () ||
64486448 DestType->isOCLIntelSubgroupAVCMceResultType ())
64496449 return false ;
6450- if (!IsZeroInitializer (Initializer, S))
6450+ if (!IsZeroInitializer (Initializer, S. getASTContext () ))
64516451 return false ;
64526452
64536453 Sequence.AddOCLZeroOpaqueTypeStep (DestType);
0 commit comments