Skip to content

Commit 07b3101

Browse files
committed
[#17798]: Fix VerifyStream::Verify causes dereferencing an invalid pointer
1 parent a8c7580 commit 07b3101

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/tir/analysis/verify_well_formed.cc

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -248,20 +248,26 @@ class UndefinedVarVerifier : public Verifier<UndefinedVarVerifier> {
248248
bool redefine_is_allowed = redefine_allowed_within_function_.count(var);
249249
{
250250
auto it = currently_defined_.find(var);
251-
Verify(it == currently_defined_.end() || redefine_is_allowed)
252-
<< "ValueError: "
253-
<< "TIR is ill-formed, "
254-
<< "due to multiple nested definitions of variable " << var
255-
<< ". It was first defined at " << it->second << ", and was re-defined at " << path;
251+
auto verify = Verify(it == currently_defined_.end() || redefine_is_allowed);
252+
verify << "ValueError: "
253+
<< "TIR is ill-formed, "
254+
<< "due to multiple nested definitions of variable " << var << ".";
255+
if (it != currently_defined_.end()) {
256+
verify << " It was first defined at " << it->second
257+
<< ", and was re-defined at " << path;
258+
}
256259
}
257260

258261
{
259262
auto it = previously_defined_.find(var);
260-
Verify(it == previously_defined_.end() || redefine_is_allowed)
261-
<< "ValueError: "
262-
<< "TIR is ill-formed, "
263-
<< "due to multiple definitions of variable " << var << ". It was first defined at "
264-
<< it->second << ", and was later re-defined at " << path;
263+
auto verify = Verify(it == previously_defined_.end() || redefine_is_allowed);
264+
verify << "ValueError: "
265+
<< "TIR is ill-formed, "
266+
<< "due to multiple definitions of variable " << var << ".";
267+
if (it != previously_defined_.end()) {
268+
verify << " It was first defined at " << it->second
269+
<< ", and was later re-defined at " << path;
270+
}
265271
}
266272

267273
currently_defined_.insert({var, path});

0 commit comments

Comments
 (0)