@@ -228,24 +228,26 @@ __tysan_check(void *addr, int size, tysan_type_descriptor *td, int flags) {
228
228
OldTDPtr -= i;
229
229
OldTD = *OldTDPtr;
230
230
231
- // When shadow memory is set for global objects, the entire object is tagged with the struct type
232
- // This means that when you access a member variable, tysan reads that as you accessing a struct midway
233
- // through, with 'i' being the offset
234
- // Therefore, if you are accessing a struct, we need to find the member type. We can go through the
235
- // members of the struct type and see if there is a member at the offset you are accessing the struct by.
236
- // If there is indeed a member starting at offset 'i' in the struct, we should check aliasing legality
237
- // with that type. If there isn't, we run alias checking on the struct with will give us the correct error.
238
- tysan_type_descriptor *InternalMember = OldTD;
231
+ // When shadow memory is set for global objects, the entire object is tagged
232
+ // with the struct type This means that when you access a member variable,
233
+ // tysan reads that as you accessing a struct midway through, with 'i' being
234
+ // the offset Therefore, if you are accessing a struct, we need to find the
235
+ // member type. We can go through the members of the struct type and see if
236
+ // there is a member at the offset you are accessing the struct by. If there
237
+ // is indeed a member starting at offset 'i' in the struct, we should check
238
+ // aliasing legality with that type. If there isn't, we run alias checking
239
+ // on the struct which will give us the correct error.
240
+ tysan_type_descriptor *AccessedType = OldTD;
239
241
if (OldTD->Tag == TYSAN_STRUCT_TD) {
240
- for (int j = 0 ; j < OldTD->Struct .MemberCount ; j++ ) {
242
+ for (int j = 0 ; j < OldTD->Struct .MemberCount ; ++j ) {
241
243
if (OldTD->Struct .Members [j].Offset == i) {
242
- InternalMember = OldTD->Struct .Members [j].Type ;
244
+ AccessedType = OldTD->Struct .Members [j].Type ;
243
245
break ;
244
246
}
245
247
}
246
248
}
247
249
248
- if (!isAliasingLegal (td, InternalMember , i))
250
+ if (!isAliasingLegal (td, AccessedType , i))
249
251
reportError (addr, size, td, OldTD, AccessStr,
250
252
" accesses part of an existing object" , -i, pc, bp, sp);
251
253
0 commit comments