Gnuport cleanup 3 (dotnet/coreclr#22581)
authorSinan Kaya <41809318+franksinankaya@users.noreply.github.com>
Thu, 14 Feb 2019 19:06:57 +0000 (14:06 -0500)
committerJan Kotas <jkotas@microsoft.com>
Thu, 14 Feb 2019 19:06:57 +0000 (11:06 -0800)
* Reorder extern "C" and visibility statements

In file included from coreclr/src/pal/inc/pal.h:70:0,
coreclr/src/pal/inc/pal_mstypes.h:30:25: error: expected unqualified-id
before string constant
 #define EXTERN_C extern "C"
                          ^
coreclr/src/pal/inc/rt/palrt.h:216:30: note:
  in expansion of macro 'EXTERN_C'
   #define STDAPI_(type)        EXTERN_C type STDAPICALLTYPE

* Need double quotes around single quotes in error statements

fix error statements

Can't have ' character in error statement

* Abstract __declspec(noinline)

Generate compiler independent macros for noinline request.

* Remove unused DBG_NOINLINE_X86__RET_INLINE

* Abstract __declspec(nothrow)

Commit migrated from https://github.com/dotnet/coreclr/commit/36931ac7b24249201547f7ca667105014b2e4c7f

21 files changed:
src/coreclr/src/ToolBox/SOS/Strike/ExpressionNode.h
src/coreclr/src/gc/unix/events.cpp
src/coreclr/src/inc/contract.h
src/coreclr/src/inc/cor.h
src/coreclr/src/inc/metadatatracker.h
src/coreclr/src/inc/palclr.h
src/coreclr/src/inc/slist.h
src/coreclr/src/inc/utilcode.h
src/coreclr/src/inc/winrt/paraminstanceapi.h
src/coreclr/src/pal/inc/rt/palrt.h
src/coreclr/src/pal/inc/rt/sal.h
src/coreclr/src/vm/callhelpers.h
src/coreclr/src/vm/class.h
src/coreclr/src/vm/crst.h
src/coreclr/src/vm/eecontract.h
src/coreclr/src/vm/exceptionhandling.cpp
src/coreclr/src/vm/finalizerthread.cpp
src/coreclr/src/vm/ibclogger.h
src/coreclr/src/vm/methodtable.h
src/coreclr/src/vm/methodtablebuilder.cpp
src/coreclr/src/vm/threads.cpp

index 48cc036..2f34e56 100644 (file)
@@ -7,7 +7,7 @@
 #define _EXPRESSION_NODE_
 
 #ifdef FEATURE_PAL
-#error This file isn't designed to build in PAL
+#error "This file isn't designed to build in PAL"
 #endif
 
 #include "strike.h"
index 0d99220..b5ebc1c 100644 (file)
@@ -146,7 +146,7 @@ public:
             TimeSpecAdd(&endTime, milliseconds);
         }
 #else
-#error Don't know how to perfom timed wait on this platform
+#error "Don't know how to perfom timed wait on this platform"
 #endif
 
         int st = 0;
index 0e3206c..a497424 100644 (file)
@@ -989,10 +989,10 @@ class BaseContract
     };
 
 
-    __declspec(nothrow) BaseContract() : m_pClrDebugState(NULL),  m_testmask(0)
+    NOTHROW_DECL BaseContract() : m_pClrDebugState(NULL),  m_testmask(0)
     {
     }
-    __declspec(nothrow) void Restore()
+    NOTHROW_DECL void Restore()
     {
         // m_pClrDebugState is setup in BaseContract::DoChecks. If an SO happens after the
         // BaseContract object is constructed but before DoChecks is invoked, m_pClrDebugState
@@ -1160,7 +1160,7 @@ class Contract: public BaseContract
    virtual void DestructorDefinedThatCallsRestore(){}
 
    public:
-    __declspec(nothrow) ~Contract()
+    NOTHROW_DECL ~Contract()
     {
         Restore();
     }
index 3494b05..31484f6 100644 (file)
@@ -2026,20 +2026,12 @@ typedef enum
 
 #ifndef DEBUG_NOINLINE
 #if defined(_DEBUG)
-#define DEBUG_NOINLINE __declspec(noinline)
+#define DEBUG_NOINLINE NOINLINE
 #else
 #define DEBUG_NOINLINE
 #endif
 #endif
 
-#ifndef DBG_NOINLINE_X86__RET_INLINE
-#if defined(_DEBUG) && defined(_X86_)
-#define DBG_NOINLINE_X86__RET_INLINE __declspec(noinline)
-#else
-#define DBG_NOINLINE_X86__RET_INLINE FORCEINLINE
-#endif
-#endif
-
 #ifndef NOINLINE
 #ifdef _MSC_VER
 #define NOINLINE __declspec(noinline)
index 27c8c27..1427b18 100644 (file)
@@ -182,7 +182,7 @@ public:
         return NoteAccessWorker(address);
     }
 
-    __declspec(noinline) static void* NoteAccessWorker(void *address)
+    NOINLINE static void* NoteAccessWorker(void *address)
     {
         STATIC_CONTRACT_NOTHROW;
         STATIC_CONTRACT_GC_NOTRIGGER;
@@ -204,7 +204,7 @@ public:
         NoteSearchWorker(result);
     }
 
-    __declspec(noinline) static void NoteSearchWorker(void *result)
+    NOINLINE static void NoteSearchWorker(void *result)
     {
         STATIC_CONTRACT_NOTHROW;
         STATIC_CONTRACT_GC_NOTRIGGER;
index a9dbe0d..fbb8975 100644 (file)
 #endif
 #endif
 
+#ifndef NOTHROW_DECL
+#ifdef _MSC_VER
+#define NOTHROW_DECL __declspec(nothrow)
+#else
+#define NOTHROW_DECL __attribute__((nothrow))
+#endif // !_MSC_VER
+#endif // !NOTHROW_DECL
+
+#ifndef NOINLINE
+#ifdef _MSC_VER
+#define NOINLINE __declspec(noinline)
+#else
+#define NOINLINE __attribute__((noinline))
+#endif // !_MSC_VER
+#endif // !NOINLINE
+
 //
 // CPP_ASSERT() can be used within a class definition, to perform a
 // compile-time assertion involving private names within the class.
index 9a75e1d..f05d763 100644 (file)
@@ -20,7 +20,7 @@
 //-----------------------------------------------------------------------------
 
 //#ifndef _H_UTIL
-//#error I am a part of util.hpp Please don't include me alone !
+//#error "I am a part of util.hpp Please don't include me alone !"
 //#endif
 
 
index a647d0c..ebeaf73 100644 (file)
@@ -144,21 +144,12 @@ typedef LPSTR   LPUTF8;
 
 #ifndef DEBUG_NOINLINE
 #if defined(_DEBUG)
-#define DEBUG_NOINLINE __declspec(noinline)
+#define DEBUG_NOINLINE NOINLINE
 #else
 #define DEBUG_NOINLINE
 #endif
 #endif
 
-#ifndef DBG_NOINLINE_X86__RET_INLINE
-#if defined(_DEBUG) && defined(_TARGET_X86_)
-// this exists to make scan work on x86. 
-#define DBG_NOINLINE_X86__RET_INLINE __declspec(noinline)
-#else
-#define DBG_NOINLINE_X86__RET_INLINE FORCEINLINE
-#endif
-#endif
-
 #include <stddef.h> // for offsetof
 
 #ifndef NumItems
index 1a8dde1..ad3fd17 100644 (file)
@@ -79,7 +79,7 @@ namespace Ro { namespace detail {
     //  to see HRESULT propagation.
     // 
     #ifdef DEBUG
-    inline HRESULT __declspec(noinline) _FailedHR(HRESULT hr) { static HRESULT _hr = hr; return hr; }
+    inline HRESULT NOINLINE _FailedHR(HRESULT hr) { static HRESULT _hr = hr; return hr; }
     #else
     inline HRESULT _FailedHR(HRESULT hr) { return hr; }
     #endif
index 381eb46..89f28e7 100644 (file)
@@ -214,6 +214,7 @@ inline void *__cdecl operator new(size_t, void *_P)
 
 #define STDAPI               EXTERN_C HRESULT STDAPICALLTYPE
 #define STDAPI_(type)        EXTERN_C type STDAPICALLTYPE
+#define STDAPI_VIS(vis,type) EXTERN_C vis type STDAPICALLTYPE
 
 #define STDAPIV              EXTERN_C HRESULT STDAPIVCALLTYPE
 #define STDAPIV_(type)       EXTERN_C type STDAPIVCALLTYPE
@@ -372,9 +373,9 @@ typedef union _ULARGE_INTEGER {
 
 /******************* OLE, BSTR, VARIANT *************************/
 
-DLLEXPORT STDAPI_(LPVOID) CoTaskMemAlloc(SIZE_T cb);
-DLLEXPORT STDAPI_(LPVOID) CoTaskMemRealloc(LPVOID pv, SIZE_T cb);
-DLLEXPORT STDAPI_(void) CoTaskMemFree(LPVOID pv);
+STDAPI_VIS(DLLEXPORT, LPVOID) CoTaskMemAlloc(SIZE_T cb);
+STDAPI_VIS(DLLEXPORT, LPVOID) CoTaskMemRealloc(LPVOID pv, SIZE_T cb);
+STDAPI_VIS(DLLEXPORT, void) CoTaskMemFree(LPVOID pv);
 
 typedef SHORT VARIANT_BOOL;
 #define VARIANT_TRUE ((VARIANT_BOOL)-1)
@@ -386,12 +387,12 @@ typedef const OLECHAR* LPCOLESTR;
 
 typedef WCHAR *BSTR;
 
-DLLEXPORT STDAPI_(BSTR) SysAllocString(const OLECHAR*);
-DLLEXPORT STDAPI_(BSTR) SysAllocStringLen(const OLECHAR*, UINT);
-DLLEXPORT STDAPI_(BSTR) SysAllocStringByteLen(const char *, UINT);
-DLLEXPORT STDAPI_(void) SysFreeString(BSTR);
-DLLEXPORT STDAPI_(UINT) SysStringLen(BSTR);
-DLLEXPORT STDAPI_(UINT) SysStringByteLen(BSTR);
+STDAPI_VIS(DLLEXPORT, BSTR) SysAllocString(const OLECHAR*);
+STDAPI_VIS(DLLEXPORT, BSTR) SysAllocStringLen(const OLECHAR*, UINT);
+STDAPI_VIS(DLLEXPORT, BSTR) SysAllocStringByteLen(const char *, UINT);
+STDAPI_VIS(DLLEXPORT, void) SysFreeString(BSTR);
+STDAPI_VIS(DLLEXPORT, UINT) SysStringLen(BSTR);
+STDAPI_VIS(DLLEXPORT, UINT) SysStringByteLen(BSTR);
 
 typedef double DATE;
 
index caf89f2..e5622a8 100644 (file)
@@ -2363,7 +2363,7 @@ typedef struct __F_ __F_;
 
 #ifdef  __cplusplus // [
 #ifndef __nothrow // [
-# define __nothrow __declspec(nothrow)
+# define __nothrow NOTHROW_DECL
 #endif // ]
 extern "C" {
 #else // ][
index f9e738b..d8d4307 100644 (file)
@@ -89,7 +89,7 @@ private:
     ArgIterator m_argIt;
 
 #ifdef _DEBUG 
-    __declspec(noinline) void LogWeakAssert()
+    NOINLINE void LogWeakAssert()
     {
         LIMITED_METHOD_CONTRACT;
         LOG((LF_ASSERT, LL_WARNING, "%s::%s\n", m_pMD->m_pszDebugClassName, m_pMD->m_pszDebugMethodName));
index e18bddc..03c0da2 100644 (file)
@@ -409,7 +409,7 @@ class EEClassLayoutInfo
             e_HAS_EXPLICIT_SIZE         = 0x08,
 #ifdef UNIX_AMD64_ABI
 #ifdef FEATURE_HFA
-#error Can't have FEATURE_HFA and UNIX_AMD64_ABI defined at the same time.
+#error "Can't have FEATURE_HFA and UNIX_AMD64_ABI defined at the same time."
 #endif // FEATURE_HFA
             e_NATIVE_PASS_IN_REGISTERS  = 0x10, // Flag wheter a native struct is passed in registers.
 #endif // UNIX_AMD64_ABI
index a482552..4dacc05 100644 (file)
@@ -265,7 +265,7 @@ public:
     CrstBase *GetThreadsOwnedCrsts();
     void SetThreadsOwnedCrsts(CrstBase *pCrst);
 
-    __declspec(noinline) EEThreadId GetHolderThreadId()
+    NOINLINE EEThreadId GetHolderThreadId()
     {
         LIMITED_METHOD_CONTRACT;
         return m_holderthreadid;
index 602522d..118ec1c 100644 (file)
@@ -35,7 +35,7 @@ class EEContract : public BaseContract
     virtual void DestructorDefinedThatCallsRestore(){}
 
   public:
-    __declspec(nothrow) ~EEContract()
+    NOTHROW_DECL ~EEContract()
     {
         Restore();
     }
index 132760b..10e35bb 100644 (file)
@@ -43,7 +43,7 @@
 #endif // _TARGET_ARM_ || _TARGET_ARM64_ || _TARGET_X86_
 
 #ifndef FEATURE_PAL
-void __declspec(noinline)
+void NOINLINE
 ClrUnwindEx(EXCEPTION_RECORD* pExceptionRecord,
                  UINT_PTR          ReturnValue,
                  UINT_PTR          TargetIP,
index f432571..0a7569a 100644 (file)
@@ -59,7 +59,7 @@ BOOL FinalizerThread::HaveExtraWorkForFinalizer()
 
 // This helper is here to avoid EH goo associated with DefineFullyQualifiedNameForStack being 
 // invoked when logging is off.
-__declspec(noinline)
+NOINLINE
 void LogFinalization(Object* obj)
 {
     STATIC_CONTRACT_NOTHROW;
index 58fa062..740637b 100644 (file)
@@ -422,7 +422,7 @@ public:                                                 \
     }                                                   \
                                                         \
 private:                                                \
-    __declspec(noinline) static void Log##name##AccessStatic(const void * p) \
+    NOINLINE static void Log##name##AccessStatic(const void * p) \
     {                                                   \
         WRAPPER_NO_CONTRACT;                               \
         /* To make the logging callsite as small as */  \
index 3a7a69e..f0c035e 100644 (file)
@@ -3665,14 +3665,14 @@ private:
 
 #if defined(FEATURE_HFA)
 #if defined(UNIX_AMD64_ABI)
-#error Can't define both FEATURE_HFA and UNIX_AMD64_ABI
+#error "Can't define both FEATURE_HFA and UNIX_AMD64_ABI"
 #endif
         enum_flag_IsHFA                     = 0x00000800,   // This type is an HFA (Homogenous Floating-point Aggregate)
 #endif // FEATURE_HFA
 
 #if defined(UNIX_AMD64_ABI)
 #if defined(FEATURE_HFA)
-#error Can't define both FEATURE_HFA and UNIX_AMD64_ABI
+#error "Can't define both FEATURE_HFA and UNIX_AMD64_ABI"
 #endif
         enum_flag_IsRegStructPassed         = 0x00000800,   // This type is a System V register passed struct.
 #endif // UNIX_AMD64_ABI
index 5eef5ab..9fd34ba 100644 (file)
@@ -1864,7 +1864,7 @@ MethodTableBuilder::BuildMethodTableThrowing(
 #endif
 #ifdef UNIX_AMD64_ABI
 #ifdef FEATURE_HFA
-#error Can't have FEATURE_HFA and UNIX_AMD64_ABI defined at the same time.
+#error "Can't have FEATURE_HFA and UNIX_AMD64_ABI defined at the same time."
 #endif // FEATURE_HFA
         SystemVAmd64CheckForPassStructInRegister();
 #endif // UNIX_AMD64_ABI
@@ -1872,7 +1872,7 @@ MethodTableBuilder::BuildMethodTableThrowing(
 
 #ifdef UNIX_AMD64_ABI
 #ifdef FEATURE_HFA
-#error Can't have FEATURE_HFA and UNIX_AMD64_ABI defined at the same time.
+#error "Can't have FEATURE_HFA and UNIX_AMD64_ABI defined at the same time."
 #endif // FEATURE_HFA
     if (HasLayout())
     {
index 76bce8d..8bb63b7 100644 (file)
@@ -6821,7 +6821,7 @@ BOOL Thread::IsSPBeyondLimit()
     return FALSE;
 }
 
-__declspec(noinline) void AllocateSomeStack(){
+NOINLINE void AllocateSomeStack(){
     LIMITED_METHOD_CONTRACT;
 #ifdef _TARGET_X86_
     const size_t size = 0x200;