From: David Malcolm Date: Fri, 2 Jun 2023 13:28:30 +0000 (-0400) Subject: analyzer: regions in different memory spaces can't alias X-Git-Tag: basepoints/gcc-15~8643 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8a916726e7f4b8871ac9dd75b66d26d1adf4798;p=thirdparty%2Fgcc.git analyzer: regions in different memory spaces can't alias gcc/analyzer/ChangeLog: * store.cc (store::eval_alias_1): Regions in different memory spaces can't alias. Signed-off-by: David Malcolm --- diff --git a/gcc/analyzer/store.cc b/gcc/analyzer/store.cc index e8c927b9fe9b..4d1de825e795 100644 --- a/gcc/analyzer/store.cc +++ b/gcc/analyzer/store.cc @@ -2710,6 +2710,18 @@ tristate store::eval_alias_1 (const region *base_reg_a, const region *base_reg_b) const { + /* If they're in different memory spaces, they can't alias. */ + { + enum memory_space memspace_a = base_reg_a->get_memory_space (); + if (memspace_a != MEMSPACE_UNKNOWN) + { + enum memory_space memspace_b = base_reg_b->get_memory_space (); + if (memspace_b != MEMSPACE_UNKNOWN + && memspace_a != memspace_b) + return tristate::TS_FALSE; + } + } + if (const symbolic_region *sym_reg_a = base_reg_a->dyn_cast_symbolic_region ()) {