[x86/Linux] Enable thread-abort reraise loop prevention (#12646)
authorJonghyun Park <parjong@gmail.com>
Thu, 6 Jul 2017 06:05:34 +0000 (15:05 +0900)
committerJan Kotas <jkotas@microsoft.com>
Thu, 6 Jul 2017 06:05:34 +0000 (08:05 +0200)
src/vm/exceptionhandling.cpp

index dd95bad..c6d42ed 100644 (file)
@@ -1490,7 +1490,7 @@ void ExceptionTracker::InitializeCrawlFrame(CrawlFrame* pcfThisFrame, Thread* pT
 #endif // ESTABLISHER_FRAME_ADDRESS_IS_CALLER_SP
     }
 
-#if defined(_TARGET_ARM_) || defined(_TARGET_ARM64_)
+#ifdef ADJUST_PC_UNWOUND_TO_CALL
     // Further below, we will adjust the ControlPC based upon whether we are at a callsite or not.
     // We need to do this for "RegDisplay.ControlPC" field as well so that when data structures like
     // EECodeInfo initialize themselves using this field, they will have the correct absolute value
@@ -1509,12 +1509,12 @@ void ExceptionTracker::InitializeCrawlFrame(CrawlFrame* pcfThisFrame, Thread* pT
         fAdjustRegdisplayControlPC = true;
 
     }
+#endif // ADJUST_PC_UNWOUND_TO_CALL
 
 #if defined(_TARGET_ARM_)
     // Remove the Thumb bit
     ControlPCForEHSearch = ThumbCodeToDataPointer<DWORD_PTR, DWORD_PTR>(ControlPCForEHSearch);
 #endif
-#endif // _TARGET_ARM_ || _TARGET_ARM64_
 
 #ifdef ADJUST_PC_UNWOUND_TO_CALL
     // If the OS indicated that the IP is a callsite, then adjust the ControlPC by decrementing it