Quellcode durchsuchen

Update CLSID scope (#2420)

Some clang versions report compiler errors because of constants
definition for CLSID saying that 'selectany' can only be applied
to data items with external linkage. This commit let only MS VS
build use "__declspec(selectany)".
Jaebaek Seo vor 6 Jahren
Ursprung
Commit
75e5f76a55
3 geänderte Dateien mit 57 neuen und 68 gelöschten Zeilen
  1. 41 50
      include/dxc/dxcapi.h
  2. 8 9
      include/dxc/dxcisense.h
  3. 8 9
      include/dxc/dxctools.h

+ 41 - 50
include/dxc/dxcapi.h

@@ -360,80 +360,71 @@ IDxcVersionInfo2 : public IDxcVersionInfo {
 // Note: __declspec(selectany) requires 'extern'
 // On Linux __declspec(selectany) is removed and using 'extern' results in link error.
 #ifdef _MSC_VER
-#define EXTERN extern
+#define CLSID_SCOPE __declspec(selectany) extern
 #else
-#define EXTERN
+#define CLSID_SCOPE
 #endif
 
 // {73e22d93-e6ce-47f3-b5bf-f0664f39c1b0}
-__declspec(selectany) EXTERN const CLSID CLSID_DxcCompiler = {
-  0x73e22d93,
-  0xe6ce,
-  0x47f3,
-  { 0xb5, 0xbf, 0xf0, 0x66, 0x4f, 0x39, 0xc1, 0xb0 }
-};
+CLSID_SCOPE const CLSID CLSID_DxcCompiler = {
+    0x73e22d93,
+    0xe6ce,
+    0x47f3,
+    {0xb5, 0xbf, 0xf0, 0x66, 0x4f, 0x39, 0xc1, 0xb0}};
 
 // {EF6A8087-B0EA-4D56-9E45-D07E1A8B7806}
-__declspec(selectany) EXTERN const GUID CLSID_DxcLinker = {
+CLSID_SCOPE const GUID CLSID_DxcLinker = {
     0xef6a8087,
     0xb0ea,
     0x4d56,
-    {0x9e, 0x45, 0xd0, 0x7e, 0x1a, 0x8b, 0x78, 0x6}
-};
+    {0x9e, 0x45, 0xd0, 0x7e, 0x1a, 0x8b, 0x78, 0x6}};
 
 // {CD1F6B73-2AB0-484D-8EDC-EBE7A43CA09F}
-__declspec(selectany) EXTERN const CLSID CLSID_DxcDiaDataSource = {
-  0xcd1f6b73,
-  0x2ab0,
-  0x484d,
-  { 0x8e, 0xdc, 0xeb, 0xe7, 0xa4, 0x3c, 0xa0, 0x9f }
-};
+CLSID_SCOPE const CLSID CLSID_DxcDiaDataSource = {
+    0xcd1f6b73,
+    0x2ab0,
+    0x484d,
+    {0x8e, 0xdc, 0xeb, 0xe7, 0xa4, 0x3c, 0xa0, 0x9f}};
 
 // {6245D6AF-66E0-48FD-80B4-4D271796748C}
-__declspec(selectany) EXTERN const GUID CLSID_DxcLibrary = {
-  0x6245d6af,
-  0x66e0,
-  0x48fd,
-  { 0x80, 0xb4, 0x4d, 0x27, 0x17, 0x96, 0x74, 0x8c }
-};
+CLSID_SCOPE const GUID CLSID_DxcLibrary = {
+    0x6245d6af,
+    0x66e0,
+    0x48fd,
+    {0x80, 0xb4, 0x4d, 0x27, 0x17, 0x96, 0x74, 0x8c}};
 
 // {8CA3E215-F728-4CF3-8CDD-88AF917587A1}
-__declspec(selectany) EXTERN const GUID CLSID_DxcValidator = {
-  0x8ca3e215,
-  0xf728,
-  0x4cf3,
-  { 0x8c, 0xdd, 0x88, 0xaf, 0x91, 0x75, 0x87, 0xa1 }
-};
+CLSID_SCOPE const GUID CLSID_DxcValidator = {
+    0x8ca3e215,
+    0xf728,
+    0x4cf3,
+    {0x8c, 0xdd, 0x88, 0xaf, 0x91, 0x75, 0x87, 0xa1}};
 
 // {D728DB68-F903-4F80-94CD-DCCF76EC7151}
-__declspec(selectany) EXTERN const GUID CLSID_DxcAssembler = {
-  0xd728db68,
-  0xf903,
-  0x4f80,
-  { 0x94, 0xcd, 0xdc, 0xcf, 0x76, 0xec, 0x71, 0x51 }
-};
+CLSID_SCOPE const GUID CLSID_DxcAssembler = {
+    0xd728db68,
+    0xf903,
+    0x4f80,
+    {0x94, 0xcd, 0xdc, 0xcf, 0x76, 0xec, 0x71, 0x51}};
 
 // {b9f54489-55b8-400c-ba3a-1675e4728b91}
-__declspec(selectany) EXTERN const GUID CLSID_DxcContainerReflection = {
-  0xb9f54489,
-  0x55b8,
-  0x400c,
-  { 0xba, 0x3a, 0x16, 0x75, 0xe4, 0x72, 0x8b, 0x91 }
-};
+CLSID_SCOPE const GUID CLSID_DxcContainerReflection = {
+    0xb9f54489,
+    0x55b8,
+    0x400c,
+    {0xba, 0x3a, 0x16, 0x75, 0xe4, 0x72, 0x8b, 0x91}};
 
 // {AE2CD79F-CC22-453F-9B6B-B124E7A5204C}
-__declspec(selectany) EXTERN const GUID CLSID_DxcOptimizer = {
+CLSID_SCOPE const GUID CLSID_DxcOptimizer = {
     0xae2cd79f,
     0xcc22,
     0x453f,
-    {0x9b, 0x6b, 0xb1, 0x24, 0xe7, 0xa5, 0x20, 0x4c}
-};
+    {0x9b, 0x6b, 0xb1, 0x24, 0xe7, 0xa5, 0x20, 0x4c}};
 
 // {94134294-411f-4574-b4d0-8741e25240d2}
-__declspec(selectany) EXTERN const GUID CLSID_DxcContainerBuilder = {
-  0x94134294,
-  0x411f,
-  0x4574,  
-  { 0xb4, 0xd0, 0x87, 0x41, 0xe2, 0x52, 0x40, 0xd2 }
-};
+CLSID_SCOPE const GUID CLSID_DxcContainerBuilder = {
+    0x94134294,
+    0x411f,
+    0x4574,
+    {0xb4, 0xd0, 0x87, 0x41, 0xe2, 0x52, 0x40, 0xd2}};
 #endif

+ 8 - 9
include/dxc/dxcisense.h

@@ -835,17 +835,16 @@ IDxcCompletionString : public IUnknown
 // not by default static in C)
 
 #ifdef _MSC_VER
-#define EXTERN extern
+#define CLSID_SCOPE __declspec(selectany) extern
 #else
-#define EXTERN
+#define CLSID_SCOPE
 #endif
 
-__declspec(selectany)
-EXTERN const CLSID CLSID_DxcIntelliSense = { /* 3047833c-d1c0-4b8e-9d40-102878605985 */
-    0x3047833c,
-    0xd1c0,
-    0x4b8e,
-    {0x9d, 0x40, 0x10, 0x28, 0x78, 0x60, 0x59, 0x85}
-  };
+CLSID_SCOPE const CLSID
+    CLSID_DxcIntelliSense = {/* 3047833c-d1c0-4b8e-9d40-102878605985 */
+                             0x3047833c,
+                             0xd1c0,
+                             0x4b8e,
+                             {0x9d, 0x40, 0x10, 0x28, 0x78, 0x60, 0x59, 0x85}};
 
 #endif

+ 8 - 9
include/dxc/dxctools.h

@@ -51,18 +51,17 @@ IDxcRewriter : public IUnknown {
 };
 
 #ifdef _MSC_VER
-#define EXTERN extern
+#define CLSID_SCOPE __declspec(selectany) extern
 #else
-#define EXTERN
+#define CLSID_SCOPE
 #endif
 
-__declspec(selectany)
-EXTERN const CLSID CLSID_DxcRewriter = { /* b489b951-e07f-40b3-968d-93e124734da4 */
-  0xb489b951,
-  0xe07f,
-  0x40b3,
-  { 0x96, 0x8d, 0x93, 0xe1, 0x24, 0x73, 0x4d, 0xa4 }
-};
+CLSID_SCOPE const CLSID
+    CLSID_DxcRewriter = {/* b489b951-e07f-40b3-968d-93e124734da4 */
+                         0xb489b951,
+                         0xe07f,
+                         0x40b3,
+                         {0x96, 0x8d, 0x93, 0xe1, 0x24, 0x73, 0x4d, 0xa4}};
 
 struct __declspec(uuid("261afca1-0609-4ec6-a77f-d98c7035194e"))
 IDxcRewriter2 : public IDxcRewriter {