diff --git a/src/coreclr/vm/ecall.cpp b/src/coreclr/vm/ecall.cpp index 5daa657f33a4d9..b5a9e17e7545f0 100644 --- a/src/coreclr/vm/ecall.cpp +++ b/src/coreclr/vm/ecall.cpp @@ -185,7 +185,7 @@ void ECall::PopulateManagedCastHelpers() static CrstStatic gFCallLock; // This variable is used to force the compiler not to tailcall a function. -int FC_NO_TAILCALL; +RAW_KEYWORD(volatile) int FC_NO_TAILCALL; #endif // !DACCESS_COMPILE diff --git a/src/coreclr/vm/fcall.h b/src/coreclr/vm/fcall.h index 3598dc62305929..b330797631de05 100644 --- a/src/coreclr/vm/fcall.h +++ b/src/coreclr/vm/fcall.h @@ -926,7 +926,7 @@ void HCallAssert(void*& cache, void* target); // might do, which would otherwise confuse the epilog walker. // // * See #FC_INNER for more -extern int FC_NO_TAILCALL; +extern RAW_KEYWORD(volatile) int FC_NO_TAILCALL; #define FC_INNER_RETURN(type, expr) \ type __retVal = expr; \ while (0 == FC_NO_TAILCALL) { }; /* side effect the compile can't remove */ \