mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-27 02:09:54 +00:00
ScopInfo: Make clear that no double-free problem exists
When running the clang static analyser to check for memory issues, this code originally showed a double free, as the analyser was unable to understand that isl_set_free always returns NULL and consequently later uses of the isl object we just freed will never be reached. Without this knowledge, the analyser has to issue a warning. We refactor the code to make it clear that for empty maps the current loop iteration is aborted. llvm-svn: 280940
This commit is contained in:
parent
b316dc166f
commit
55a7af7da5
@ -1536,10 +1536,12 @@ void ScopStmt::checkForReductions() {
|
||||
isl_map_intersect_domain(MA->getAccessRelation(), getDomain());
|
||||
isl_set *Accs = isl_map_range(AccRel);
|
||||
|
||||
if (isl_set_has_equal_space(AllAccs, Accs) || isl_set_free(Accs)) {
|
||||
if (isl_set_has_equal_space(AllAccs, Accs)) {
|
||||
isl_set *OverlapAccs = isl_set_intersect(Accs, isl_set_copy(AllAccs));
|
||||
Valid = Valid && isl_set_is_empty(OverlapAccs);
|
||||
isl_set_free(OverlapAccs);
|
||||
} else {
|
||||
isl_set_free(Accs);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user