forked from OSchip/llvm-project
				
			tsan: fix windows meta mapping
Currently windows fails on startup with: CHECK failed: gotsan.cc:3077 "(((m - prev_m) / kMetaShadowSize)) == (((p - prev) / kMetaShadowCell))" (0x3ffffffeffffff7e, 0x6ffffff7e) Make MemToMeta do the same MemToShadow does on windows: add offset instead of or'ing it. llvm-svn: 285420
This commit is contained in:
		
							parent
							
								
									22a03e435a
								
							
						
					
					
						commit
						693163e723
					
				| 
						 | 
				
			
			@ -660,8 +660,13 @@ u32 *MemToMetaImpl(uptr x) {
 | 
			
		|||
  return (u32*)(((((x) & ~(Mapping::kAppMemMsk | (kMetaShadowCell - 1)))) /
 | 
			
		||||
      kMetaShadowCell * kMetaShadowSize) | Mapping::kMetaShadowBeg);
 | 
			
		||||
#else
 | 
			
		||||
# ifndef SANITIZER_WINDOWS
 | 
			
		||||
  return (u32*)(((x & ~(kMetaShadowCell - 1)) / \
 | 
			
		||||
      kMetaShadowCell * kMetaShadowSize) | Mapping::kMetaShadowBeg);
 | 
			
		||||
# else
 | 
			
		||||
  return (u32*)(((x & ~(kMetaShadowCell - 1)) / \
 | 
			
		||||
      kMetaShadowCell * kMetaShadowSize) + Mapping::kMetaShadowBeg);
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue