Do some adjustments about struct/union nameless extension markers.
Necessary to ease synchronization with wine headers...


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@4031 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/accctrl.h b/mingw-w64-headers/include/accctrl.h
index 79e9628..6856c55 100644
--- a/mingw-w64-headers/include/accctrl.h
+++ b/mingw-w64-headers/include/accctrl.h
@@ -348,7 +348,7 @@
 #define ACTRL_WIN_EXIT ACTRL_PERM_9
 
     typedef struct _ACTRL_OVERLAPPED {
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	PVOID Provider;
 	ULONG Reserved1;
       } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/adtgen.h b/mingw-w64-headers/include/adtgen.h
index 281b8b8..889049a 100644
--- a/mingw-w64-headers/include/adtgen.h
+++ b/mingw-w64-headers/include/adtgen.h
@@ -51,7 +51,7 @@
   AUDIT_PARAM_TYPE Type;
   ULONG Length;
   DWORD Flags;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG_PTR Data0;
     PWSTR String;
     ULONG_PTR u;
@@ -60,7 +60,7 @@
     ULONG LogonId_LowPart;
     AUDIT_OBJECT_TYPES *pObjectTypes;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG_PTR Data1;
     LONG LogonId_HighPart;
   };
diff --git a/mingw-w64-headers/include/authif.h b/mingw-w64-headers/include/authif.h
index cb3bd0f..5c46ccf 100644
--- a/mingw-w64-headers/include/authif.h
+++ b/mingw-w64-headers/include/authif.h
@@ -42,7 +42,7 @@
   DWORD dwAttrType;
   RADIUS_DATA_TYPE fDataType;
   DWORD cbDataLength;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DWORD dwValue;
     PCSTR lpValue;
   };
diff --git a/mingw-w64-headers/include/bdamedia.h b/mingw-w64-headers/include/bdamedia.h
index f2f0c37..7f74530 100644
--- a/mingw-w64-headers/include/bdamedia.h
+++ b/mingw-w64-headers/include/bdamedia.h
@@ -30,7 +30,7 @@
 
 typedef struct _KSM_BDA_PIN {
   KSMETHOD Method;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG PinId;
     ULONG PinType;
   };
@@ -39,11 +39,11 @@
 
 typedef struct _KSM_BDA_PIN_PAIR {
   KSMETHOD Method;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG InputPinId;
     ULONG InputPinType;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG OutputPinId;
     ULONG OutputPinType;
   };
@@ -358,7 +358,7 @@
 
 typedef struct _ChannelInfo {
   LONG lFrequency;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
      struct {
       LONG lONID;
       LONG lTSID;
diff --git a/mingw-w64-headers/include/bluetoothapis.h b/mingw-w64-headers/include/bluetoothapis.h
index 0d44649..65e1cfe 100644
--- a/mingw-w64-headers/include/bluetoothapis.h
+++ b/mingw-w64-headers/include/bluetoothapis.h
@@ -22,7 +22,7 @@
 typedef LPVOID HBLUETOOTH_CONTAINER_ELEMENT;
 
 typedef struct _BLUETOOTH_ADDRESS {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     BTH_ADDR ullLong;
     BYTE     rgBytes[6];
   };
@@ -100,7 +100,7 @@
   BLUETOOTH_AUTHENTICATION_METHOD       authenticationMethod;
   BLUETOOTH_IO_CAPABILITY               ioCapability;
   BLUETOOTH_AUTHENTICATION_REQUIREMENTS authenticationRequirements;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Numeric_Value;
     ULONG Passkey;
   } ;
@@ -137,7 +137,7 @@
 typedef struct _BLUETOOTH_AUTHENTICATE_RESPONSE {
   BLUETOOTH_ADDRESS               bthAddressRemote;
   BLUETOOTH_AUTHENTICATION_METHOD authMethod;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     BLUETOOTH_PIN_INFO                pinInfo;
     BLUETOOTH_OOB_DATA_INFO           oobInfo;
     BLUETOOTH_NUMERIC_COMPARISON_INFO numericCompInfo;
diff --git a/mingw-w64-headers/include/bthsdpdef.h b/mingw-w64-headers/include/bthsdpdef.h
index 5703a52..e4e89fb 100644
--- a/mingw-w64-headers/include/bthsdpdef.h
+++ b/mingw-w64-headers/include/bthsdpdef.h
@@ -70,7 +70,7 @@
 typedef struct _SPD_ELEMENT_DATA {
   SDP_TYPE         type;
   SDP_SPECIFICTYPE specificType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     SDP_LARGE_INTEGER_16  int128;
     LONGLONG              int64;
     LONG                  int32;
diff --git a/mingw-w64-headers/include/celib.h b/mingw-w64-headers/include/celib.h
index ebceda4..f74c112 100644
--- a/mingw-w64-headers/include/celib.h
+++ b/mingw-w64-headers/include/celib.h
@@ -89,7 +89,7 @@
 };
 
 typedef struct _LLFILETIME {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LONGLONG ll;
     FILETIME ft;
   };
diff --git a/mingw-w64-headers/include/clusapi.h b/mingw-w64-headers/include/clusapi.h
index d65c96e..e2ca12a 100644
--- a/mingw-w64-headers/include/clusapi.h
+++ b/mingw-w64-headers/include/clusapi.h
@@ -724,7 +724,7 @@
 
   typedef union CLUSPROP_SYNTAX {
     DWORD dw;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       WORD wFormat;
       WORD wType;
     };
@@ -823,16 +823,16 @@
 #ifndef __cplusplus
     CLUSPROP_VALUE;
 #endif
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       SECURITY_DESCRIPTOR_RELATIVE sd;
       BYTE rgbSecurityDescriptor[1];
     };
   } CLUSPROP_SECURITY_DESCRIPTOR,*PCLUSPROP_SECURITY_DESCRIPTOR;
 
   typedef struct CLUS_RESOURCE_CLASS_INFO {
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
-	__MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
+	__C89_NAMELESSUNION union {
 	  DWORD dw;
 	  CLUSTER_RESOURCE_CLASS rc;
 	};
@@ -925,8 +925,8 @@
 
   typedef CLUSPROP_DWORD CLUSPROP_DISK_SIGNATURE,*PCLUSPROP_DISK_SIGNATURE;
   typedef struct CLUS_SCSI_ADDRESS {
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	UCHAR PortNumber;
 	UCHAR PathId;
 	UCHAR TargetId;
diff --git a/mingw-w64-headers/include/cmnquery.h b/mingw-w64-headers/include/cmnquery.h
index 00fc7ec..d1a7121 100644
--- a/mingw-w64-headers/include/cmnquery.h
+++ b/mingw-w64-headers/include/cmnquery.h
@@ -103,7 +103,7 @@
   LPVOID pHandlerParameters;
   CLSID clsidDefaultForm;
   IPersistQuery *pPersistQuery;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     void *pFormParameters;
     IPropertyBag *ppbFormParameters;
   };
diff --git a/mingw-w64-headers/include/commctrl.h b/mingw-w64-headers/include/commctrl.h
index 9bc5e94..6cde029 100644
--- a/mingw-w64-headers/include/commctrl.h
+++ b/mingw-w64-headers/include/commctrl.h
@@ -3115,7 +3115,7 @@
   typedef struct tagTVINSERTSTRUCTA {
     HTREEITEM hParent;
     HTREEITEM hInsertAfter;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       TVITEMEXA itemex;
       TV_ITEMA item;
     } DUMMYUNIONNAME;
@@ -3124,7 +3124,7 @@
   typedef struct tagTVINSERTSTRUCTW {
     HTREEITEM hParent;
     HTREEITEM hInsertAfter;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       TVITEMEXW itemex;
       TV_ITEMW item;
     } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/compstui.h b/mingw-w64-headers/include/compstui.h
index dabb719..01510a4 100644
--- a/mingw-w64-headers/include/compstui.h
+++ b/mingw-w64-headers/include/compstui.h
@@ -734,12 +734,12 @@
   WORD cbSize;
   WORD Flags;
   LPTSTR pTitle;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DLGPROC DlgProc;
     FARPROC pfnCallBack;
   } DUMMYUNIONNAME;
   ULONG_PTR IconID;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     WORD DlgTemplateID;
     HANDLE hDlgTemplate;
   } DUMMYUNIONNAME2;
@@ -772,11 +772,11 @@
   DWORD Flags;
   ULONG_PTR UserData;
   LPTSTR pName;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LONG Sel;
     LPTSTR pSel;
   } DUMMYUNIONNAME;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PEXTCHKBOX pExtChkBox;
     PEXTPUSH pExtPush;
   } DUMMYUNIONNAME2;
@@ -797,7 +797,7 @@
   WORD cOptItem;
   WORD Flags;
   POPTITEM pCurItem;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LONG OldSel;
     LPTSTR pOldSel;
   } DUMMYUNIONNAME;
@@ -817,7 +817,7 @@
   DLGPROC DlgProc;
   LPTSTR pTabName;
   ULONG_PTR IconID;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     WORD DlgTemplateID;
     HANDLE hDlgTemplate;
   } DUMMYUNIONNAME;
@@ -912,7 +912,7 @@
   LPTSTR pTitle;
   HWND hWndParent;
   HINSTANCE hInst;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     HICON hIcon;
     ULONG_PTR IconID;
   } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/cryptuiapi.h b/mingw-w64-headers/include/cryptuiapi.h
index 39087cb..cf98b06 100644
--- a/mingw-w64-headers/include/cryptuiapi.h
+++ b/mingw-w64-headers/include/cryptuiapi.h
@@ -80,7 +80,7 @@
     DWORD dwSize;
     LPWSTR pwszSigningCertFileName;
     DWORD dwPvkChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO pPvkFileInfo;
       PCRYPT_KEY_PROV_INFO pPvkProvInfo;
     };
@@ -116,12 +116,12 @@
   typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_INFO {
     DWORD dwSize;
     DWORD dwSubjectChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPCWSTR pwszFileName;
       PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO pSignBlobInfo;
     };
     DWORD dwSigningCertChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCCERT_CONTEXT pSigningCertContext;
       PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO pSigningCertStore;
       PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO pSigningCertPvkInfo;
@@ -180,7 +180,7 @@
     PCCERT_CONTEXT pCertContext;
     LPCSTR *rgszPurposes;
     DWORD cPurposes;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CRYPT_PROVIDER_DATA const *pCryptProviderData;
       HANDLE hWVTStateData;
     };
@@ -206,7 +206,7 @@
     PCCERT_CONTEXT pCertContext;
     LPCSTR *rgszPurposes;
     DWORD cPurposes;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CRYPT_PROVIDER_DATA const *pCryptProviderData;
       HANDLE hWVTStateData;
     };
@@ -243,7 +243,7 @@
     DWORD dwSize;
     LPCWSTR pwszExportFileName;
     DWORD dwSubjectChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCCERT_CONTEXT pCertContext;
       PCCTL_CONTEXT pCTLContext;
       PCCRL_CONTEXT pCRLContext;
@@ -283,7 +283,7 @@
   typedef struct _CRYPTUI_WIZ_IMPORT_SUBJECT_INFO {
     DWORD dwSize;
     DWORD dwSubjectChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPCWSTR pwszFileName;
       PCCERT_CONTEXT pCertContext;
       PCCTL_CONTEXT pCTLContext;
diff --git a/mingw-w64-headers/include/cryptxml.h b/mingw-w64-headers/include/cryptxml.h
index 7985c40..1a3a6ae 100644
--- a/mingw-w64-headers/include/cryptxml.h
+++ b/mingw-w64-headers/include/cryptxml.h
@@ -257,7 +257,7 @@
 
 typedef struct _CRYPT_XML_X509DATA_ITEM {
   DWORD dwType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     CRYPT_XML_ISSUER_SERIAL IssuerSerial;
     CRYPT_XML_DATA_BLOB     SKI;
     LPCWSTR                 wszSubjectName;
@@ -281,7 +281,7 @@
 
 typedef struct _CRYPT_XML_KEY_INFO_ITEM {
   DWORD dwType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LPCWSTR             wszKeyName;
     CRYPT_XML_KEY_VALUE KeyValue;
     CRYPT_XML_BLOB      RetrievalMethod;
@@ -320,7 +320,7 @@
 
 typedef struct _CRYPT_XML_KEY_VALUE {
   DWORD dwType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     CRYPT_XML_KEY_DSA_KEY_VALUE   DSAKeyValue;
     CRYPT_XML_KEY_RSA_KEY_VALUE   RSAKeyValue;
     CRYPT_XML_KEY_ECDSA_KEY_VALUE ECDSAKeyValue;
diff --git a/mingw-w64-headers/include/dbgeng.h b/mingw-w64-headers/include/dbgeng.h
index daab555..596ed90 100644
--- a/mingw-w64-headers/include/dbgeng.h
+++ b/mingw-w64-headers/include/dbgeng.h
@@ -664,11 +664,11 @@
 #define DEBUG_VALUE_TYPES 12
 
   typedef struct _DEBUG_VALUE {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       UCHAR I8;
       USHORT I16;
       ULONG I32;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG64 I64;
 	WINBOOL Nat;
       };
diff --git a/mingw-w64-headers/include/delayimp.h b/mingw-w64-headers/include/delayimp.h
index 9b7ce4f..41ee1cb 100644
--- a/mingw-w64-headers/include/delayimp.h
+++ b/mingw-w64-headers/include/delayimp.h
@@ -39,7 +39,7 @@
 
 typedef struct DelayLoadProc {
   WINBOOL fImportByName;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LPCSTR szProcName;
     DWORD dwOrdinal;
   };
diff --git a/mingw-w64-headers/include/dimm.h b/mingw-w64-headers/include/dimm.h
index b5f2c9a..db83a86 100644
--- a/mingw-w64-headers/include/dimm.h
+++ b/mingw-w64-headers/include/dimm.h
@@ -95,7 +95,7 @@
     POINT ptSoftKbdPos;
     DWORD fdwConversion;
     DWORD fdwSentence;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LOGFONTA A;
       LOGFONTW W;
     } lfFont;
diff --git a/mingw-w64-headers/include/dxva2api.h b/mingw-w64-headers/include/dxva2api.h
index bd517cf..eba5ce3 100644
--- a/mingw-w64-headers/include/dxva2api.h
+++ b/mingw-w64-headers/include/dxva2api.h
@@ -181,8 +181,8 @@
 } DXVA2_DecodeExecuteParams;
 
 typedef struct {
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       UINT SampleFormat            :8;
       UINT VideoChromaSubsampling  :4;
       UINT NominalRange            :3;
@@ -196,8 +196,8 @@
 } DXVA2_ExtendedFormat;
 
 typedef struct _DXVA2_Fixed32 {
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       USHORT Fraction;
       SHORT  Value;
     } DUMMYSTRUCTNAME;
@@ -342,8 +342,8 @@
 
 /* DXVA H264 */
 typedef struct {
-    __MINGW_EXTENSION union {
-        __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+        __C89_NAMELESSSTRUCT struct {
             UCHAR Index7Bits     : 7;
             UCHAR AssociatedFlag : 1;
         };
@@ -440,8 +440,8 @@
     USHORT wFrameHeightInMbsMinus1;
     DXVA_PicEntry_H264 CurrPic;
     UCHAR  num_ref_frames;
-    __MINGW_EXTENSION union {
-        __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+        __C89_NAMELESSSTRUCT struct {
             USHORT field_pic_flag           : 1;
             USHORT MbaffFrameFlag           : 1;
             USHORT residual_colour_transform_flag : 1;
diff --git a/mingw-w64-headers/include/esent.h b/mingw-w64-headers/include/esent.h
index 9f21c5b..1fedfc1 100644
--- a/mingw-w64-headers/include/esent.h
+++ b/mingw-w64-headers/include/esent.h
@@ -539,9 +539,9 @@
   char bMonth;
   char bYear;
   char bFiller1;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     char bFiller2;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       unsigned char fOSSnapshot  :1;
       unsigned char fReserved  :7;
     };
@@ -569,7 +569,7 @@
 
 typedef struct _JET_BKINFO {
   JET_LGPOS lgposMark;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     JET_LOGTIME logtimeMark;
     JET_BKLOGTIME bklogtimeMark;
   };
@@ -683,9 +683,9 @@
 
 typedef struct tagCONVERT_A {
   char* SzOldDll;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long fFlags;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       unsigned long fSchemaChangesOnly  :1;
     };
   };
@@ -693,9 +693,9 @@
 
 typedef struct tagCONVERT_W {
   WCHAR* SzOldDll;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long fFlags;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       unsigned long fSchemaChangesOnly  :1;
     };
   };
@@ -740,9 +740,9 @@
   unsigned long cbFreeSpaceRequiredLow;
   unsigned long  cbFreeSpaceRequiredHigh;
   unsigned long csecToUpgrade;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long ulFlags;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       unsigned long fUpgradable  :1;
       unsigned long fAlreadyUpgraded  :1;
     };
@@ -759,12 +759,12 @@
 typedef struct _JET_ENUMCOLUMN {
   JET_COLUMNID columnid;
   JET_ERR err;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       unsigned long cEnumColumnValue;
       JET_ENUMCOLUMNVALUE rgEnumColumnValue;
     };
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       unsigned long cbData;
       void* pvData;
     };
@@ -784,11 +784,11 @@
   unsigned long cbKey;
   JET_GRBIT grbit;
   unsigned long ulDensity;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long lcid;
     JET_UNICODEINDEX* pidxunicode;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long cbVarSegMac;
     JET_TUPLELIMITS* ptuplelimits;
   };
@@ -805,11 +805,11 @@
   unsigned long cbKey;
   JET_GRBIT grbit;
   unsigned long ulDensity;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long lcid;
     JET_UNICODEINDEX* pidxunicode;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     unsigned long cbVarSegMac;
     JET_TUPLELIMITS* ptuplelimits;
   };
diff --git a/mingw-w64-headers/include/evcoll.h b/mingw-w64-headers/include/evcoll.h
index 1cff05e..fdc07c2 100644
--- a/mingw-w64-headers/include/evcoll.h
+++ b/mingw-w64-headers/include/evcoll.h
@@ -93,7 +93,7 @@
 } EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID;
 
 typedef struct _EC_VARIANT {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     BOOL      BooleanVal;
     UINT32    UInt32Val;
     ULONGLONG DateTimeVal;
diff --git a/mingw-w64-headers/include/evntcons.h b/mingw-w64-headers/include/evntcons.h
index a67fae5..aeeed00 100644
--- a/mingw-w64-headers/include/evntcons.h
+++ b/mingw-w64-headers/include/evntcons.h
@@ -39,7 +39,7 @@
 typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM {
   USHORT    Reserved1;
   USHORT    ExtType;
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     USHORT Linkage   : 1;
     USHORT Reserved2 :15;
   } DUMMYSTRUCTNAME;
@@ -57,8 +57,8 @@
   LARGE_INTEGER    TimeStamp;
   GUID             ProviderId;
   EVENT_DESCRIPTOR EventDescriptor;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       ULONG KernelTime;
       ULONG UserTime;
     } DUMMYSTRUCTNAME;
diff --git a/mingw-w64-headers/include/evntrace.h b/mingw-w64-headers/include/evntrace.h
index f5593c7..d1d12dc 100644
--- a/mingw-w64-headers/include/evntrace.h
+++ b/mingw-w64-headers/include/evntrace.h
@@ -286,14 +286,14 @@
 
 typedef struct _EVENT_TRACE_HEADER {
   USHORT Size;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     USHORT FieldTypeFlags;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       UCHAR HeaderType;
       UCHAR MarkerFlags;
     } DUMMYSTRUCTNAME;
   } DUMMYUNIONNAME;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Version;
     struct {
       UCHAR Type;
@@ -304,17 +304,17 @@
   ULONG ThreadId;
   ULONG ProcessId;
   LARGE_INTEGER TimeStamp;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     GUID Guid;
     ULONGLONG GuidPtr;
   } DUMMYUNIONNAME3;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       ULONG KernelTime;
       ULONG UserTime;
     } DUMMYSTRUCTNAME;
     ULONG64 ProcessorTime;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG ClientContext;
       ULONG Flags;
     } DUMMYSTRUCTNAME2;
@@ -323,14 +323,14 @@
 
 typedef struct _EVENT_INSTANCE_HEADER {
   USHORT Size;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     USHORT FieldTypeFlags;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       UCHAR HeaderType;
       UCHAR MarkerFlags;
     } DUMMYSTRUCTNAME;
   } DUMMYUNIONNAME;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Version;
     struct {
       UCHAR Type;
@@ -344,13 +344,13 @@
   ULONGLONG RegHandle;
   ULONG InstanceId;
   ULONG ParentInstanceId;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       ULONG KernelTime;
       ULONG UserTime;
     } DUMMYSTRUCTNAME;
     ULONG64 ProcessorTime;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG EventId;
       ULONG Flags;
     } DUMMYSTRUCTNAME2;
@@ -373,7 +373,7 @@
 
 typedef struct _TRACE_LOGFILE_HEADER {
   ULONG BufferSize;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Version;
     struct {
       UCHAR MajorVersion;
@@ -389,9 +389,9 @@
   ULONG MaximumFileSize;
   ULONG LogFileMode;
   ULONG BuffersWritten;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     GUID LogInstanceGuid;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG StartBuffers;
       ULONG PointerSize;
       ULONG EventsLost;
@@ -416,7 +416,7 @@
 
 typedef struct _TRACE_LOGFILE_HEADER32 {
   ULONG BufferSize;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Version;
     struct {
       UCHAR MajorVersion;
@@ -432,9 +432,9 @@
   ULONG MaximumFileSize;
   ULONG LogFileMode;
   ULONG BuffersWritten;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     GUID LogInstanceGuid;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG StartBuffers;
       ULONG PointerSize;
       ULONG EventsLost;
@@ -459,7 +459,7 @@
 
 typedef struct _TRACE_LOGFILE_HEADER64 {
   ULONG BufferSize;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Version;
     struct {
       UCHAR MajorVersion;
@@ -475,9 +475,9 @@
   ULONG MaximumFileSize;
   ULONG LogFileMode;
   ULONG BuffersWritten;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     GUID LogInstanceGuid;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG StartBuffers;
       ULONG PointerSize;
       ULONG EventsLost;
@@ -583,7 +583,7 @@
   GUID ParentGuid;
   PVOID MofData;
   ULONG MofLength;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG ClientContext;
     ETW_BUFFER_CONTEXT BufferContext; /* MSDN says ULONG, for XP and older? */
   } DUMMYUNIONNAME;
@@ -612,7 +612,7 @@
   LPWSTR LoggerName;
   LONGLONG CurrentTime;
   ULONG BuffersRead;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG LogFileMode;
     ULONG ProcessTraceMode;
   } DUMMYUNIONNAME;
@@ -622,7 +622,7 @@
   ULONG BufferSize;
   ULONG Filled;
   ULONG EventsLost;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PEVENT_CALLBACK EventCallback;
     PEVENT_RECORD_CALLBACK EventRecordCallback;
   } DUMMYUNIONNAME2;
@@ -635,7 +635,7 @@
   LPSTR LoggerName;
   LONGLONG CurrentTime;
   ULONG BuffersRead;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG LogFileMode;
     ULONG ProcessTraceMode;
   } DUMMYUNIONNAME;
@@ -645,7 +645,7 @@
   ULONG BufferSize;
   ULONG Filled;
   ULONG EventsLost;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PEVENT_CALLBACK EventCallback;
     PEVENT_RECORD_CALLBACK EventRecordCallback;
   } DUMMYUNIONNAME2;
diff --git a/mingw-w64-headers/include/fdi.h b/mingw-w64-headers/include/fdi.h
index 490c5fe..4371938 100644
--- a/mingw-w64-headers/include/fdi.h
+++ b/mingw-w64-headers/include/fdi.h
@@ -166,7 +166,7 @@
   typedef struct {
     FDIDECRYPTTYPE fdidt;
     void *pvUser;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	void *pHeaderReserve;
 	USHORT cbHeaderReserve;
diff --git a/mingw-w64-headers/include/fwpmtypes.h b/mingw-w64-headers/include/fwpmtypes.h
index 196343c..5152d87 100644
--- a/mingw-w64-headers/include/fwpmtypes.h
+++ b/mingw-w64-headers/include/fwpmtypes.h
@@ -42,7 +42,7 @@
 
 typedef struct FWPM_ACTION0_ {
   FWP_ACTION_TYPE type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     GUID filterType;
     GUID calloutKey;
   };
@@ -174,7 +174,7 @@
   UINT32                 numFilterConditions;
   FWPM_FILTER_CONDITION0 *filterCondition;
   FWPM_ACTION0           action;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT64 rawContext;
     GUID   providerContextKey;
   };
@@ -214,11 +214,11 @@
   UINT32         flags;
   FWP_IP_VERSION ipVersion;
   UINT8          ipProtocol;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32           localAddrV4;
     FWP_BYTE_ARRAY16 localAddrV6;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32           remoteAddrV4;
     FWP_BYTE_ARRAY16 remoteAddrV6;
   };
@@ -263,10 +263,10 @@
   IKEEXT_QM_SA_STATE     qmState;
   IKEEXT_SA_ROLE         saRole;
   IPSEC_TRAFFIC_TYPE     saTrafficType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     FWP_CONDITION_VALUE0 localSubNet;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     FWP_CONDITION_VALUE0 remoteSubNet;
   };
   UINT64                 qmFilterId;
@@ -284,11 +284,11 @@
 
 typedef struct FWPM_NET_EVENT_IPSEC_DOSP_DROP0_ {
   FWP_IP_VERSION ipVersion;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32 publicHostV4Addr;
     UINT8  publicHostV6Addr[16];
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32 internalHostV4Addr;
     UINT8  internalHostV6Addr[16];
   };
@@ -299,7 +299,7 @@
 typedef struct FWPM_NET_EVENT0_ {
   FWPM_NET_EVENT_HEADER0 header;
   FWPM_NET_EVENT_TYPE    type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 *ikeMmFailure;
     FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 *ikeQmFailure;
     FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 *ikeEmFailure;
@@ -333,7 +333,7 @@
   GUID                       *providerKey;
   FWP_BYTE_BLOB              providerData;
   FWPM_PROVIDER_CONTEXT_TYPE type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IPSEC_KEYING_POLICY0    *keyingPolicy;
     IPSEC_TRANSPORT_POLICY0 *ikeQmTransportPolicy;
     IPSEC_TUNNEL_POLICY0    *ikeQmTunnelPolicy;
diff --git a/mingw-w64-headers/include/fwptypes.h b/mingw-w64-headers/include/fwptypes.h
index 6a9f2a5..84195f8 100644
--- a/mingw-w64-headers/include/fwptypes.h
+++ b/mingw-w64-headers/include/fwptypes.h
@@ -123,7 +123,7 @@
 
 typedef struct FWP_VALUE0_ {
   FWP_DATA_TYPE type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LPVOID                EMPTY;      // case(FWP_EMPTY)
     UINT8                 uint8;
     UINT16                uint16;
@@ -153,7 +153,7 @@
 
 typedef struct FWP_CONDITION_VALUE0_ {
   FWP_DATA_TYPE type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT8                uint8;
     UINT16               uint16;
     UINT32               uint32;
diff --git a/mingw-w64-headers/include/http.h b/mingw-w64-headers/include/http.h
index 7ede017..dd4d8fd 100644
--- a/mingw-w64-headers/include/http.h
+++ b/mingw-w64-headers/include/http.h
@@ -101,7 +101,7 @@
 
   typedef struct _HTTP_DATA_CHUNK {
     HTTP_DATA_CHUNK_TYPE DataChunkType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	PVOID pBuffer;
 	ULONG BufferLength;
diff --git a/mingw-w64-headers/include/iads.h b/mingw-w64-headers/include/iads.h
index 79e3f67..be87703 100644
--- a/mingw-w64-headers/include/iads.h
+++ b/mingw-w64-headers/include/iads.h
@@ -742,7 +742,7 @@
 
   typedef struct _adsvalue {
     ADSTYPE dwType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ADS_DN_STRING DNString;
       ADS_CASE_EXACT_STRING CaseExactString;
       ADS_CASE_IGNORE_STRING CaseIgnoreString;
diff --git a/mingw-w64-headers/include/ifdef.h b/mingw-w64-headers/include/ifdef.h
index 19c4b2f..bdc1a22 100644
--- a/mingw-w64-headers/include/ifdef.h
+++ b/mingw-w64-headers/include/ifdef.h
@@ -86,7 +86,7 @@
 #include <pshpack1.h>
 typedef union _NET_LUID {
   ULONG64 Value;
-  __MINGW_EXTENSION struct { /* bitfield with 64 bit types. */
+  __C89_NAMELESSSTRUCT struct { /* bitfield with 64 bit types. */
     ULONG64 Reserved  :24;
     ULONG64 NetLuidIndex  :24;
     ULONG64 IfType  :16;
diff --git a/mingw-w64-headers/include/iketypes.h b/mingw-w64-headers/include/iketypes.h
index 000464b..2ad32bc 100644
--- a/mingw-w64-headers/include/iketypes.h
+++ b/mingw-w64-headers/include/iketypes.h
@@ -159,8 +159,8 @@
 
 typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION0_ {
   IKEEXT_CERT_CONFIG_TYPE inboundConfigType;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       UINT32                   inboundRootArraySize;
       IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray;
     };
@@ -168,8 +168,8 @@
     IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig;
   };
   IKEEXT_CERT_CONFIG_TYPE outboundConfigType;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       UINT32                   outboundRootArraySize;
       IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray;
     };
@@ -181,7 +181,7 @@
 
 typedef struct IKEEXT_AUTHENTICATION_METHOD0_ {
   IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IKEEXT_PRESHARED_KEY_AUTHENTICATION0 presharedKeyAuthentication;
     IKEEXT_CERTIFICATE_AUTHENTICATION0   certificateAuthentication;
     IKEEXT_KERBEROS_AUTHENTICATION0      kerberosAuthentication;
@@ -264,7 +264,7 @@
 typedef struct IKEEXT_CREDENTIAL0_ {
   IKEEXT_AUTHENTICATION_METHOD_TYPE        authenticationMethodType;
   IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IKEEXT_PRESHARED_KEY_AUTHENTICATION0 *presharedKey;
     IKEEXT_CERTIFICATE_CREDENTIAL0       *certificate;
     IKEEXT_NAME_CREDENTIAL0              *name;
@@ -315,11 +315,11 @@
 
 typedef struct IKEEXT_TRAFFIC0_ {
   FWP_IP_VERSION ipVersion;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32 localV4Address;
     UINT8  localV6Address[16];
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32 remoteV4Address;
     UINT8  remoteV6Address[16];
   };
@@ -330,7 +330,7 @@
   UINT64                 saId;
   IKEEXT_KEY_MODULE_TYPE keyModuleType;
   FWP_IP_VERSION         ipVersion;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation;
   };
   IKEEXT_TRAFFIC0        ikeTraffic;
diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h
index a2144f6..0871cb3 100644
--- a/mingw-w64-headers/include/iphlpapi.h
+++ b/mingw-w64-headers/include/iphlpapi.h
@@ -138,7 +138,7 @@
 
 typedef struct _NET_ADDRESS_INFO {
   NET_ADDRESS_FORMAT Format;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       WCHAR Address[DNS_MAX_NAME_BUFFER_LENGTH];
       WCHAR Port[6];
diff --git a/mingw-w64-headers/include/ipmsp.h b/mingw-w64-headers/include/ipmsp.h
index ab90467..b667082 100644
--- a/mingw-w64-headers/include/ipmsp.h
+++ b/mingw-w64-headers/include/ipmsp.h
@@ -206,7 +206,7 @@
 
   typedef struct tagTAPI_STREAM_CONFIG_CAPS {
     StreamConfigCapsType CapsType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       TAPI_VIDEO_STREAM_CONFIG_CAPS VideoCap;
       TAPI_AUDIO_STREAM_CONFIG_CAPS AudioCap;
     };
diff --git a/mingw-w64-headers/include/iprtrmib.h b/mingw-w64-headers/include/iprtrmib.h
index 0f917bf..45ad5e6 100644
--- a/mingw-w64-headers/include/iprtrmib.h
+++ b/mingw-w64-headers/include/iprtrmib.h
@@ -181,8 +181,8 @@
   DWORD dwLocalPort;
   DWORD dwOwningPid;
   LARGE_INTEGER liCreateTimestamp;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       DWORD SpecificPortBind : 1;
     };
     DWORD dwFlags;
@@ -203,8 +203,8 @@
   DWORD dwLocalPort;
   DWORD dwOwningPid;
   LARGE_INTEGER liCreateTimestamp;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       DWORD SpecificPortBind : 1;
     };
     DWORD dwFlags;
@@ -690,7 +690,7 @@
 #ifdef __cplusplus
   MIB_IPFORWARDROW ForwardRow;
 #else
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DWORD dwForwardDest;
     DWORD dwForwardMask;
     DWORD dwForwardPolicy;
@@ -741,7 +741,7 @@
 
 typedef struct _MIB_OPAQUE_INFO {
   DWORD dwId;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONGLONG ullAlign;
     BYTE rgbyData[1];
   };
diff --git a/mingw-w64-headers/include/ipsectypes.h b/mingw-w64-headers/include/ipsectypes.h
index e932b29..2a3ed89 100644
--- a/mingw-w64-headers/include/ipsectypes.h
+++ b/mingw-w64-headers/include/ipsectypes.h
@@ -147,7 +147,7 @@
 
 typedef struct IPSEC_SA_TRANSFORM0_ {
   IPSEC_TRANSFORM_TYPE ipsecTransformType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IPSEC_AUTH_TRANSFORM0            *ahTransform;
     IPSEC_AUTH_TRANSFORM0            *espAuthTransform;
     IPSEC_CIPHER_TRANSFORM0          *espCipherTransform;
@@ -177,11 +177,11 @@
 
 typedef struct IPSEC_TUNNEL_ENDPOINTS0_ {
   FWP_IP_VERSION ipVersion;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32 localV4Address;
     UINT8  localV6Address[16];
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UINT32 remoteV4Address;
     UINT8  remoteV6Address[16];
   };
diff --git a/mingw-w64-headers/include/iptypes.h b/mingw-w64-headers/include/iptypes.h
index 659c245..6c6114b 100644
--- a/mingw-w64-headers/include/iptypes.h
+++ b/mingw-w64-headers/include/iptypes.h
@@ -68,9 +68,9 @@
   typedef NL_DAD_STATE IP_DAD_STATE;
 
   typedef struct _IP_ADAPTER_UNICAST_ADDRESS_XP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Flags;
       };
@@ -86,9 +86,9 @@
   } IP_ADAPTER_UNICAST_ADDRESS_XP,*PIP_ADAPTER_UNICAST_ADDRESS_XP;
 
   typedef struct _IP_ADAPTER_UNICAST_ADDRESS_LH {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Flags;
       };
@@ -113,9 +113,9 @@
 #endif
 
   typedef struct _IP_ADAPTER_ANYCAST_ADDRESS_XP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Flags;
       };
@@ -127,9 +127,9 @@
   typedef IP_ADAPTER_ANYCAST_ADDRESS_XP *PIP_ADAPTER_ANYCAST_ADDRESS;
 
   typedef struct _IP_ADAPTER_MULTICAST_ADDRESS_XP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Flags;
       };
@@ -145,9 +145,9 @@
 #define IP_ADAPTER_ADDRESS_PRIMARY 0x04
 
   typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Reserved;
       };
@@ -159,9 +159,9 @@
   typedef IP_ADAPTER_DNS_SERVER_ADDRESS_XP *PIP_ADAPTER_DNS_SERVER_ADDRESS;
 
   typedef struct _IP_ADAPTER_PREFIX_XP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Flags;
       };
@@ -174,9 +174,9 @@
   typedef IP_ADAPTER_PREFIX_XP *PIP_ADAPTER_PREFIX;
 
   typedef struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Reserved;
       };
@@ -190,9 +190,9 @@
 #endif
 
   typedef struct _IP_ADAPTER_GATEWAY_ADDRESS_LH {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD Reserved;
       };
@@ -222,9 +222,9 @@
 #define IP_ADAPTER_IPV6_MANAGE_ADDRESS_CONFIG 0x200
 
   typedef struct _IP_ADAPTER_ADDRESSES_LH {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG   Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	IF_INDEX IfIndex;
       };
@@ -240,9 +240,9 @@
     PWCHAR FriendlyName;
     BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
     ULONG PhysicalAddressLength;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG Flags;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG DdnsEnabled : 1;
 	ULONG RegisterAdapterSuffix : 1;
 	ULONG Dhcpv4Enabled : 1;
@@ -285,9 +285,9 @@
   } IP_ADAPTER_ADDRESSES_LH;
 
   typedef struct _IP_ADAPTER_ADDRESSES_XP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Length;
 	DWORD IfIndex;
       };
diff --git a/mingw-w64-headers/include/ipxrtdef.h b/mingw-w64-headers/include/ipxrtdef.h
index 3cd40d9..fe61127 100644
--- a/mingw-w64-headers/include/ipxrtdef.h
+++ b/mingw-w64-headers/include/ipxrtdef.h
@@ -63,7 +63,7 @@
 } IPXWAN_IF_INFO,*PIPXWAN_IF_INFO;
 
 typedef struct _IPX_STATIC_ROUTE_INFO {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG DwordAlign;
     UCHAR Network[4];
   };
@@ -75,7 +75,7 @@
 typedef IPX_SERVER_ENTRY IPX_STATIC_SERVICE_INFO,*PIPX_STATIC_SERVICE_INFO;
 
 typedef struct _IPX_STATIC_NETBIOS_NAME_INFO {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG DwordAlign;
     UCHAR Name[16];
   };
diff --git a/mingw-w64-headers/include/ipxsap.h b/mingw-w64-headers/include/ipxsap.h
index f2a5ef8..88e6599 100644
--- a/mingw-w64-headers/include/ipxsap.h
+++ b/mingw-w64-headers/include/ipxsap.h
@@ -24,7 +24,7 @@
 } SAP_IF_INFO,*PSAP_IF_INFO;
 
 typedef struct _SAP_SERVICE_FILTER_INFO {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     USHORT ServiceType;
     ULONG ServiceType_align;
   };
diff --git a/mingw-w64-headers/include/iscsidsc.h b/mingw-w64-headers/include/iscsidsc.h
index 82d3a8e..1f93917 100644
--- a/mingw-w64-headers/include/iscsidsc.h
+++ b/mingw-w64-headers/include/iscsidsc.h
@@ -203,7 +203,7 @@
 
 typedef struct _IKE_AUTHENTICATION_INFORMATION {
   IKE_AUTHENTICATION_METHOD AuthMethod;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IKE_AUTHENTICATION_PRESHARED_KEY PsKey;
   };
 } IKE_AUTHENTICATION_INFORMATION, *PIKE_AUTHENTICATION_INFORMATION;
diff --git a/mingw-w64-headers/include/ks.h b/mingw-w64-headers/include/ks.h
index bb7c315..143bd3c 100644
--- a/mingw-w64-headers/include/ks.h
+++ b/mingw-w64-headers/include/ks.h
@@ -13,7 +13,7 @@
 #ifdef  _KS_NO_ANONYMOUS_STRUCTURES_
 #define _KS_ANON_STRUCT(X)			struct X
 #else
-#define _KS_ANON_STRUCT(X)	__MINGW_EXTENSION struct
+#define _KS_ANON_STRUCT(X)	__C89_NAMELESSSTRUCT struct
 #endif
 
 #ifndef _NTRTL_
@@ -69,7 +69,7 @@
 } KSPRIORITY,*PKSPRIORITY;
 
 typedef struct {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     _KS_ANON_STRUCT(_IDENTIFIER)
     {
       GUID Set;
@@ -226,7 +226,7 @@
 
 typedef struct {
   ULONG NotificationType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       HANDLE Event;
       ULONG_PTR Reserved[2];
@@ -298,7 +298,7 @@
 typedef struct {
   ULONG Size;
   ULONG Flags;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     HANDLE ObjectHandle;
     PVOID ObjectPointer;
   };
@@ -783,7 +783,7 @@
 #define KSDATARANGE_REQUIRED_ATTRIBUTES		(1 << KSDATARANGE_BIT_REQUIRED_ATTRIBUTES)
 
 typedef union {
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     ULONG FormatSize;
     ULONG Flags;
     ULONG SampleSize;
@@ -1061,9 +1061,9 @@
   KSPIN_COMMUNICATION Communication;
   const GUID *Category;
   const GUID *Name;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LONGLONG Reserved;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG ConstrainedDataRangesCount;
       PKSDATARANGE *ConstrainedDataRanges;
     };
@@ -1258,7 +1258,7 @@
 #define KSALLOCATOR_FLAG_ATTENTION_STEPPING		0x00002000
 
 typedef struct {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG OptionsFlags;
     ULONG RequirementsFlags;
   };
@@ -1966,13 +1966,13 @@
 
 typedef struct {
   ULONG PropertyId;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PFNKSHANDLER GetPropertyHandler;
     BOOLEAN GetSupported;
   };
   ULONG MinProperty;
   ULONG MinData;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PFNKSHANDLER SetPropertyHandler;
     BOOLEAN SetSupported;
   };
@@ -1991,11 +1991,11 @@
 
 typedef struct {
   ULONG PropertyId;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PFNKSFASTHANDLER GetPropertyHandler;
     BOOLEAN GetSupported;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PFNKSFASTHANDLER SetPropertyHandler;
     BOOLEAN SetSupported;
   };
@@ -2032,7 +2032,7 @@
 
 typedef struct {
   ULONG MethodId;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PFNKSHANDLER MethodHandler;
     BOOLEAN MethodSupported;
   };
@@ -2049,7 +2049,7 @@
 
 typedef struct {
   ULONG MethodId;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PFNKSFASTHANDLER MethodHandler;
     BOOLEAN MethodSupported;
   };
@@ -2130,7 +2130,7 @@
 struct _KSEVENT_ENTRY {
   LIST_ENTRY ListEntry;
   PVOID Object;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PKSDPC_ITEM DpcItem;
     PKSBUFFER_ITEM BufferItem;
   };
@@ -2850,7 +2850,7 @@
 struct _KSSTREAM_POINTER_OFFSET
 {
 #if defined(_NTDDK_)
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PUCHAR Data;
     PKSMAPPING Mappings;
   };
diff --git a/mingw-w64-headers/include/ksmedia.h b/mingw-w64-headers/include/ksmedia.h
index 1bf4492..fc399d6 100644
--- a/mingw-w64-headers/include/ksmedia.h
+++ b/mingw-w64-headers/include/ksmedia.h
@@ -717,15 +717,15 @@
 } KSAUDIO_POSITION,*PKSAUDIO_POSITION;
 
 typedef struct _DS3DVECTOR {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     FLOAT x;
     FLOAT dvX;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     FLOAT y;
     FLOAT dvY;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     FLOAT z;
     FLOAT dvZ;
   };
@@ -2474,7 +2474,7 @@
   DWORD dwBitErrorRate;
   REFERENCE_TIME AvgTimePerFrame;
   KS_BITMAPINFOHEADER bmiHeader;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
     DWORD dwBitMasks[KS_iMASK_COLORS];
     KS_TRUECOLORINFO TrueColorInfo;
@@ -4156,29 +4156,29 @@
   DWORD dwSize;
   DWORD dwFlags;
   DWORD dwFourCC;
-  __MINGW_EXTENSION union
+  __C89_NAMELESSUNION union
   {
     DWORD dwRGBBitCount;
     DWORD dwYUVBitCount;
     DWORD dwZBufferBitDepth;
     DWORD dwAlphaBitDepth;
   };
-  __MINGW_EXTENSION union
+  __C89_NAMELESSUNION union
   {
     DWORD dwRBitMask;
     DWORD dwYBitMask;
   };
-  __MINGW_EXTENSION union
+  __C89_NAMELESSUNION union
   {
     DWORD dwGBitMask;
     DWORD dwUBitMask;
   };
-  __MINGW_EXTENSION union
+  __C89_NAMELESSUNION union
   {
     DWORD dwBBitMask;
     DWORD dwVBitMask;
   };
-  __MINGW_EXTENSION union
+  __C89_NAMELESSUNION union
   {
     DWORD dwRGBAlphaBitMask;
     DWORD dwYUVAlphaBitMask;
diff --git a/mingw-w64-headers/include/mapiutil.h b/mingw-w64-headers/include/mapiutil.h
index bcf33c4..5194bbe 100644
--- a/mingw-w64-headers/include/mapiutil.h
+++ b/mingw-w64-headers/include/mapiutil.h
@@ -148,7 +148,7 @@
   typedef struct {
     ULONG cctl;
     LPTSTR lpszResourceName;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPTSTR lpszComponent;
       ULONG ulItemID;
     };
diff --git a/mingw-w64-headers/include/mmc.h b/mingw-w64-headers/include/mmc.h
index 5ff2f1d..51ba9ce 100644
--- a/mingw-w64-headers/include/mmc.h
+++ b/mingw-w64-headers/include/mmc.h
@@ -1971,7 +1971,7 @@
 
   typedef struct _MMC_TASK_DISPLAY_OBJECT {
     MMC_TASK_DISPLAY_TYPE eDisplayType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       MMC_TASK_DISPLAY_BITMAP uBitmap;
       MMC_TASK_DISPLAY_SYMBOL uSymbol;
     };
@@ -1986,7 +1986,7 @@
     LPOLESTR szText;
     LPOLESTR szHelpString;
     MMC_ACTION_TYPE eActionType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LONG_PTR nCommandID;
       LPOLESTR szActionURL;
       LPOLESTR szScript;
@@ -2506,13 +2506,13 @@
     LPOLESTR pstrPersistableViewDescription;
     MMC_VIEW_TYPE eViewType;
     DWORD dwMiscOptions;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwListOptions;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD dwHTMLOptions;
 	LPOLESTR pstrURL;
       };
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD dwOCXOptions;
 	LPUNKNOWN pUnkControl;
       };
diff --git a/mingw-w64-headers/include/mmsystem.h b/mingw-w64-headers/include/mmsystem.h
index e5afc91..c86f320 100644
--- a/mingw-w64-headers/include/mmsystem.h
+++ b/mingw-w64-headers/include/mmsystem.h
@@ -1128,11 +1128,11 @@
     CHAR szShortName[MIXER_SHORT_NAME_CHARS];
     CHAR szName[MIXER_LONG_NAME_CHARS];
     union {
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	LONG lMinimum;
 	LONG lMaximum;
       } DUMMYSTRUCTNAME;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD dwMinimum;
 	DWORD dwMaximum;
       } DUMMYSTRUCTNAME2;
@@ -1154,11 +1154,11 @@
     WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
     WCHAR szName[MIXER_LONG_NAME_CHARS];
     union {
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	LONG lMinimum;
 	LONG lMaximum;
       } DUMMYSTRUCTNAME;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD dwMinimum;
 	DWORD dwMaximum;
       } DUMMYSTRUCTNAME2;
@@ -1245,7 +1245,7 @@
   typedef struct tagMIXERLINECONTROLSA {
     DWORD cbStruct;
     DWORD dwLineID;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwControlID;
       DWORD dwControlType;
     } DUMMYUNIONNAME;
@@ -1257,7 +1257,7 @@
   typedef struct tagMIXERLINECONTROLSW {
     DWORD cbStruct;
     DWORD dwLineID;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwControlID;
       DWORD dwControlType;
     } DUMMYUNIONNAME;
@@ -1285,7 +1285,7 @@
     DWORD cbStruct;
     DWORD dwControlID;
     DWORD cChannels;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HWND hwndOwner;
       DWORD cMultipleItems;
     } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/mprapi.h b/mingw-w64-headers/include/mprapi.h
index 24277de..4dbea5a 100644
--- a/mingw-w64-headers/include/mprapi.h
+++ b/mingw-w64-headers/include/mprapi.h
@@ -812,7 +812,7 @@
 
 typedef struct _PROJECTION_INFO {
   UCHAR projectionInfoType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     IKEV2_PROJECTION_INFO Ikev2ProjectionInfo;
     PPP_PROJECTION_INFO   PppProjectionInfo;
   } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/mqmail.h b/mingw-w64-headers/include/mqmail.h
index e355c76..453af05 100644
--- a/mingw-w64-headers/include/mqmail.h
+++ b/mingw-w64-headers/include/mqmail.h
@@ -95,7 +95,7 @@
     LPFILETIME pftDate;
     LPMQMailRecipList pRecips;
     MQMailEMailType iType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       MQMailFormData form;
       MQMailMessageData message;
       MQMailTnefData tnef;
diff --git a/mingw-w64-headers/include/msasn1.h b/mingw-w64-headers/include/msasn1.h
index 65ef64a..6f53430 100644
--- a/mingw-w64-headers/include/msasn1.h
+++ b/mingw-w64-headers/include/msasn1.h
@@ -139,7 +139,7 @@
 
   typedef struct tagASN1open_t {
     ASN1uint32_t length;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       void *encoded;
       void *value;
     };
@@ -204,7 +204,7 @@
     ASN1uint32_t cPDUs;
     const ASN1FreeFun_t *apfnFreeMemory;
     const ASN1uint32_t *acbStructSize;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ASN1PerFunArr_t PER;
       ASN1BerFunArr_t BER;
     };
@@ -275,7 +275,7 @@
 
   typedef struct tagASN1optionparam_t {
     ASN1option_e eOption;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ASN1encodingrule_e eRule;
       ASN1uint32_t cbRequiredDecodedBufSize;
       struct {
diff --git a/mingw-w64-headers/include/msp.h b/mingw-w64-headers/include/msp.h
index b9a3b65..802ace0 100644
--- a/mingw-w64-headers/include/msp.h
+++ b/mingw-w64-headers/include/msp.h
@@ -77,7 +77,7 @@
     DWORD dwSize;
     MSP_EVENT Event;
     MSP_HANDLE hCall;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	MSP_ADDRESS_EVENT Type;
 	ITTerminal *pTerminal;
diff --git a/mingw-w64-headers/include/mssip.h b/mingw-w64-headers/include/mssip.h
index 7962a26..4c3d9d6 100644
--- a/mingw-w64-headers/include/mssip.h
+++ b/mingw-w64-headers/include/mssip.h
@@ -43,7 +43,7 @@
 #define MSSIP_ADDINFO_CATMEMBER 2
 #define MSSIP_ADDINFO_BLOB 3
 #define MSSIP_ADDINFO_NONMSSIP 500
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct MS_ADDINFO_FLAT_ *psFlat;
       struct MS_ADDINFO_CATALOGMEMBER_ *psCatMember;
       struct MS_ADDINFO_BLOB_ *psBlob;
diff --git a/mingw-w64-headers/include/mswsock.h b/mingw-w64-headers/include/mswsock.h
index 5fd8b14..d0e68eb 100644
--- a/mingw-w64-headers/include/mswsock.h
+++ b/mingw-w64-headers/include/mswsock.h
@@ -87,8 +87,8 @@
 #define TP_ELEMENT_FILE 2
 #define TP_ELEMENT_EOP 4
     ULONG cLength;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	LARGE_INTEGER nFileOffset;
 	HANDLE hFile;
       };
diff --git a/mingw-w64-headers/include/ndattrib.h b/mingw-w64-headers/include/ndattrib.h
index e252878..4a83735 100644
--- a/mingw-w64-headers/include/ndattrib.h
+++ b/mingw-w64-headers/include/ndattrib.h
@@ -88,7 +88,7 @@
 
 typedef struct tagUiInfo {
   UI_INFO_TYPE type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LPWSTR pwzNull;
     ShellCommandInfo ShellInfo;
     LPWSTR pwzHelpURL;
@@ -119,7 +119,7 @@
 typedef struct tagHELPER_ATTRIBUTE {
   LPWSTR pwszName;
   ATTRIBUTE_TYPE  type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     WINBOOL Boolean;
     char Char;
     byte Byte;
diff --git a/mingw-w64-headers/include/netioapi.h b/mingw-w64-headers/include/netioapi.h
index c1ab8d6..4fda85a 100644
--- a/mingw-w64-headers/include/netioapi.h
+++ b/mingw-w64-headers/include/netioapi.h
@@ -81,8 +81,8 @@
   UCHAR             PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
   ULONG             PhysicalAddressLength;
   NL_NEIGHBOR_STATE State;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       BOOLEAN IsRouter  :1;
       BOOLEAN IsUnreachable  :1;
     };
@@ -254,7 +254,7 @@
   ULONG         PathMtu;
   ULONG         RttMean;
   ULONG         RttDeviation;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG LastReachable;
     ULONG LastUnreachable;
   };
diff --git a/mingw-w64-headers/include/netmon.h b/mingw-w64-headers/include/netmon.h
index e328632..ce78e99 100644
--- a/mingw-w64-headers/include/netmon.h
+++ b/mingw-w64-headers/include/netmon.h
@@ -203,7 +203,7 @@
 
   typedef struct _ADDRESS2 {
     DWORD Type;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       BYTE MACAddress[MAC_ADDRESS_SIZE];
       BYTE IPAddress[IP_ADDRESS_SIZE];
       BYTE IP6Address[IP6_ADDRESS_SIZE];
@@ -563,7 +563,7 @@
 #define UPDATE_ACTION_PAUSE_CAPTURE (0x3)
 #define UPDATE_ACTION_RTC_BUFFER_SWITCH (0x4)
 
-  __MINGW_EXTENSION typedef struct _UPDATE_EVENT {
+  __C89_NAMELESSSTRUCT typedef struct _UPDATE_EVENT {
     USHORT Event;
     DWORD Action;
     DWORD Status;
@@ -572,7 +572,7 @@
     DWORD_PTR lpUserContext;
     DWORD_PTR lpReserved;
     UINT FramesDropped;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD Reserved;
       LPFRAMETABLE lpFrameTable;
       DWORD_PTR lpPacketQueue;
@@ -658,7 +658,7 @@
 
 #pragma pack(push,1)
   typedef struct _CAPTUREFILE_HEADER {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CAPTUREFILE_HEADER_VALUES ActualHeader;
       BYTE Buffer[72];
     };
@@ -806,7 +806,7 @@
 
   typedef struct _ADDRESS {
     DWORD Type;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       BYTE MACAddress[MAC_ADDRESS_SIZE];
       BYTE IPAddress[IP_ADDRESS_SIZE];
       BYTE IPXRawAddress[IPX_ADDR_SIZE];
@@ -1251,7 +1251,7 @@
 
   typedef struct _SET {
     DWORD nEntries;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPVOID lpVoidTable;
       LPBYTE lpByteTable;
       LPWORD lpWordTable;
@@ -1299,7 +1299,7 @@
     LPSTR Comment;
     BYTE DataType;
     BYTE DataQualifier;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPVOID lpExtendedInfo;
       LPRANGE lpRange;
       LPSET lpSet;
@@ -1318,7 +1318,7 @@
     WORD Length;
     WORD LengthEx;
     ULPVOID lpData;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       BYTE Byte[1];
       WORD Word[1];
       DWORD Dword[1];
@@ -1335,7 +1335,7 @@
   typedef struct _PROPERTYINST {
     LPPROPERTYINFO lpPropertyInfo;
     LPSTR szPropertyText;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPVOID lpData;
       ULPBYTE lpByte;
       ULPWORD lpWord;
@@ -1645,7 +1645,7 @@
   typedef struct _FILTEROBJECT2 {
     FILTERACTIONTYPE Action;
     HPROPERTY hProperty;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VALUETYPE Value;
       HPROTOCOL hProtocol;
       LPVOID lpArray;
@@ -1655,7 +1655,7 @@
       ULPTIME lpTime;
       LPOBJECT_IDENTIFIER lpOID;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WORD ByteCount;
       WORD ByteOffset;
     };
@@ -1683,7 +1683,7 @@
   typedef struct _FILTEROBJECT {
     FILTERACTIONTYPE Action;
     HPROPERTY hProperty;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VALUETYPE Value;
       HPROTOCOL hProtocol;
       LPVOID lpArray;
@@ -1693,7 +1693,7 @@
       ULPTIME lpTime;
       LPOBJECT_IDENTIFIER lpOID;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WORD ByteCount;
       WORD ByteOffset;
     };
@@ -1803,7 +1803,7 @@
   typedef struct _ETHERNET {
     BYTE DstAddr[MAX_ADDR_LENGTH];
     BYTE SrcAddr[MAX_ADDR_LENGTH];
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WORD Length;
       WORD Type;
     };
@@ -1850,7 +1850,7 @@
     BYTE FrameCtrl;
     BYTE DstAddr[MAX_ADDR_LENGTH];
     BYTE SrcAddr[MAX_ADDR_LENGTH];
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       BYTE Info[0];
       WORD RoutingInfo[0];
     };
@@ -1900,11 +1900,11 @@
     BYTE dsap;
     BYTE ssap;
     struct {
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	BYTE Command;
 	BYTE NextSend;
       };
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	BYTE NextRecv;
 	BYTE Data[1];
       };
@@ -2451,14 +2451,14 @@
 #pragma pack(push,1)
 
   typedef struct _IP {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       BYTE Version;
       BYTE HdrLen;
     };
     BYTE ServiceType;
     WORD TotalLen;
     WORD ID;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WORD Flags;
       WORD FragOff;
     };
@@ -2770,14 +2770,14 @@
     BYTE Type;
     BYTE Code;
     WORD Checksum;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD Unused;
       DWORD Address;
       ReqReply RR;
       ParmProb PP;
       RouterAH RAH;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       TS Time;
       IP IP;
       RouterAE RAE[0];
diff --git a/mingw-w64-headers/include/ntddmou.h b/mingw-w64-headers/include/ntddmou.h
index fff16af..3b0a2b1 100644
--- a/mingw-w64-headers/include/ntddmou.h
+++ b/mingw-w64-headers/include/ntddmou.h
@@ -76,9 +76,9 @@
 typedef struct _MOUSE_INPUT_DATA {
   USHORT UnitId;
   USHORT Flags;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Buttons;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       USHORT ButtonFlags;
       USHORT ButtonData;
     } DUMMYSTRUCTNAME;
diff --git a/mingw-w64-headers/include/ntddndis.h b/mingw-w64-headers/include/ntddndis.h
index 9551424..fc7f0b4 100644
--- a/mingw-w64-headers/include/ntddndis.h
+++ b/mingw-w64-headers/include/ntddndis.h
@@ -853,7 +853,7 @@
   typedef struct _NDIS_802_11_TEST {
     ULONG Length;
     ULONG Type;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent;
       NDIS_802_11_RSSI RssiTrigger;
     };
@@ -1351,7 +1351,7 @@
 
   typedef struct _NDIS_GUID {
     GUID Guid;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       NDIS_OID Oid;
       NDIS_STATUS Status;
     };
diff --git a/mingw-w64-headers/include/ntddstor.h b/mingw-w64-headers/include/ntddstor.h
index 618c82b..4a19be3 100644
--- a/mingw-w64-headers/include/ntddstor.h
+++ b/mingw-w64-headers/include/ntddstor.h
@@ -628,7 +628,7 @@
 typedef struct _PERSISTENT_RESERVE_COMMAND {
   ULONG Version;
   ULONG Size;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       UCHAR ServiceAction:5;
       UCHAR Reserved1:3;
diff --git a/mingw-w64-headers/include/ntdef.h b/mingw-w64-headers/include/ntdef.h
index a481b47..9e03144 100644
--- a/mingw-w64-headers/include/ntdef.h
+++ b/mingw-w64-headers/include/ntdef.h
@@ -374,7 +374,7 @@
 
 /* Used to store a non-float 8 byte aligned structure */
 typedef struct _QUAD {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     __MINGW_EXTENSION __int64 UseThisFieldToCopy;
     double DoNotUseThisField;
   } DUMMYUNIONNAME;
@@ -387,7 +387,7 @@
 typedef struct _LARGE_INTEGER {
 #else
 typedef union _LARGE_INTEGER {
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     ULONG LowPart;
     LONG HighPart;
   } DUMMYSTRUCTNAME;
@@ -403,7 +403,7 @@
 typedef struct _ULARGE_INTEGER {
 #else
 typedef union _ULARGE_INTEGER {
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     ULONG LowPart;
     ULONG HighPart;
   } DUMMYSTRUCTNAME;
diff --git a/mingw-w64-headers/include/ntsecapi.h b/mingw-w64-headers/include/ntsecapi.h
index 3cd1a97..9e0abea 100644
--- a/mingw-w64-headers/include/ntsecapi.h
+++ b/mingw-w64-headers/include/ntsecapi.h
@@ -1346,7 +1346,7 @@
   typedef struct _KERB_SMARTCARD_CSP_INFO {
     DWORD dwCspInfoLen;
     DWORD MessageType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PVOID   ContextInformation;
       ULONG64 SpaceHolderForWow64;
     };
diff --git a/mingw-w64-headers/include/oaidl.h b/mingw-w64-headers/include/oaidl.h
index b063a87..41a5b7e 100644
--- a/mingw-w64-headers/include/oaidl.h
+++ b/mingw-w64-headers/include/oaidl.h
@@ -258,14 +258,14 @@
   typedef struct tagVARIANT VARIANT;
 
   struct tagVARIANT {
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct __tagVARIANT
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct __tagVARIANT
       {
 	VARTYPE vt;
 	WORD wReserved1;
 	WORD wReserved2;
 	WORD wReserved3;
-	__MINGW_EXTENSION union {
+	__C89_NAMELESSUNION union {
 	  LONGLONG llVal;
 	  LONG lVal;
 	  BYTE bVal;
@@ -338,7 +338,7 @@
     USHORT wReserved1;
     USHORT wReserved2;
     USHORT wReserved3;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LONGLONG llVal;
       LONG lVal;
       BYTE bVal;
@@ -399,7 +399,7 @@
   } TYPEKIND;
 
   typedef struct tagTYPEDESC {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct tagTYPEDESC *lptdesc;
       struct tagARRAYDESC *lpadesc;
       HREFTYPE hreftype;
@@ -451,7 +451,7 @@
 
   typedef struct tagELEMDESC {
     TYPEDESC tdesc;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       IDLDESC idldesc;
       PARAMDESC paramdesc;
     } DUMMYUNIONNAME;
@@ -556,7 +556,7 @@
   typedef struct tagVARDESC {
     MEMBERID memid;
     LPOLESTR lpstrSchema;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG oInst;
       VARIANT *lpvarValue;
     } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/objidl.h b/mingw-w64-headers/include/objidl.h
index e6e3be1..ebc6272 100644
--- a/mingw-w64-headers/include/objidl.h
+++ b/mingw-w64-headers/include/objidl.h
@@ -2187,7 +2187,7 @@
 
   typedef struct tagSTGMEDIUM {
     DWORD tymed;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HBITMAP hBitmap;
       HMETAFILEPICT hMetaFilePict;
       HENHMETAFILE hEnhMetaFile;
diff --git a/mingw-w64-headers/include/olectl.h b/mingw-w64-headers/include/olectl.h
index a40d061..42688da 100644
--- a/mingw-w64-headers/include/olectl.h
+++ b/mingw-w64-headers/include/olectl.h
@@ -94,7 +94,7 @@
 typedef struct tagPICTDESC {
   UINT cbSizeofstruct;
   UINT picType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       HBITMAP hbitmap;
       HPALETTE hpal;
diff --git a/mingw-w64-headers/include/oledb.h b/mingw-w64-headers/include/oledb.h
index 81dd40b..aa2bde3 100644
--- a/mingw-w64-headers/include/oledb.h
+++ b/mingw-w64-headers/include/oledb.h
@@ -531,16 +531,16 @@
 #ifndef DECIMAL_SETZERO
   typedef struct tagDEC {
     USHORT wReserved;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	BYTE scale;
 	BYTE sign;
       };
       USHORT signscale;
     };
     ULONG Hi32;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Lo32;
 	ULONG Mid32;
       };
diff --git a/mingw-w64-headers/include/p2p.h b/mingw-w64-headers/include/p2p.h
index 366f332..9a32da2 100644
--- a/mingw-w64-headers/include/p2p.h
+++ b/mingw-w64-headers/include/p2p.h
@@ -173,7 +173,7 @@
 
 typedef union _PEER_COLLAB_EVENT_DATA {
   PEER_COLLAB_EVENT_TYPE eventType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PEER_EVENT_WATCHLIST_CHANGED_DATA watchlistChangedData;
     PEER_EVENT_PRESENCE_CHANGED_DATA presenceChangedData;
     PEER_EVENT_APPLICATION_CHANGED_DATA applicationChangedData;
diff --git a/mingw-w64-headers/include/patchapi.h b/mingw-w64-headers/include/patchapi.h
index 0b9fe40..1c3acef 100644
--- a/mingw-w64-headers/include/patchapi.h
+++ b/mingw-w64-headers/include/patchapi.h
@@ -101,7 +101,7 @@
 
   typedef struct _PATCH_OLD_FILE_INFO {
     ULONG SizeOfThisStruct;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPCSTR OldFileNameA;
       LPCWSTR OldFileNameW;
       HANDLE OldFileHandle;
diff --git a/mingw-w64-headers/include/pdh.h b/mingw-w64-headers/include/pdh.h
index fa941c2..762d022 100644
--- a/mingw-w64-headers/include/pdh.h
+++ b/mingw-w64-headers/include/pdh.h
@@ -73,7 +73,7 @@
 
   typedef struct _PDH_FMT_COUNTERVALUE {
     DWORD CStatus;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LONG longValue;
       double doubleValue;
       LONGLONG largeValue;
@@ -142,10 +142,10 @@
     DWORD_PTR dwUserData;
     DWORD_PTR dwQueryUserData;
     LPSTR szFullPath;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PDH_DATA_ITEM_PATH_ELEMENTS_A DataItemPath;
       PDH_COUNTER_PATH_ELEMENTS_A CounterPath;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	LPSTR szMachineName;
 	LPSTR szObjectName;
 	LPSTR szInstanceName;
@@ -168,10 +168,10 @@
     DWORD_PTR dwUserData;
     DWORD_PTR dwQueryUserData;
     LPWSTR szFullPath;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PDH_DATA_ITEM_PATH_ELEMENTS_W DataItemPath;
       PDH_COUNTER_PATH_ELEMENTS_W CounterPath;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	LPWSTR szMachineName;
 	LPWSTR szObjectName;
 	LPWSTR szInstanceName;
@@ -206,8 +206,8 @@
     LPSTR szBaseFileName;
     DWORD dwFileType;
     DWORD dwReserved;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD PdlAutoNameInterval;
 	DWORD PdlAutoNameUnits;
 	LPSTR PdlCommandFilename;
@@ -217,7 +217,7 @@
 	FILETIME PdlLogStartTime;
 	FILETIME PdlLogEndTime;
       };
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD TlNumberOfBuffers;
 	DWORD TlMinimumBuffers;
 	DWORD TlMaximumBuffers;
@@ -241,8 +241,8 @@
     LPWSTR szBaseFileName;
     DWORD dwFileType;
     DWORD dwReserved;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD PdlAutoNameInterval;
 	DWORD PdlAutoNameUnits;
 	LPWSTR PdlCommandFilename;
@@ -252,7 +252,7 @@
 	FILETIME PdlLogStartTime;
 	FILETIME PdlLogEndTime;
       };
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD TlNumberOfBuffers;
 	DWORD TlMinimumBuffers;
 	DWORD TlMaximumBuffers;
diff --git a/mingw-w64-headers/include/propidl.h b/mingw-w64-headers/include/propidl.h
index 2696f7f..d31878c 100644
--- a/mingw-w64-headers/include/propidl.h
+++ b/mingw-w64-headers/include/propidl.h
@@ -187,13 +187,13 @@
 #define tag_inner_PROPVARIANT
 
   struct tagPROPVARIANT {
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct tag_inner_PROPVARIANT {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct tag_inner_PROPVARIANT {
 	VARTYPE vt;
 	PROPVAR_PAD1 wReserved1;
 	PROPVAR_PAD2 wReserved2;
 	PROPVAR_PAD3 wReserved3;
-	__MINGW_EXTENSION union {
+	__C89_NAMELESSUNION union {
 	  CHAR cVal;
 	  UCHAR bVal;
 	  SHORT iVal;
@@ -347,7 +347,7 @@
 
   typedef struct tagPROPSPEC {
     ULONG ulKind;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PROPID propid;
       LPOLESTR lpwstr;
     } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/prsht.h b/mingw-w64-headers/include/prsht.h
index f25a390..c131662 100644
--- a/mingw-w64-headers/include/prsht.h
+++ b/mingw-w64-headers/include/prsht.h
@@ -88,10 +88,10 @@
 #define PROPSHEETPAGEA_V1_FIELDS				\
   DWORD dwSize,dwFlags;						\
   HINSTANCE hInstance;						\
-  __MINGW_EXTENSION union {					\
+  __C89_NAMELESSUNION union {					\
     LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource;	\
   } DUMMYUNIONNAME;						\
-  __MINGW_EXTENSION union {					\
+  __C89_NAMELESSUNION union {					\
     HICON hIcon; LPCSTR pszIcon;				\
   } DUMMYUNIONNAME2;						\
   LPCSTR pszTitle;						\
@@ -103,10 +103,10 @@
 #define PROPSHEETPAGEW_V1_FIELDS				\
   DWORD dwSize, dwFlags;					\
   HINSTANCE hInstance;						\
-  __MINGW_EXTENSION union {					\
+  __C89_NAMELESSUNION union {					\
     LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource;	\
   } DUMMYUNIONNAME;						\
-  __MINGW_EXTENSION union {					\
+  __C89_NAMELESSUNION union {					\
     HICON hIcon; LPCWSTR pszIcon;				\
   } DUMMYUNIONNAME2;						\
   LPCWSTR pszTitle;						\
@@ -237,27 +237,27 @@
     DWORD dwFlags;
     HWND hwndParent;
     HINSTANCE hInstance;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HICON hIcon;
       LPCSTR pszIcon;
     } DUMMYUNIONNAME;
     LPCSTR pszCaption;
     UINT nPages;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       UINT nStartPage;
       LPCSTR pStartPage;
     } DUMMYUNIONNAME2;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPCPROPSHEETPAGEA ppsp;
       HPROPSHEETPAGE *phpage;
     } DUMMYUNIONNAME3;
     PFNPROPSHEETCALLBACK pfnCallback;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HBITMAP hbmWatermark;
       LPCSTR pszbmWatermark;
     } DUMMYUNIONNAME4;
     HPALETTE hplWatermark;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HBITMAP hbmHeader;
       LPCSTR pszbmHeader;
     } DUMMYUNIONNAME5;
@@ -270,27 +270,27 @@
     DWORD dwFlags;
     HWND hwndParent;
     HINSTANCE hInstance;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HICON hIcon;
       LPCWSTR pszIcon;
     } DUMMYUNIONNAME;
     LPCWSTR pszCaption;
     UINT nPages;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       UINT nStartPage;
       LPCWSTR pStartPage;
     } DUMMYUNIONNAME2;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPCPROPSHEETPAGEW ppsp;
       HPROPSHEETPAGE *phpage;
     } DUMMYUNIONNAME3;
     PFNPROPSHEETCALLBACK pfnCallback;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HBITMAP hbmWatermark;
       LPCWSTR pszbmWatermark;
     } DUMMYUNIONNAME4;
     HPALETTE hplWatermark;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HBITMAP hbmHeader;
       LPCWSTR pszbmHeader;
     } DUMMYUNIONNAME5;
diff --git a/mingw-w64-headers/include/psapi.h b/mingw-w64-headers/include/psapi.h
index e16534c..95acbc9 100644
--- a/mingw-w64-headers/include/psapi.h
+++ b/mingw-w64-headers/include/psapi.h
@@ -143,7 +143,7 @@
 #if (_WIN32_WINNT >= 0x0600)
 typedef union _PSAPI_WORKING_SET_EX_BLOCK {
   ULONG_PTR Flags;
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     ULONG_PTR Valid  :1;
     ULONG_PTR ShareCount  :3;
     ULONG_PTR Win32Protection  :11;
diff --git a/mingw-w64-headers/include/psdk_inc/_dbg_common.h b/mingw-w64-headers/include/psdk_inc/_dbg_common.h
index 5d168e4..aca13c0 100644
--- a/mingw-w64-headers/include/psdk_inc/_dbg_common.h
+++ b/mingw-w64-headers/include/psdk_inc/_dbg_common.h
@@ -1091,7 +1091,7 @@
     ULONG32 NumberOfStreams;
     RVA StreamDirectoryRva;
     ULONG32 CheckSum;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG32 Reserved;
       ULONG32 TimeDateStamp;
     };
@@ -1144,9 +1144,9 @@
     USHORT ProcessorArchitecture;
     USHORT ProcessorLevel;
     USHORT ProcessorRevision;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       USHORT Reserved0;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	UCHAR NumberOfProcessors;
 	UCHAR ProductType;
       };
@@ -1156,9 +1156,9 @@
     ULONG32 BuildNumber;
     ULONG32 PlatformId;
     RVA CSDVersionRva;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG32 Reserved1;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	USHORT SuiteMask;
 	USHORT Reserved2;
       };
@@ -1413,7 +1413,7 @@
     ULONG ProcessId;
     HANDLE ProcessHandle;
     ULONG CallbackType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       MINIDUMP_THREAD_CALLBACK Thread;
       MINIDUMP_THREAD_EX_CALLBACK ThreadEx;
       MINIDUMP_MODULE_CALLBACK Module;
@@ -1455,21 +1455,21 @@
 } MINIDUMP_MEMORY_INFO_LIST, *PMINIDUMP_MEMORY_INFO_LIST;
 
   typedef struct _MINIDUMP_CALLBACK_OUTPUT {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG ModuleWriteFlags;
       ULONG ThreadWriteFlags;
       ULONG SecondaryFlags;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG64 MemoryBase;
 	ULONG MemorySize;
       };
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	WINBOOL CheckCancel;
 	WINBOOL Cancel;
       };
       HANDLE Handle;
     };
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       MINIDUMP_MEMORY_INFO VmRegion;
       WINBOOL Continue;
     };
diff --git a/mingw-w64-headers/include/qossp.h b/mingw-w64-headers/include/qossp.h
index 2289418..8e8b3a0 100644
--- a/mingw-w64-headers/include/qossp.h
+++ b/mingw-w64-headers/include/qossp.h
@@ -58,7 +58,7 @@
 
 typedef struct _RSVP_FILTERSPEC {
   FilterType Type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     RSVP_FILTERSPEC_V4 FilterSpecV4;
     RSVP_FILTERSPEC_V6 FilterSpecV6;
     RSVP_FILTERSPEC_V6_FLOW FilterSpecV6Flow;
@@ -151,7 +151,7 @@
   ULONG Length;
   SERVICETYPE Service;
   AD_GENERAL_PARAMS Overrides;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     AD_GUARANTEED Guaranteed;
     PARAM_BUFFER ParamBuffer[1];
   };
diff --git a/mingw-w64-headers/include/ras.h b/mingw-w64-headers/include/ras.h
index cac6af6..5c62889 100644
--- a/mingw-w64-headers/include/ras.h
+++ b/mingw-w64-headers/include/ras.h
@@ -1015,7 +1015,7 @@
 
 typedef struct _RASTUNNELENDPOINT {
   DWORD dwType;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     RASIPV4ADDR ipv4;
     RASIPV6ADDR ipv6;
   } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/resapi.h b/mingw-w64-headers/include/resapi.h
index a7f05de..6608222 100644
--- a/mingw-w64-headers/include/resapi.h
+++ b/mingw-w64-headers/include/resapi.h
@@ -91,7 +91,7 @@
   typedef struct CLRES_FUNCTION_TABLE {
     DWORD TableSize;
     DWORD Version;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CLRES_V1_FUNCTIONS V1Functions;
     };
   } CLRES_FUNCTION_TABLE,*PCLRES_FUNCTION_TABLE;
@@ -120,7 +120,7 @@
     LPWSTR Name;
     LPWSTR KeyName;
     DWORD Format;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD_PTR DefaultPtr;
       DWORD Default;
       LPVOID lpDefault;
diff --git a/mingw-w64-headers/include/routprot.h b/mingw-w64-headers/include/routprot.h
index 14088e9..3c61f10 100644
--- a/mingw-w64-headers/include/routprot.h
+++ b/mingw-w64-headers/include/routprot.h
@@ -36,9 +36,9 @@
 #define IR_PROMISCUOUS_MULTICAST 1
 
   typedef struct _SUPPORT_FUNCTIONS {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONGLONG _Align8;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD dwVersion;
 	DWORD dwReserved;
       };
diff --git a/mingw-w64-headers/include/rpcndr.h b/mingw-w64-headers/include/rpcndr.h
index d29022f..0f9ae88 100644
--- a/mingw-w64-headers/include/rpcndr.h
+++ b/mingw-w64-headers/include/rpcndr.h
@@ -747,7 +747,7 @@
 
   typedef struct _NDR_USER_MARSHAL_INFO {
     unsigned long InformationLevel;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       NDR_USER_MARSHAL_INFO_LEVEL1 Level1;
     };
   } NDR_USER_MARSHAL_INFO;
diff --git a/mingw-w64-headers/include/rtmv2.h b/mingw-w64-headers/include/rtmv2.h
index 6a19455..d67b99e 100644
--- a/mingw-w64-headers/include/rtmv2.h
+++ b/mingw-w64-headers/include/rtmv2.h
@@ -152,8 +152,8 @@
 #define RTM_NEXTHOP_FLAGS_DOWN 0x0002
 
   typedef struct _RTM_ENTITY_ID {
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG EntityProtocolId;
 	ULONG EntityInstanceId;
       };
diff --git a/mingw-w64-headers/include/setupapi.h b/mingw-w64-headers/include/setupapi.h
index 0343aca..d5c99e1 100644
--- a/mingw-w64-headers/include/setupapi.h
+++ b/mingw-w64-headers/include/setupapi.h
@@ -68,7 +68,7 @@
     DWORD MajorVersion;
     DWORD MinorVersion;
     WORD ProcessorArchitecture;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WORD Reserved;
       WORD Flags;
     };
diff --git a/mingw-w64-headers/include/shellapi.h b/mingw-w64-headers/include/shellapi.h
index 468e603..7f7f530 100644
--- a/mingw-w64-headers/include/shellapi.h
+++ b/mingw-w64-headers/include/shellapi.h
@@ -277,7 +277,7 @@
     LPCSTR lpClass;
     HKEY hkeyClass;
     DWORD dwHotKey;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HANDLE hIcon;
       HANDLE hMonitor;
     } DUMMYUNIONNAME;
@@ -298,7 +298,7 @@
     LPCWSTR lpClass;
     HKEY hkeyClass;
     DWORD dwHotKey;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HANDLE hIcon;
       HANDLE hMonitor;
     } DUMMYUNIONNAME;
@@ -363,7 +363,7 @@
     DWORD dwState;
     DWORD dwStateMask;
     CHAR szInfo[256];
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       UINT uTimeout;
       UINT uVersion;
     } DUMMYUNIONNAME;
@@ -385,7 +385,7 @@
     DWORD dwState;
     DWORD dwStateMask;
     WCHAR szInfo[256];
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       UINT uTimeout;
       UINT uVersion;
     } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/shlobj.h b/mingw-w64-headers/include/shlobj.h
index 8185ac1..d8ab00f 100644
--- a/mingw-w64-headers/include/shlobj.h
+++ b/mingw-w64-headers/include/shlobj.h
@@ -389,7 +389,7 @@
     DATABLOCK_HEADER dbh;
 #else
 /*  DATABLOCK_HEADER; */
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD cbSize;
       DWORD dwSignature;
     };
@@ -422,7 +422,7 @@
     DATABLOCK_HEADER dbh;
 #else
 /*  DATABLOCK_HEADER; */
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD cbSize;
       DWORD dwSignature;
     };
@@ -436,7 +436,7 @@
     DATABLOCK_HEADER dbh;
 #else
 /*  DATABLOCK_HEADER; */
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD cbSize;
       DWORD dwSignature;
     };
diff --git a/mingw-w64-headers/include/shtypes.h b/mingw-w64-headers/include/shtypes.h
index c34cdbf..bce6ead 100644
--- a/mingw-w64-headers/include/shtypes.h
+++ b/mingw-w64-headers/include/shtypes.h
@@ -72,7 +72,7 @@
 #include <pshpack8.h>
   typedef struct _STRRET {
     UINT uType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPWSTR pOleStr;
       UINT uOffset;
       char cStr[260 ];
diff --git a/mingw-w64-headers/include/softpub.h b/mingw-w64-headers/include/softpub.h
index de3b6cb..a688c1f 100644
--- a/mingw-w64-headers/include/softpub.h
+++ b/mingw-w64-headers/include/softpub.h
@@ -41,7 +41,7 @@
     WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO,*PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO;
 
   struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD cbStruct;
       DWORD cbSize;
     };
@@ -56,7 +56,7 @@
   typedef HRESULT (WINAPI *PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK)(PCRYPT_PROVIDER_DATA pProvData,DWORD dwStepError,DWORD dwRegPolicySettings,DWORD cSigner,PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO *rgpSigner,void *pvPolicyArg);
 
   typedef struct _WTD_GENERIC_CHAIN_POLICY_CREATE_INFO {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD cbStruct;
       DWORD cbSize;
     };
@@ -67,7 +67,7 @@
   } WTD_GENERIC_CHAIN_POLICY_CREATE_INFO,*PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO;
 
   typedef struct _WTD_GENERIC_CHAIN_POLICY_DATA {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD cbStruct;
       DWORD cbSize;
     };
diff --git a/mingw-w64-headers/include/sqlext.h b/mingw-w64-headers/include/sqlext.h
index efed4cc..4be0e70 100644
--- a/mingw-w64-headers/include/sqlext.h
+++ b/mingw-w64-headers/include/sqlext.h
@@ -1511,11 +1511,11 @@
   typedef struct tagODBC_VS_ARGS {
     const GUID *pguidEvent;
     DWORD dwFlags;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WCHAR *wszArg;
       CHAR *szArg;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       WCHAR *wszCorrelation;
       CHAR *szCorrelation;
     };
diff --git a/mingw-w64-headers/include/sqloledb.h b/mingw-w64-headers/include/sqloledb.h
index 52d1122..23a06c6 100644
--- a/mingw-w64-headers/include/sqloledb.h
+++ b/mingw-w64-headers/include/sqloledb.h
@@ -197,7 +197,7 @@
   SSVARTYPE vt;
   DWORD dwReserved1;
   DWORD dwReserved2;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     BYTE bTinyIntVal;
     SHORT sShortIntVal;
     LONG lIntVal;
diff --git a/mingw-w64-headers/include/strmif.h b/mingw-w64-headers/include/strmif.h
index 23665c6..53a942c 100644
--- a/mingw-w64-headers/include/strmif.h
+++ b/mingw-w64-headers/include/strmif.h
@@ -2095,12 +2095,12 @@
   typedef struct __MIDL___MIDL_itf_strmif_0138_0006 {
     DWORD dwVersion;
     DWORD dwMerit;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG cPins;
 	const REGFILTERPINS *rgPins;
       };
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG cPins2;
 	const REGFILTERPINS2 *rgPins2;
       };
@@ -5093,7 +5093,7 @@
 #ifndef TIMECODE_DEFINED
 #define TIMECODE_DEFINED
   typedef union _timecode {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       WORD wFrameRate;
       WORD wFrameFract;
       DWORD dwFrames;
diff --git a/mingw-w64-headers/include/strsafe.h b/mingw-w64-headers/include/strsafe.h
index 3199dc3..5a18fcc 100644
--- a/mingw-w64-headers/include/strsafe.h
+++ b/mingw-w64-headers/include/strsafe.h
@@ -136,17 +136,12 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyWorkerA(pszDest,cchDest,pszSrc);
-  return hr;
+  return (cchDest > STRSAFE_MAX_CCH ? STRSAFE_E_INVALID_PARAMETER : StringCopyWorkerA(pszDest,cchDest,pszSrc));
 }
 
 STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyWorkerW(pszDest,cchDest,pszSrc);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyWorkerW(pszDest,cchDest,pszSrc);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -157,21 +152,14 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCopyA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc) {
-  HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyWorkerA(pszDest,cchDest,pszSrc);
-  return hr;
+  if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyWorkerA(pszDest,cbDest,pszSrc);
 }
 
 STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc) {
-  HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(wchar_t);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyWorkerW(pszDest,cchDest,pszSrc);
-  return hr;
+  size_t cchDest = cbDest / sizeof(wchar_t);
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyWorkerW(pszDest,cchDest,pszSrc);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -182,25 +170,15 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCopyExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(char);
-    hr = StringCopyExWorkerA(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyExWorkerA(pszDest,cchDest,cchDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
 }
 
 STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(wchar_t);
-    hr = StringCopyExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  size_t cbDest;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  cbDest = cchDest * sizeof(wchar_t);
+  return StringCopyExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -212,30 +190,26 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCopyExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyExWorkerA(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
+  if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  hr = StringCopyExWorkerA(pszDest,cbDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
+  if(SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) {
+    if(pcbRemaining)
       *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
-    }
   }
   return hr;
 }
 
 STRSAFEAPI StringCbCopyExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
+  size_t cchDest = cbDest / sizeof(wchar_t);
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(wchar_t);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
+
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  hr = StringCopyExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
   if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
+    if(pcbRemaining)
       *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
-    }
   }
   return hr;
 }
@@ -247,17 +221,15 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCopyNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy) {
-  HRESULT hr;
-  if((cchDest > STRSAFE_MAX_CCH) || (cchToCopy > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyNWorkerA(pszDest,cchDest,pszSrc,cchToCopy);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH || cchToCopy > STRSAFE_MAX_CCH)
+    return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyNWorkerA(pszDest,cchDest,pszSrc,cchToCopy);
 }
 
 STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy) {
-  HRESULT hr;
-  if((cchDest > STRSAFE_MAX_CCH) || (cchToCopy > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyNWorkerW(pszDest,cchDest,pszSrc,cchToCopy);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH || cchToCopy > STRSAFE_MAX_CCH)
+    return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyNWorkerW(pszDest,cchDest,pszSrc,cchToCopy);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -268,25 +240,17 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCopyNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy) {
-  HRESULT hr;
-  size_t cchDest;
-  size_t cchToCopy;
-  cchDest = cbDest / sizeof(char);
-  cchToCopy = cbToCopy / sizeof(char);
-  if((cchDest > STRSAFE_MAX_CCH) || (cchToCopy > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyNWorkerA(pszDest,cchDest,pszSrc,cchToCopy);
-  return hr;
+  if(cbDest > STRSAFE_MAX_CCH || cbToCopy > STRSAFE_MAX_CCH)
+    return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyNWorkerA(pszDest,cbDest,pszSrc,cbToCopy);
 }
 
 STRSAFEAPI StringCbCopyNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy) {
-  HRESULT hr;
-  size_t cchDest;
-  size_t cchToCopy;
-  cchDest = cbDest / sizeof(wchar_t);
-  cchToCopy = cbToCopy / sizeof(wchar_t);
-  if((cchDest > STRSAFE_MAX_CCH) || (cchToCopy > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyNWorkerW(pszDest,cchDest,pszSrc,cchToCopy);
-  return hr;
+  size_t cchDest  = cbDest / sizeof(wchar_t);
+  size_t cchToCopy = cbToCopy / sizeof(wchar_t);
+  if(cchDest > STRSAFE_MAX_CCH || cchToCopy > STRSAFE_MAX_CCH)
+    return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyNWorkerW(pszDest,cchDest,pszSrc,cchToCopy);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -297,25 +261,13 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCopyNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(char);
-    hr = StringCopyNExWorkerA(pszDest,cchDest,cbDest,pszSrc,cchToCopy,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyNExWorkerA(pszDest,cchDest,cchDest,pszSrc,cchToCopy,ppszDestEnd,pcchRemaining,dwFlags);
 }
 
 STRSAFEAPI StringCchCopyNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(wchar_t);
-    hr = StringCopyNExWorkerW(pszDest,cchDest,cbDest,pszSrc,cchToCopy,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCopyNExWorkerW(pszDest,cchDest,cchDest * sizeof(wchar_t),pszSrc,cchToCopy,ppszDestEnd,pcchRemaining,dwFlags);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -327,18 +279,13 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCopyNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
-  size_t cchToCopy;
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(char);
-  cchToCopy = cbToCopy / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCopyNExWorkerA(pszDest,cchDest,cbDest,pszSrc,cchToCopy,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
-      *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
-    }
-  }
+  if(cbDest > STRSAFE_MAX_CCH)
+    hr = STRSAFE_E_INVALID_PARAMETER;
+  else
+    hr = StringCopyNExWorkerA(pszDest,cbDest,cbDest,pszSrc,cbToCopy,ppszDestEnd,&cchRemaining,dwFlags);
+  if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
+    *pcbRemaining = cchRemaining;
   return hr;
 }
 
@@ -351,11 +298,8 @@
   cchToCopy = cbToCopy / sizeof(wchar_t);
   if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
   else hr = StringCopyNExWorkerW(pszDest,cchDest,cbDest,pszSrc,cchToCopy,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
-      *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
-    }
-  }
+  if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
+    *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
   return hr;
 }
 #endif /* !__CRT__NO_INLINE */
@@ -367,17 +311,13 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCatA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatWorkerA(pszDest,cchDest,pszSrc);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatWorkerA(pszDest,cchDest,pszSrc);
 }
 
 STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatWorkerW(pszDest,cchDest,pszSrc);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatWorkerW(pszDest,cchDest,pszSrc);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -388,21 +328,14 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCatA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc) {
-  HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatWorkerA(pszDest,cchDest,pszSrc);
-  return hr;
+  if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatWorkerA(pszDest,cbDest,pszSrc);
 }
 
 STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc) {
-  HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(wchar_t);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatWorkerW(pszDest,cchDest,pszSrc);
-  return hr;
+  size_t cchDest = cbDest / sizeof(wchar_t);
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatWorkerW(pszDest,cchDest,pszSrc);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -413,25 +346,14 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCatExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(char);
-    hr = StringCatExWorkerA(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatExWorkerA(pszDest,cchDest,cchDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
 }
 
 STRSAFEAPI StringCchCatExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(wchar_t);
-    hr = StringCatExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  size_t cbDest = cchDest*sizeof(wchar_t);
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -443,31 +365,23 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCatExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatExWorkerA(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
-      *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
-    }
-  }
+  if(cbDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
+  else hr = StringCatExWorkerA(pszDest,cbDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
+  if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
+    *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
   return hr;
 }
 
 STRSAFEAPI StringCbCatExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
+  size_t cchDest = cbDest / sizeof(wchar_t);
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(wchar_t);
+
   if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
   else hr = StringCatExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
-      *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
-    }
-  }
+  if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
+    *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
   return hr;
 }
 #endif /* !__CRT__NO_INLINE */
@@ -479,17 +393,13 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCatNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatNWorkerA(pszDest,cchDest,pszSrc,cchToAppend);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatNWorkerA(pszDest,cchDest,pszSrc,cchToAppend);
 }
 
 STRSAFEAPI StringCchCatNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatNWorkerW(pszDest,cchDest,pszSrc,cchToAppend);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatNWorkerW(pszDest,cchDest,pszSrc,cchToAppend);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -500,25 +410,16 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCatNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend) {
-  HRESULT hr;
-  size_t cchDest;
-  size_t cchToAppend;
-  cchDest = cbDest / sizeof(char);
-  cchToAppend = cbToAppend / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatNWorkerA(pszDest,cchDest,pszSrc,cchToAppend);
-  return hr;
+  if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatNWorkerA(pszDest,cbDest,pszSrc,cbToAppend);
 }
 
 STRSAFEAPI StringCbCatNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend) {
-  HRESULT hr;
-  size_t cchDest;
-  size_t cchToAppend;
-  cchDest = cbDest / sizeof(wchar_t);
-  cchToAppend = cbToAppend / sizeof(wchar_t);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatNWorkerW(pszDest,cchDest,pszSrc,cchToAppend);
-  return hr;
+  size_t cchDest = cbDest / sizeof(wchar_t);
+  size_t cchToAppend = cbToAppend / sizeof(wchar_t);
+
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatNWorkerW(pszDest,cchDest,pszSrc,cchToAppend);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -529,25 +430,13 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchCatNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(char);
-    hr = StringCatNExWorkerA(pszDest,cchDest,cbDest,pszSrc,cchToAppend,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatNExWorkerA(pszDest,cchDest,cchDest,pszSrc,cchToAppend,ppszDestEnd,pcchRemaining,dwFlags);
 }
 
 STRSAFEAPI StringCchCatNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    cbDest = cchDest*sizeof(wchar_t);
-    hr = StringCatNExWorkerW(pszDest,cchDest,cbDest,pszSrc,cchToAppend,ppszDestEnd,pcchRemaining,dwFlags);
-  }
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringCatNExWorkerW(pszDest,cchDest,(cchDest*sizeof(wchar_t)),pszSrc,cchToAppend,ppszDestEnd,pcchRemaining,dwFlags);
 }
 #endif
 
@@ -559,35 +448,23 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbCatNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
-  size_t cchToAppend;
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(char);
-  cchToAppend = cbToAppend / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringCatNExWorkerA(pszDest,cchDest,cbDest,pszSrc,cchToAppend,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
-      *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
-    }
-  }
+  if(cbDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
+  else hr = StringCatNExWorkerA(pszDest,cbDest,cbDest,pszSrc,cbToAppend,ppszDestEnd,&cchRemaining,dwFlags);
+  if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
+    *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
   return hr;
 }
 
 STRSAFEAPI StringCbCatNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned long dwFlags) {
   HRESULT hr;
-  size_t cchDest;
-  size_t cchToAppend;
+  size_t cchDest = cbDest / sizeof(wchar_t);
+  size_t cchToAppend = cbToAppend / sizeof(wchar_t);
   size_t cchRemaining = 0;
-  cchDest = cbDest / sizeof(wchar_t);
-  cchToAppend = cbToAppend / sizeof(wchar_t);
   if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
   else hr = StringCatNExWorkerW(pszDest,cchDest,cbDest,pszSrc,cchToAppend,ppszDestEnd,&cchRemaining,dwFlags);
-  if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
-    if(pcbRemaining) {
-      *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
-    }
-  }
+  if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
+    *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
   return hr;
 }
 #endif /* !__CRT__NO_INLINE */
@@ -599,17 +476,13 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchVPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
 }
 
 STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList) {
-  HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
-  return hr;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -620,21 +493,14 @@
 
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbVPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,va_list argList) {
-  HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
-  return hr;
+  if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringVPrintfWorkerA(pszDest,cbDest,pszFormat,argList);
 }
 
 STRSAFEAPI StringCbVPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,va_list argList) {
-  HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(wchar_t);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
-  return hr;
+  size_t cchDest = cbDest / sizeof(wchar_t);
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  return StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
 }
 #endif /* !__CRT__NO_INLINE */
 
@@ -646,25 +512,21 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,...) {
   HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    va_list argList;
-    va_start(argList,pszFormat);
-    hr = StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
-    va_end(argList);
-  }
+  va_list argList;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  va_start(argList,pszFormat);
+  hr = StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
+  va_end(argList);
   return hr;
 }
 
 STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,...) {
   HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    va_list argList;
-    va_start(argList,pszFormat);
-    hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
-    va_end(argList);
-  }
+  va_list argList;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  va_start(argList,pszFormat);
+  hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
+  va_end(argList);
   return hr;
 }
 #endif /* !__CRT__NO_INLINE */
@@ -677,29 +539,22 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCbPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,...) {
   HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(char);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    va_list argList;
-    va_start(argList,pszFormat);
-    hr = StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
-    va_end(argList);
-  }
+  va_list argList;
+  if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  va_start(argList,pszFormat);
+  hr = StringVPrintfWorkerA(pszDest,cbDest,pszFormat,argList);
+  va_end(argList);
   return hr;
 }
 
 STRSAFEAPI StringCbPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,...) {
   HRESULT hr;
-  size_t cchDest;
-  cchDest = cbDest / sizeof(wchar_t);
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    va_list argList;
-    va_start(argList,pszFormat);
-    hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
-    va_end(argList);
-  }
+  va_list argList;
+  size_t cchDest = cbDest / sizeof(wchar_t);
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  va_start(argList,pszFormat);
+  hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
+  va_end(argList);
   return hr;
 }
 #endif /* !__CRT__NO_INLINE */
@@ -712,29 +567,22 @@
 #ifndef __CRT__NO_INLINE
 STRSAFEAPI StringCchPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags,STRSAFE_LPCSTR pszFormat,...) {
   HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    va_list argList;
-    cbDest = cchDest*sizeof(char);
-    va_start(argList,pszFormat);
-    hr = StringVPrintfExWorkerA(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
-    va_end(argList);
-  }
+  va_list argList;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  va_start(argList,pszFormat);
+  hr = StringVPrintfExWorkerA(pszDest,cchDest,cchDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
+  va_end(argList);
   return hr;
 }
 
 STRSAFEAPI StringCchPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned long dwFlags,STRSAFE_LPCWSTR pszFormat,...) {
   HRESULT hr;
-  if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
-  else {
-    size_t cbDest;
-    va_list argList;
-    cbDest = cchDest*sizeof(wchar_t);
-    va_start(argList,pszFormat);
-    hr = StringVPrintfExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
-    va_end(argList);
-  }
+  size_t cbDest = cchDest * sizeof(wchar_t);
+  va_list argList;
+  if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
+  va_start(argList,pszFormat);
+  hr = StringVPrintfExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
+  va_end(argList);
   return hr;
 }
 #endif /* !__CRT__NO_INLINE */
diff --git a/mingw-w64-headers/include/tapi.h b/mingw-w64-headers/include/tapi.h
index bdd0a5b..3b9a156 100644
--- a/mingw-w64-headers/include/tapi.h
+++ b/mingw-w64-headers/include/tapi.h
@@ -1703,7 +1703,7 @@
     DWORD dwClientUserNameOffset;
     DWORD dwClientAppAPIVersion;
     DWORD dwRequestType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	DWORD dwAddressID;
 	LINEAGENTGROUPLIST GroupList;
diff --git a/mingw-w64-headers/include/tapi3.h b/mingw-w64-headers/include/tapi3.h
index 350acfc..bfc3487 100644
--- a/mingw-w64-headers/include/tapi3.h
+++ b/mingw-w64-headers/include/tapi3.h
@@ -1338,7 +1338,7 @@
     DWORD dwSize;
     MSP_EVENT Event;
     MSP_HANDLE hCall;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	MSP_ADDRESS_EVENT Type;
 	ITTerminal *pTerminal;
diff --git a/mingw-w64-headers/include/tdh.h b/mingw-w64-headers/include/tdh.h
index 0611aa9..37b18f6 100644
--- a/mingw-w64-headers/include/tdh.h
+++ b/mingw-w64-headers/include/tdh.h
@@ -24,7 +24,7 @@
 
 typedef struct _EVENT_MAP_ENTRY {
   ULONG OutputOffset;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG Value;
     ULONG InputOffset;
   };
@@ -50,7 +50,7 @@
   ULONG NameOffset;
   MAP_FLAGS Flag;
   ULONG EntryCount;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     MAP_VALUETYPE MapEntryValueType;
     ULONG FormatStringOffset;
   };
@@ -68,7 +68,7 @@
 typedef struct _EVENT_PROPERTY_INFO {
   PROPERTY_FLAGS Flags;
   ULONG          NameOffset;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       USHORT InType;
       USHORT OutType;
@@ -80,11 +80,11 @@
       ULONG  padding;
     } structType;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     USHORT count;
     USHORT countPropertyIndex;
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     USHORT length;
     USHORT lengthPropertyIndex;
   };
diff --git a/mingw-w64-headers/include/tspi.h b/mingw-w64-headers/include/tspi.h
index cc9ef24..9033c6a 100644
--- a/mingw-w64-headers/include/tspi.h
+++ b/mingw-w64-headers/include/tspi.h
@@ -75,7 +75,7 @@
     DWORD dwKey;
     DWORD dwTotalSize;
     DWORD dwQOSRequestType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	DWORD dwNumServiceLevelEntries;
 	LINEQOSSERVICELEVEL LineQOSServiceLevel[1];
diff --git a/mingw-w64-headers/include/txfw32.h b/mingw-w64-headers/include/txfw32.h
index 3d06673..cb98349 100644
--- a/mingw-w64-headers/include/txfw32.h
+++ b/mingw-w64-headers/include/txfw32.h
@@ -13,7 +13,7 @@
 #endif
 
 typedef struct _TXF_ID {
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     LONGLONG LowPart;
     LONGLONG HighPart;
   } DUMMYSTRUCTNAME;
diff --git a/mingw-w64-headers/include/usb.h b/mingw-w64-headers/include/usb.h
index 18d03dd..ed3a9c5 100644
--- a/mingw-w64-headers/include/usb.h
+++ b/mingw-w64-headers/include/usb.h
@@ -428,7 +428,7 @@
   UCHAR bDescriptorType;
   WCHAR MicrosoftString[7];
   UCHAR bVendorCode;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     UCHAR bPad;
     UCHAR bFlags;
   };
@@ -518,7 +518,7 @@
 };
 
 typedef struct _URB {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct _URB_HEADER UrbHeader;
     struct _URB_SELECT_INTERFACE UrbSelectInterface;
     struct _URB_SELECT_CONFIGURATION UrbSelectConfiguration;
diff --git a/mingw-w64-headers/include/usb200.h b/mingw-w64-headers/include/usb200.h
index 542d75d..1cf25e5 100644
--- a/mingw-w64-headers/include/usb200.h
+++ b/mingw-w64-headers/include/usb200.h
@@ -59,14 +59,14 @@
   BM_REQUEST_TYPE bmRequestType;
   UCHAR bRequest;
   union _wValue {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       UCHAR LowByte;
       UCHAR HiByte;
     };
     USHORT W;
   } wValue;
   union _wIndex {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       UCHAR LowByte;
       UCHAR HiByte;
     };
diff --git a/mingw-w64-headers/include/usbioctl.h b/mingw-w64-headers/include/usbioctl.h
index 4e1dd02..f42c2eb 100644
--- a/mingw-w64-headers/include/usbioctl.h
+++ b/mingw-w64-headers/include/usbioctl.h
@@ -369,7 +369,7 @@
 
 typedef union _USB_HUB_CAP_FLAGS {
   ULONG ul;
-  __MINGW_EXTENSION struct {
+  __C89_NAMELESSSTRUCT struct {
     ULONG HubIsHighSpeedCapable:1;
     ULONG HubIsHighSpeed:1;
     ULONG HubIsMultiTtCapable:1;
@@ -626,7 +626,7 @@
   WCHAR DeviceDescription[40];
   USB_WMI_DEVICE_NODE_TYPE NodeType;
   USB_TOPOLOGY_ADDRESS BusAddress;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     USB_DEVICE_INFO UsbDeviceInfo;
     USB_HUB_DEVICE_INFO HubDeviceInfo;
     USB_COMPOSITE_DEVICE_INFO CompositeDeviceInfo;
diff --git a/mingw-w64-headers/include/vds.h b/mingw-w64-headers/include/vds.h
index cf203b9..37964ea 100644
--- a/mingw-w64-headers/include/vds.h
+++ b/mingw-w64-headers/include/vds.h
@@ -661,7 +661,7 @@
 
   typedef struct _CHANGE_ATTRIBUTES_PARAMETERS {
     VDS_PARTITION_STYLE style;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	BOOLEAN bootIndicator;
       } MbrPartInfo;
@@ -673,7 +673,7 @@
 
   typedef struct _CHANGE_PARTITION_TYPE_PARAMETERS {
     VDS_PARTITION_STYLE style;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
         BYTE partitionType;
       } MbrPartInfo;
@@ -686,7 +686,7 @@
 
   typedef struct _CREATE_PARTITION_PARAMETERS {
     VDS_PARTITION_STYLE style;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	BYTE    partitionType;
 	BOOLEAN bootIndicator;
@@ -702,7 +702,7 @@
 
   typedef struct _VDS_ASYNC_OUTPUT {
     VDS_ASYNC_OUTPUT_TYPE type;
-    /*[switch(type)] */__MINGW_EXTENSION union {
+    /*[switch(type)] */__C89_NAMELESSUNION union {
       /*[case(VDS_ASYNCOUT_CREATEPARTITION)]*/
       struct {
 	ULONGLONG     ullOffset;
@@ -841,7 +841,7 @@
 
   typedef struct _VDS_NOTIFICATION {
     VDS_NOTIFICATION_TARGET_TYPE objectType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VDS_PACK_NOTIFICATION         Pack;
       VDS_DISK_NOTIFICATION         Disk;
       VDS_VOLUME_NOTIFICATION       Volume;
@@ -882,7 +882,7 @@
     ULONG                ulFlags;
     VDS_STORAGE_BUS_TYPE BusType;
     VDS_PARTITION_STYLE  PartitionStyle;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwSignature;
       GUID  DiskGuid;
     };
@@ -1137,7 +1137,7 @@
     ULONG               ulPartitionNumber;
     ULONGLONG           ullOffset;
     ULONGLONG           ullSize;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VDS_PARTITION_INFO_MBR Mbr;
       VDS_PARTITION_INFO_GPT Gpt;
     };
@@ -1147,15 +1147,15 @@
     VDS_PATH_ID         pathId;
     VDS_HWPROVIDER_TYPE type;
     VDS_PATH_STATUS     status;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VDS_OBJECT_ID controllerPortId;
       VDS_OBJECT_ID targetPortalId;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VDS_OBJECT_ID hbaPortId;
       VDS_OBJECT_ID initiatorAdapterId;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       VDS_HBAPORT_PROP *pHbaPortProp;
       VDS_IPADDRESS    *pInitiatorPortalIpAddr;
     };
@@ -1390,10 +1390,10 @@
   ULONG                   ulFlags;
   VDS_STORAGE_BUS_TYPE    BusType;
   VDS_PARTITION_STYLE     PartitionStyle;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DWORD dwSignature;
     GUID  DiskGuid;
-  } ;
+  };
   LPWSTR                  pwszDiskAddress;
   LPWSTR                  pwszName;
   LPWSTR                  pwszFriendlyName;
diff --git a/mingw-w64-headers/include/virtdisk.h b/mingw-w64-headers/include/virtdisk.h
index fd60126..8648740 100644
--- a/mingw-w64-headers/include/virtdisk.h
+++ b/mingw-w64-headers/include/virtdisk.h
@@ -140,7 +140,7 @@
 
 typedef struct _ATTACH_VIRTUAL_DISK_PARAMETERS {
   ATTACH_VIRTUAL_DISK_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       ULONG Reserved;
     } Version1;
@@ -149,7 +149,7 @@
 
 typedef struct _COMPACT_VIRTUAL_DISK_PARAMETERS {
   COMPACT_VIRTUAL_DISK_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       ULONG Reserved;
     } Version1;
@@ -158,7 +158,7 @@
 
 typedef struct _CREATE_VIRTUAL_DISK_PARAMETERS {
   CREATE_VIRTUAL_DISK_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       GUID      UniqueId;
       ULONGLONG MaximumSize;
@@ -172,7 +172,7 @@
 
 typedef struct _EXPAND_VIRTUAL_DISK_PARAMETERS {
   EXPAND_VIRTUAL_DISK_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       ULONGLONG NewSize;
     } Version1;
@@ -181,7 +181,7 @@
 
 typedef struct _GET_VIRTUAL_DISK_INFO {
   GET_VIRTUAL_DISK_INFO_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       ULONGLONG VirtualSize;
       ULONGLONG PhysicalSize;
@@ -202,7 +202,7 @@
 
 typedef struct _MERGE_VIRTUAL_DISK_PARAMETERS {
   MERGE_VIRTUAL_DISK_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       ULONG MergeDepth;
     } Version1;
@@ -211,7 +211,7 @@
 
 typedef struct _OPEN_VIRTUAL_DISK_PARAMETERS {
   OPEN_VIRTUAL_DISK_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       ULONG RWDepth;
     } Version1;
@@ -220,7 +220,7 @@
 
 typedef struct _SET_VIRTUAL_DISK_INFO {
   SET_VIRTUAL_DISK_INFO_VERSION Version;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PCWSTR ParentFilePath;
     GUID   UniqueIdentifier;
   } DUMMYUNIONNAME;
@@ -248,7 +248,7 @@
 typedef struct _STORAGE_DEPENDENCY_INFO {
   STORAGE_DEPENDENCY_INFO_VERSION Version;
   ULONG                           NumberEntries;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     STORAGE_DEPENDENCY_INFO_TYPE_1 Version1Entries[1];
     STORAGE_DEPENDENCY_INFO_TYPE_2 Version2Entries[1];
   } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/wabutil.h b/mingw-w64-headers/include/wabutil.h
index 5b8881c..11dc231 100644
--- a/mingw-w64-headers/include/wabutil.h
+++ b/mingw-w64-headers/include/wabutil.h
@@ -153,7 +153,7 @@
   typedef struct {
     ULONG cctl;
     LPTSTR lpszResourceName;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPTSTR lpszComponent;
       ULONG ulItemID;
     };
diff --git a/mingw-w64-headers/include/wct.h b/mingw-w64-headers/include/wct.h
index 4169e72..8994b45 100644
--- a/mingw-w64-headers/include/wct.h
+++ b/mingw-w64-headers/include/wct.h
@@ -48,7 +48,7 @@
   typedef struct _WAITCHAIN_NODE_INFO {
     WCT_OBJECT_TYPE   ObjectType;
     WCT_OBJECT_STATUS ObjectStatus;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	WCHAR ObjectName[WCT_OBJNAME_LENGTH];
 	LARGE_INTEGER Timeout;
diff --git a/mingw-w64-headers/include/wdspxe.h b/mingw-w64-headers/include/wdspxe.h
index 6270b9a..6f8241c 100644
--- a/mingw-w64-headers/include/wdspxe.h
+++ b/mingw-w64-headers/include/wdspxe.h
@@ -27,7 +27,7 @@
 
 typedef struct tagPXE_ADDRESS {
   ULONG  uFlags;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     BYTE  bAddress[PXE_MAX_ADDRESS];
     ULONG uIpAddress;
   } DUMMYUNIONNAME;
@@ -50,7 +50,7 @@
   BYTE  HardwareAddress[PXE_DHCP_HWAADR_SIZE];
   BYTE  HostName[PXE_DHCP_SERVER_SIZE];
   BYTE  BootFileName;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     BYTE  bMagicCookie[PXE_DHCP_MAGIC_COOKIE_SIZE];
     ULONG uMagicCookie;
   } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/winbase.h b/mingw-w64-headers/include/winbase.h
index 0f38826..f0166cd 100644
--- a/mingw-w64-headers/include/winbase.h
+++ b/mingw-w64-headers/include/winbase.h
@@ -145,8 +145,8 @@
   typedef struct _OVERLAPPED {
     ULONG_PTR Internal;
     ULONG_PTR InternalHigh;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	DWORD Offset;
 	DWORD OffsetHigh;
       };
@@ -384,9 +384,9 @@
   } COMMCONFIG,*LPCOMMCONFIG;
 
   typedef struct _SYSTEM_INFO {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwOemId;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	WORD wProcessorArchitecture;
 	WORD wReserved;
       } DUMMYSTRUCTNAME;
@@ -1192,7 +1192,7 @@
     BYTE cbOverhead;
     BYTE iRegionIndex;
     WORD wFlags;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct {
 	HANDLE hMem;
 	DWORD dwReserved[3];
@@ -3194,7 +3194,7 @@
 typedef struct _FILE_ID_DESCRIPTOR{
   DWORD        dwSize;
   FILE_ID_TYPE Type;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     LARGE_INTEGER FileId;
     GUID          ObjectId;
   };
diff --git a/mingw-w64-headers/include/wincrypt.h b/mingw-w64-headers/include/wincrypt.h
index a9c20ce..311b6cb 100644
--- a/mingw-w64-headers/include/wincrypt.h
+++ b/mingw-w64-headers/include/wincrypt.h
@@ -1491,7 +1491,7 @@
 
   typedef struct _CERT_ALT_NAME_ENTRY {
     DWORD dwAltNameChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCERT_OTHER_NAME pOtherName;
       LPWSTR pwszRfc822Name;
       LPWSTR pwszDNSName;
@@ -1659,7 +1659,7 @@
 
   typedef struct _CRL_DIST_POINT_NAME {
     DWORD dwDistPointNameChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CERT_ALT_NAME_INFO FullName;
     };
   } CRL_DIST_POINT_NAME,*PCRL_DIST_POINT_NAME;
@@ -1866,7 +1866,7 @@
 
   typedef struct _CMC_TAGGED_REQUEST {
     DWORD dwTaggedRequestChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCMC_TAGGED_CERT_REQUEST pTaggedCertRequest;
     };
   } CMC_TAGGED_REQUEST,*PCMC_TAGGED_REQUEST;
@@ -1915,7 +1915,7 @@
     DWORD *rgdwBodyList;
     LPWSTR pwszStatusString;
     DWORD dwOtherInfoChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwFailInfo;
       PCMC_PEND_INFO pPendInfo;
     };
@@ -2029,7 +2029,7 @@
     LPCSTR pszOID;
     LPCWSTR pwszName;
     DWORD dwGroupId;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwValue;
       ALG_ID Algid;
       DWORD dwLength;
@@ -2110,7 +2110,7 @@
 
   typedef struct _CERT_ID {
     DWORD dwIdChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CERT_ISSUER_SERIAL_NUMBER IssuerSerialNumber;
       CRYPT_HASH_BLOB KeyId;
       CRYPT_HASH_BLOB HashId;
@@ -2201,7 +2201,7 @@
     HCRYPTPROV hCryptProv;
     DWORD dwKeySpec;
     DWORD dwKeyChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm;
       PCERT_ID pSenderId;
     };
@@ -2219,7 +2219,7 @@
     void *pvKeyEncryptionAuxInfo;
     HCRYPTPROV hCryptProv;
     DWORD dwKeyChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
 
       HCRYPTKEY hKeyEncryptionKey;
       void *pvKeyEncryptionKey;
@@ -2233,7 +2233,7 @@
 
   struct _CMSG_RECIPIENT_ENCODE_INFO {
     DWORD dwRecipientChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTrans;
       PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgree;
       PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO pMailList;
@@ -2408,7 +2408,7 @@
   typedef struct _CMSG_KEY_AGREE_RECIPIENT_INFO {
     DWORD dwVersion;
     DWORD dwOriginatorChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       CERT_ID OriginatorCertId;
       CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo;
     };
@@ -2432,7 +2432,7 @@
 
   typedef struct _CMSG_CMS_RECIPIENT_INFO {
     DWORD dwRecipientChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyTrans;
       PCMSG_KEY_AGREE_RECIPIENT_INFO pKeyAgree;
       PCMSG_MAIL_LIST_RECIPIENT_INFO pMailList;
@@ -2513,7 +2513,7 @@
     PCMSG_MAIL_LIST_RECIPIENT_INFO pMailList;
     DWORD dwRecipientIndex;
     DWORD dwKeyChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HCRYPTKEY hKeyEncryptionKey;
       void *pvKeyEncryptionKey;
     };
@@ -2596,10 +2596,8 @@
     CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
     CRYPT_DATA_BLOB UserKeyingMaterial;
     DWORD dwOriginatorChoice;
-    __MINGW_EXTENSION union {
-
+    __C89_NAMELESSUNION union {
       CERT_ID OriginatorCertId;
-
       CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo;
     };
     DWORD cKeyAgreeKeyEncryptInfo;
@@ -2824,11 +2822,11 @@
 #define CERT_SYSTEM_STORE_RELOCATE_FLAG 0x80000000
 
   typedef struct _CERT_SYSTEM_STORE_RELOCATE_PARA {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       HKEY hKeyBase;
       void *pvBase;
     };
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       void *pvSystemStore;
       LPCSTR pszSystemStore;
       LPCWSTR pwszSystemStore;
@@ -4181,7 +4179,7 @@
 #define AUTHTYPE_SERVER 2
 
   typedef struct _HTTPSPolicyCallbackData {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD cbStruct;
       DWORD cbSize;
     };
@@ -4324,7 +4322,7 @@
 
 typedef struct _CERT_BIOMETRIC_DATA {
   DWORD dwTypeOfBiometricDataChoice;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DWORD dwPredefined;
     LPSTR pszObjId;
   };
@@ -4366,7 +4364,7 @@
   DWORD  dwXSize;
   DWORD  dwYSize;
   DWORD  dwLogotypeImageResolutionChoice;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DWORD dwNumBits;
     DWORD dwTableSize;
   };
@@ -4392,7 +4390,7 @@
 
 typedef struct _CERT_LOGOTYPE_INFO {
   DWORD dwLogotypeInfoChoice;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PCERT_LOGOTYPE_DATA      pLogotypeDirectInfo;
     PCERT_LOGOTYPE_REFERENCE pLogotypeIndirectInfo;
   } ;
@@ -4655,7 +4653,7 @@
 typedef struct _OCSP_BASIC_RESPONSE_ENTRY {
   OCSP_CERT_ID    CertId;
   DWORD           dwCertStatus;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     POCSP_BASIC_REVOKED_INFO pRevokedInfo;
   };
   FILETIME        ThisUpdate;
@@ -4667,7 +4665,7 @@
 typedef struct _OCSP_BASIC_RESPONSE_INFO {
   DWORD                      dwVersion;
   DWORD                      dwResponderIdChoice;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     CERT_NAME_BLOB  ByNameResponderId;
     CRYPT_HASH_BLOB ByKeyResponderId;
   };
diff --git a/mingw-w64-headers/include/winevt.h b/mingw-w64-headers/include/winevt.h
index 2568b2b..538b1d1 100644
--- a/mingw-w64-headers/include/winevt.h
+++ b/mingw-w64-headers/include/winevt.h
@@ -267,7 +267,7 @@
 } EVT_VARIANT_TYPE;
 
 typedef struct _EVT_VARIANT {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     WINBOOL    BooleanVal;
     INT8       SByteVal;
     INT16      Int16Val;
diff --git a/mingw-w64-headers/include/wingdi.h b/mingw-w64-headers/include/wingdi.h
index 54490b4..fbd0697 100644
--- a/mingw-w64-headers/include/wingdi.h
+++ b/mingw-w64-headers/include/wingdi.h
@@ -1576,8 +1576,8 @@
     WORD dmSize;
     WORD dmDriverExtra;
     DWORD dmFields;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	short dmOrientation;
 	short dmPaperSize;
 	short dmPaperLength;
@@ -1603,7 +1603,7 @@
     DWORD dmBitsPerPel;
     DWORD dmPelsWidth;
     DWORD dmPelsHeight;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dmDisplayFlags;
       DWORD dmNup;
     };
@@ -1625,8 +1625,8 @@
     WORD dmSize;
     WORD dmDriverExtra;
     DWORD dmFields;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	short dmOrientation;
 	short dmPaperSize;
 	short dmPaperLength;
@@ -1636,7 +1636,7 @@
 	short dmDefaultSource;
 	short dmPrintQuality;
       };
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	POINTL dmPosition;
 	DWORD dmDisplayOrientation;
 	DWORD dmDisplayFixedOutput;
@@ -1652,7 +1652,7 @@
     DWORD dmBitsPerPel;
     DWORD dmPelsWidth;
     DWORD dmPelsHeight;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dmDisplayFlags;
       DWORD dmNup;
     };
diff --git a/mingw-w64-headers/include/wininet.h b/mingw-w64-headers/include/wininet.h
index 9b260f5..e98e7c5 100644
--- a/mingw-w64-headers/include/wininet.h
+++ b/mingw-w64-headers/include/wininet.h
@@ -1316,7 +1316,7 @@
     LPSTR lpHeaderInfo;
     DWORD dwHeaderInfoSize;
     LPSTR lpszFileExtension;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwReserved;
       DWORD dwExemptDelta;
     };
@@ -1338,7 +1338,7 @@
     LPWSTR lpHeaderInfo;
     DWORD dwHeaderInfoSize;
     LPWSTR lpszFileExtension;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       DWORD dwReserved;
       DWORD dwExemptDelta;
     };
diff --git a/mingw-w64-headers/include/winineti.h b/mingw-w64-headers/include/winineti.h
index f7e0e9e..257eb35 100644
--- a/mingw-w64-headers/include/winineti.h
+++ b/mingw-w64-headers/include/winineti.h
@@ -47,9 +47,9 @@
     WINBOOL fPerUser;
     DWORD dwSyncMode;
     DWORD dwNumCachePaths;
-    __C89_NAMELESS union
+    __C89_NAMELESSUNION union
     {
-        __C89_NAMELESS struct
+        __C89_NAMELESSSTRUCT struct
         {
             CHAR CachePath[MAX_PATH];
             DWORD dwCacheSize;
@@ -69,9 +69,9 @@
     WINBOOL  fPerUser;
     DWORD dwSyncMode;
     DWORD dwNumCachePaths;
-    __C89_NAMELESS union
+    __C89_NAMELESSUNION union
     {
-        __C89_NAMELESS struct
+        __C89_NAMELESSSTRUCT struct
         {
             WCHAR CachePath[MAX_PATH];
             DWORD dwCacheSize;
diff --git a/mingw-w64-headers/include/winioctl.h b/mingw-w64-headers/include/winioctl.h
index 7a7f382..0a885ff 100644
--- a/mingw-w64-headers/include/winioctl.h
+++ b/mingw-w64-headers/include/winioctl.h
@@ -594,7 +594,7 @@
 
 typedef struct _SET_PARTITION_INFORMATION_EX {
   PARTITION_STYLE PartitionStyle;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     SET_PARTITION_INFORMATION_MBR Mbr;
     SET_PARTITION_INFORMATION_GPT Gpt;
   } DUMMYUNIONNAME;
@@ -611,7 +611,7 @@
 
 typedef struct _CREATE_DISK {
   PARTITION_STYLE PartitionStyle;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     CREATE_DISK_MBR Mbr;
     CREATE_DISK_GPT Gpt;
   } DUMMYUNIONNAME;
@@ -627,7 +627,7 @@
   LARGE_INTEGER PartitionLength;
   DWORD PartitionNumber;
   BOOLEAN RewritePartition;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PARTITION_INFORMATION_MBR Mbr;
     PARTITION_INFORMATION_GPT Gpt;
   } DUMMYUNIONNAME;
@@ -647,7 +647,7 @@
 typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
   DWORD PartitionStyle;
   DWORD PartitionCount;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     DRIVE_LAYOUT_INFORMATION_MBR Mbr;
     DRIVE_LAYOUT_INFORMATION_GPT Gpt;
   } DUMMYUNIONNAME;
@@ -680,8 +680,8 @@
 typedef struct _DISK_DETECTION_INFO {
   DWORD SizeOfDetectInfo;
   DETECTION_TYPE DetectionType;
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       DISK_INT13_INFO Int13;
       DISK_EX_INT13_INFO ExInt13;
     } DUMMYSTRUCTNAME;
@@ -691,7 +691,7 @@
 typedef struct _DISK_PARTITION_INFO {
   DWORD SizeOfPartitionInfo;
   PARTITION_STYLE PartitionStyle;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       DWORD Signature;
       DWORD CheckSum;
@@ -728,7 +728,7 @@
   DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority;
   WORD DisablePrefetchTransferLength;
   BOOLEAN PrefetchScalar;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     struct {
       WORD Minimum;
       WORD Maximum;
@@ -1638,8 +1638,8 @@
 
 typedef struct _FILE_OBJECTID_BUFFER {
   BYTE ObjectId[16];
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
       BYTE BirthVolumeId[16];
       BYTE BirthObjectId[16];
       BYTE DomainId[16];
@@ -2079,7 +2079,7 @@
 } TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS;
 
 typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT {
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG BufferLength;
     UCHAR Buffer;
   } DUMMYUNIONNAME;
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
index 96caa7c..50073e6 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -306,7 +306,7 @@
 #define _LARGE_INTEGER_DEFINED
 
   typedef union _LARGE_INTEGER {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD LowPart;
       LONG HighPart;
     } DUMMYSTRUCTNAME;
@@ -320,7 +320,7 @@
   typedef LARGE_INTEGER *PLARGE_INTEGER;
 
   typedef union _ULARGE_INTEGER {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD LowPart;
       DWORD HighPart;
     } DUMMYSTRUCTNAME;
@@ -1709,10 +1709,10 @@
     DWORD64 R14;
     DWORD64 R15;
     DWORD64 Rip;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       XMM_SAVE_AREA32 FltSave;
       XMM_SAVE_AREA32 FloatSave;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	M128A Header[2];
 	M128A Legacy[8];
 	M128A Xmm0;
@@ -3289,12 +3289,12 @@
 
 #ifndef _NT_TIB_DEFINED
 #define _NT_TIB_DEFINED
-    __MINGW_EXTENSION typedef struct _NT_TIB {
+    __C89_NAMELESSSTRUCT typedef struct _NT_TIB {
       struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
       PVOID StackBase;
       PVOID StackLimit;
       PVOID SubSystemTib;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	PVOID FiberData;
 	DWORD Version;
       };
@@ -3304,12 +3304,12 @@
     typedef NT_TIB *PNT_TIB;
 #endif /* _NT_TIB_DEFINED */
 
-    __MINGW_EXTENSION typedef struct _NT_TIB32 {
+    __C89_NAMELESSSTRUCT typedef struct _NT_TIB32 {
       DWORD ExceptionList;
       DWORD StackBase;
       DWORD StackLimit;
       DWORD SubSystemTib;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	DWORD FiberData;
 	DWORD Version;
       };
@@ -3317,12 +3317,12 @@
       DWORD Self;
     } NT_TIB32,*PNT_TIB32;
 
-    __MINGW_EXTENSION typedef struct _NT_TIB64 {
+    __C89_NAMELESSSTRUCT typedef struct _NT_TIB64 {
       DWORD64 ExceptionList;
       DWORD64 StackBase;
       DWORD64 StackLimit;
       DWORD64 SubSystemTib;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	DWORD64 FiberData;
 	DWORD Version;
       };
@@ -3356,7 +3356,7 @@
 
     typedef union _RATE_QUOTA_LIMIT {
       DWORD RateData;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
         DWORD RatePercent : 7;
         DWORD Reserved0   : 25;
       } DUMMYSTRUCTNAME;
@@ -3578,7 +3578,7 @@
     typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
       ULONG_PTR ProcessorMask;
       LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	struct {
 	  BYTE Flags;
 	} ProcessorCore;
@@ -4706,7 +4706,7 @@
 #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
 
     typedef struct _IMAGE_RELOCATION {
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	DWORD VirtualAddress;
 	DWORD RelocCount;
       } DUMMYUNIONNAME;
@@ -5176,7 +5176,7 @@
 #endif /* _WIN64 */
 
     typedef struct _IMAGE_IMPORT_DESCRIPTOR {
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	DWORD Characteristics;
 	DWORD OriginalFirstThunk;
       } DUMMYUNIONNAME;
@@ -5213,17 +5213,17 @@
 #define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000
 
     typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
-      __MINGW_EXTENSION union {
-	__MINGW_EXTENSION struct {
+      __C89_NAMELESSUNION union {
+	__C89_NAMELESSSTRUCT struct {
 	  DWORD NameOffset:31;
 	  DWORD NameIsString:1;
 	} DUMMYSTRUCTNAME;
 	DWORD Name;
 	WORD Id;
       } DUMMYUNIONNAME;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	DWORD OffsetToData;
-	__MINGW_EXTENSION struct {
+	__C89_NAMELESSSTRUCT struct {
 	  DWORD OffsetToDirectory:31;
 	  DWORD DataIsDirectory:1;
 	} DUMMYSTRUCTNAME2;
@@ -5410,7 +5410,7 @@
     typedef struct _IMAGE_FUNCTION_ENTRY64 {
       ULONGLONG StartingAddress;
       ULONGLONG EndingAddress;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	ULONGLONG EndOfPrologue;
 	ULONGLONG UnwindInfoAddress;
       } DUMMYUNIONNAME;
@@ -5475,7 +5475,7 @@
       WORD Machine;
       DWORD TimeDateStamp;
       DWORD SizeOfData;
-      __MINGW_EXTENSION union {
+      __C89_NAMELESSUNION union {
 	WORD Ordinal;
 	WORD Hint;
       };
@@ -5548,7 +5548,7 @@
 
     typedef union _SLIST_HEADER {
       ULONGLONG Alignment;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	SLIST_ENTRY Next;
 	WORD Depth;
 	WORD Sequence;
@@ -6568,7 +6568,7 @@
 typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
   LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
   DWORD                          Size;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     PROCESSOR_RELATIONSHIP Processor;
     NUMA_NODE_RELATIONSHIP NumaNode;
     CACHE_RELATIONSHIP     Cache;
diff --git a/mingw-w64-headers/include/winsmcrd.h b/mingw-w64-headers/include/winsmcrd.h
index fcc7284..8e9791e 100644
--- a/mingw-w64-headers/include/winsmcrd.h
+++ b/mingw-w64-headers/include/winsmcrd.h
@@ -172,7 +172,7 @@
   typedef struct {
     SCARD_IO_REQUEST ioRequest;
     BYTE bSw1,bSw2;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       SCARD_T0_COMMAND CmdBytes;
       BYTE rgbHeader[5];
     };
diff --git a/mingw-w64-headers/include/winternl.h b/mingw-w64-headers/include/winternl.h
index 832479f..68f360c 100644
--- a/mingw-w64-headers/include/winternl.h
+++ b/mingw-w64-headers/include/winternl.h
@@ -33,7 +33,7 @@
     UNICODE_STRING FullDllName;
     BYTE Reserved4[8];
     PVOID Reserved5[3];
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG CheckSum;
       PVOID Reserved6;
     };
@@ -435,7 +435,7 @@
   } FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
  
   typedef struct _IO_STATUS_BLOCK {
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       NTSTATUS Status;
       PVOID Pointer;
     };
diff --git a/mingw-w64-headers/include/wintrust.h b/mingw-w64-headers/include/wintrust.h
index c43db05..848f8e1 100644
--- a/mingw-w64-headers/include/wintrust.h
+++ b/mingw-w64-headers/include/wintrust.h
@@ -65,7 +65,7 @@
     DWORD dwUIChoice;
     DWORD fdwRevocationChecks;
     DWORD dwUnionChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct WINTRUST_FILE_INFO_ *pFile;
       struct WINTRUST_CATALOG_INFO_ *pCatalog;
       struct WINTRUST_BLOB_INFO_ *pBlob;
@@ -235,7 +235,7 @@
     DWORD csProvPrivData;
     struct _CRYPT_PROVIDER_PRIVDATA *pasProvPrivData;
     DWORD dwSubjectChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       struct _PROVDATA_SIP *pPDSip;
     };
     char *pszUsageOID;
@@ -480,7 +480,7 @@
 
   typedef struct SPC_LINK_ {
     DWORD dwLinkChoice;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       LPWSTR pwszUrl;
       SPC_SERIALIZED_OBJECT Moniker;
       LPWSTR pwszFile;
diff --git a/mingw-w64-headers/include/winuser.h b/mingw-w64-headers/include/winuser.h
index d17e6e5..0c7d25b 100644
--- a/mingw-w64-headers/include/winuser.h
+++ b/mingw-w64-headers/include/winuser.h
@@ -2303,7 +2303,7 @@
 
   typedef struct tagINPUT {
     DWORD type;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       MOUSEINPUT mi;
       KEYBDINPUT ki;
       HARDWAREINPUT hi;
@@ -4776,7 +4776,7 @@
   __MINGW_TYPEDEF_AW(LPMONITORINFOEX)
 #else
   typedef struct tagMONITORINFOEXA {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD cbSize;
       RECT rcMonitor;
       RECT rcWork;
@@ -4786,7 +4786,7 @@
   } MONITORINFOEXA,*LPMONITORINFOEXA;
 
   typedef struct tagMONITORINFOEXW {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       DWORD cbSize;
       RECT rcMonitor;
       RECT rcWork;
@@ -5118,9 +5118,9 @@
 
   typedef struct tagRAWMOUSE {
     USHORT usFlags;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       ULONG ulButtons;
-      __MINGW_EXTENSION struct {
+      __C89_NAMELESSSTRUCT struct {
 	USHORT usButtonFlags;
 	USHORT usButtonData;
       };
@@ -5233,7 +5233,7 @@
   typedef struct tagRID_DEVICE_INFO {
     DWORD cbSize;
     DWORD dwType;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESSUNION union {
       RID_DEVICE_INFO_MOUSE mouse;
       RID_DEVICE_INFO_KEYBOARD keyboard;
       RID_DEVICE_INFO_HID hid;
diff --git a/mingw-w64-headers/include/wmistr.h b/mingw-w64-headers/include/wmistr.h
index 8746602..35546c7 100644
--- a/mingw-w64-headers/include/wmistr.h
+++ b/mingw-w64-headers/include/wmistr.h
@@ -9,14 +9,14 @@
 typedef struct _WNODE_HEADER {
   ULONG BufferSize;
   ULONG ProviderId;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG64 HistoricalContext;
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       ULONG Version;
       ULONG Linkage;
     };
   };
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG CountLost;
     HANDLE KernelHandle;
     LARGE_INTEGER TimeStamp;
@@ -58,7 +58,7 @@
   ULONG DataBlockOffset;
   ULONG InstanceCount;
   ULONG OffsetInstanceNameOffsets;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG FixedInstanceSize;
     OFFSETINSTANCEDATAANDLENGTH OffsetInstanceDataAndLength[1];
   };
@@ -101,7 +101,7 @@
   struct _WNODE_HEADER WnodeHeader;
   GUID TargetGuid;
   ULONG TargetDataBlockSize;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG TargetInstanceIndex;
     WCHAR TargetInstanceName[1];
   };
@@ -116,7 +116,7 @@
   GUID Guid;
   ULONG Flags;
   ULONG InstanceCount;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     ULONG InstanceNameList;
     ULONG BaseNameOffset;
     ULONG_PTR Pdo;
diff --git a/mingw-w64-headers/include/ws2def.h b/mingw-w64-headers/include/ws2def.h
index 69e1074..a1251c4 100644
--- a/mingw-w64-headers/include/ws2def.h
+++ b/mingw-w64-headers/include/ws2def.h
@@ -26,8 +26,8 @@
 } SCOPE_LEVEL;
 
 typedef struct _SCOPE_ID {
-  __MINGW_EXTENSION union {
-    __MINGW_EXTENSION struct {
+  __C89_NAMELESSUNION union {
+    __C89_NAMELESSSTRUCT struct {
 	ULONG	Zone : 28;
 	ULONG	Level : 4;
     };
diff --git a/mingw-w64-headers/include/ws2ipdef.h b/mingw-w64-headers/include/ws2ipdef.h
index f95b0c7..6f36cde 100644
--- a/mingw-w64-headers/include/ws2ipdef.h
+++ b/mingw-w64-headers/include/ws2ipdef.h
@@ -35,7 +35,7 @@
   u_short sin6_port;
   u_long sin6_flowinfo;
   struct in6_addr sin6_addr;
-  __MINGW_EXTENSION union {
+  __C89_NAMELESSUNION union {
     u_long sin6_scope_id;
     SCOPE_ID sin6_scope_struct;
   };
diff --git a/mingw-w64-headers/include/wtypes.h b/mingw-w64-headers/include/wtypes.h
index 7b915e3..bc2758c 100644
--- a/mingw-w64-headers/include/wtypes.h
+++ b/mingw-w64-headers/include/wtypes.h
@@ -545,7 +545,7 @@
 #define _tagCY_DEFINED
 #define _CY_DEFINED
   typedef union tagCY {
-    __MINGW_EXTENSION struct {
+    __C89_NAMELESSSTRUCT struct {
       unsigned long Lo;
       long Hi;
     } DUMMYSTRUCTNAME;
@@ -557,16 +557,16 @@
 
   typedef struct tagDEC {
     USHORT wReserved;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	BYTE scale;
 	BYTE sign;
       } DUMMYSTRUCTNAME;
       USHORT signscale;
     } DUMMYUNIONNAME;
     ULONG Hi32;
-    __MINGW_EXTENSION union {
-      __MINGW_EXTENSION struct {
+    __C89_NAMELESSUNION union {
+      __C89_NAMELESSSTRUCT struct {
 	ULONG Lo32;
 	ULONG Mid32;
       } DUMMYSTRUCTNAME2;