Skip to content

Commit 8b72ce8

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

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/tir/analysis/verify_well_formed.cc

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -248,20 +248,25 @@ 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 << ", and was re-defined at " << path;
257+
}
256258
}
257259

258260
{
259261
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;
262+
auto verify = Verify(it == previously_defined_.end() || redefine_is_allowed);
263+
verify << "ValueError: "
264+
<< "TIR is ill-formed, "
265+
<< "due to multiple definitions of variable " << var << ".";
266+
if (it != previously_defined_.end()) {
267+
verify << " It was first defined at " << it->second << ", and was later re-defined at "
268+
<< path;
269+
}
265270
}
266271

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

0 commit comments

Comments
 (0)