@@ -83,7 +83,7 @@ private newtype TMemoryLocation =
8383 } or
8484 TAllAliasedMemory ( IRFunction irFunc , boolean isMayAccess , boolean canDefineReadOnly ) {
8585 isMayAccess = false and
86- ( canDefineReadOnly = true or canDefineReadOnly = false )
86+ canDefineReadOnly = [ true , false ]
8787 or
8888 isMayAccess = true and canDefineReadOnly = false
8989 }
@@ -287,7 +287,9 @@ class UnknownMemoryLocation extends TUnknownMemoryLocation, MemoryLocation {
287287
288288 final override string toStringInternal ( ) { result = "{Unknown}" }
289289
290- final override VirtualVariable getVirtualVariable ( ) { result = TAllAliasedMemory ( irFunc , false , true ) }
290+ final override VirtualVariable getVirtualVariable ( ) {
291+ result = TAllAliasedMemory ( irFunc , false , true )
292+ }
291293
292294 final override Language:: LanguageType getType ( ) {
293295 result = any ( IRUnknownType type ) .getCanonicalLanguageType ( )
@@ -328,13 +330,7 @@ class AllNonLocalMemory extends TAllNonLocalMemory, MemoryLocation {
328330
329331 final override predicate isMayAccess ( ) { isMayAccess = true }
330332
331- override predicate canDefineReadOnly ( ) {
332- // A "must" access that defines all non-local memory appears only on the `InitializeNonLocal`
333- // instruction, which provides the initial definition for all memory outside of the current
334- // function's stack frame. This memory includes string literals and other read-only globals, so
335- // we allow such an access to be the definition for a use of a read-only location.
336- not isMayAccess ( )
337- }
333+ override predicate canDefineReadOnly ( ) { none ( ) }
338334}
339335
340336/**
@@ -359,12 +355,13 @@ class AllAliasedMemory extends TAllAliasedMemory, MemoryLocation {
359355
360356 final override string getUniqueId ( ) { result = " " + toString ( ) }
361357
362- final override VirtualVariable getVirtualVariable ( ) { result = TAllAliasedMemory ( irFunc , false , true ) }
358+ final override VirtualVariable getVirtualVariable ( ) {
359+ result = TAllAliasedMemory ( irFunc , false , true )
360+ }
363361
364362 final override predicate isMayAccess ( ) { isMayAccess = true }
365-
366- final override predicate canDefineReadOnly ( ) { canDefineReadOnly = true }
367363
364+ final override predicate canDefineReadOnly ( ) { canDefineReadOnly = true }
368365}
369366
370367/** A virtual variable that groups all escaped memory within a function. */
0 commit comments