diff options
author | Ankit Meel <ankitjmeel@gmail.com> | 2020-10-26 12:36:55 +0300 |
---|---|---|
committer | Ankit Meel <ankitjmeel@gmail.com> | 2020-10-26 12:36:55 +0300 |
commit | 336a675c6442485f45dc52de1770ad4ccff06ea5 (patch) | |
tree | ecc9ee2bd629217e7e1388145036baaaa0297294 | |
parent | 2c024bd335fef04cd7e49bdf39aee0d7b8241745 (diff) | |
parent | 2ddecfffc3d3a3a1db4ae45e8665caa2a85ab43a (diff) |
Merge branch 'blender-v2.91-release' into master
-rw-r--r-- | source/blender/blenkernel/intern/lib_id_delete.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/lib_id_delete.c b/source/blender/blenkernel/intern/lib_id_delete.c index 1e45a3c1163..25c48479ef9 100644 --- a/source/blender/blenkernel/intern/lib_id_delete.c +++ b/source/blender/blenkernel/intern/lib_id_delete.c @@ -261,7 +261,9 @@ static void id_delete(Main *bmain, const bool do_tagged_deletion) bool keep_looping = true; while (keep_looping) { ID *id, *id_next; - ID *last_remapped_id = tagged_deleted_ids.last; + /* Marked volatile to avoid a macOS Clang optimization bug. See T81077. + * #last_remapped_id.next is assumed to be NULL by optimizer which is wrong. */ + volatile ID *last_remapped_id = tagged_deleted_ids.last; keep_looping = false; /* First tag and remove from Main all datablocks directly from target lib. |