yencode 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/hedley.h CHANGED
@@ -10,11 +10,11 @@
10
10
  * SPDX-License-Identifier: CC0-1.0
11
11
  */
12
12
 
13
- #if !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < 12)
13
+ #if !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < 15)
14
14
  #if defined(HEDLEY_VERSION)
15
15
  # undef HEDLEY_VERSION
16
16
  #endif
17
- #define HEDLEY_VERSION 12
17
+ #define HEDLEY_VERSION 15
18
18
 
19
19
  #if defined(HEDLEY_STRINGIFY_EX)
20
20
  # undef HEDLEY_STRINGIFY_EX
@@ -36,6 +36,16 @@
36
36
  #endif
37
37
  #define HEDLEY_CONCAT(a,b) HEDLEY_CONCAT_EX(a,b)
38
38
 
39
+ #if defined(HEDLEY_CONCAT3_EX)
40
+ # undef HEDLEY_CONCAT3_EX
41
+ #endif
42
+ #define HEDLEY_CONCAT3_EX(a,b,c) a##b##c
43
+
44
+ #if defined(HEDLEY_CONCAT3)
45
+ # undef HEDLEY_CONCAT3
46
+ #endif
47
+ #define HEDLEY_CONCAT3(a,b,c) HEDLEY_CONCAT3_EX(a,b,c)
48
+
39
49
  #if defined(HEDLEY_VERSION_ENCODE)
40
50
  # undef HEDLEY_VERSION_ENCODE
41
51
  #endif
@@ -77,18 +87,18 @@
77
87
  #if defined(HEDLEY_MSVC_VERSION)
78
88
  # undef HEDLEY_MSVC_VERSION
79
89
  #endif
80
- #if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000)
90
+ #if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL)
81
91
  # define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100)
82
- #elif defined(_MSC_FULL_VER)
92
+ #elif defined(_MSC_FULL_VER) && !defined(__ICL)
83
93
  # define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10)
84
- #elif defined(_MSC_VER)
94
+ #elif defined(_MSC_VER) && !defined(__ICL)
85
95
  # define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0)
86
96
  #endif
87
97
 
88
98
  #if defined(HEDLEY_MSVC_VERSION_CHECK)
89
99
  # undef HEDLEY_MSVC_VERSION_CHECK
90
100
  #endif
91
- #if !defined(_MSC_VER)
101
+ #if !defined(HEDLEY_MSVC_VERSION)
92
102
  # define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0)
93
103
  #elif defined(_MSC_VER) && (_MSC_VER >= 1400)
94
104
  # define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch)))
@@ -101,9 +111,9 @@
101
111
  #if defined(HEDLEY_INTEL_VERSION)
102
112
  # undef HEDLEY_INTEL_VERSION
103
113
  #endif
104
- #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)
114
+ #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL)
105
115
  # define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE)
106
- #elif defined(__INTEL_COMPILER)
116
+ #elif defined(__INTEL_COMPILER) && !defined(__ICL)
107
117
  # define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)
108
118
  #endif
109
119
 
@@ -116,6 +126,22 @@
116
126
  # define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0)
117
127
  #endif
118
128
 
129
+ #if defined(HEDLEY_INTEL_CL_VERSION)
130
+ # undef HEDLEY_INTEL_CL_VERSION
131
+ #endif
132
+ #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL)
133
+ # define HEDLEY_INTEL_CL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0)
134
+ #endif
135
+
136
+ #if defined(HEDLEY_INTEL_CL_VERSION_CHECK)
137
+ # undef HEDLEY_INTEL_CL_VERSION_CHECK
138
+ #endif
139
+ #if defined(HEDLEY_INTEL_CL_VERSION)
140
+ # define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_CL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch))
141
+ #else
142
+ # define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0)
143
+ #endif
144
+
119
145
  #if defined(HEDLEY_PGI_VERSION)
120
146
  # undef HEDLEY_PGI_VERSION
121
147
  #endif
@@ -355,7 +381,7 @@
355
381
  # if __VER__ > 1000
356
382
  # define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000))
357
383
  # else
358
- # define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE(VER / 100, __VER__ % 100, 0)
384
+ # define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0)
359
385
  # endif
360
386
  #endif
361
387
 
@@ -432,6 +458,22 @@
432
458
  # define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0)
433
459
  #endif
434
460
 
461
+ #if defined(HEDLEY_MCST_LCC_VERSION)
462
+ # undef HEDLEY_MCST_LCC_VERSION
463
+ #endif
464
+ #if defined(__LCC__) && defined(__LCC_MINOR__)
465
+ # define HEDLEY_MCST_LCC_VERSION HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__)
466
+ #endif
467
+
468
+ #if defined(HEDLEY_MCST_LCC_VERSION_CHECK)
469
+ # undef HEDLEY_MCST_LCC_VERSION_CHECK
470
+ #endif
471
+ #if defined(HEDLEY_MCST_LCC_VERSION)
472
+ # define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (HEDLEY_MCST_LCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch))
473
+ #else
474
+ # define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0)
475
+ #endif
476
+
435
477
  #if defined(HEDLEY_GCC_VERSION)
436
478
  # undef HEDLEY_GCC_VERSION
437
479
  #endif
@@ -441,6 +483,7 @@
441
483
  !defined(HEDLEY_INTEL_VERSION) && \
442
484
  !defined(HEDLEY_PGI_VERSION) && \
443
485
  !defined(HEDLEY_ARM_VERSION) && \
486
+ !defined(HEDLEY_CRAY_VERSION) && \
444
487
  !defined(HEDLEY_TI_VERSION) && \
445
488
  !defined(HEDLEY_TI_ARMCL_VERSION) && \
446
489
  !defined(HEDLEY_TI_CL430_VERSION) && \
@@ -448,7 +491,8 @@
448
491
  !defined(HEDLEY_TI_CL6X_VERSION) && \
449
492
  !defined(HEDLEY_TI_CL7X_VERSION) && \
450
493
  !defined(HEDLEY_TI_CLPRU_VERSION) && \
451
- !defined(__COMPCERT__)
494
+ !defined(__COMPCERT__) && \
495
+ !defined(HEDLEY_MCST_LCC_VERSION)
452
496
  # define HEDLEY_GCC_VERSION HEDLEY_GNUC_VERSION
453
497
  #endif
454
498
 
@@ -464,7 +508,11 @@
464
508
  #if defined(HEDLEY_HAS_ATTRIBUTE)
465
509
  # undef HEDLEY_HAS_ATTRIBUTE
466
510
  #endif
467
- #if defined(__has_attribute)
511
+ #if \
512
+ defined(__has_attribute) && \
513
+ ( \
514
+ (!defined(HEDLEY_IAR_VERSION) || HEDLEY_IAR_VERSION_CHECK(8,5,9)) \
515
+ )
468
516
  # define HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute)
469
517
  #else
470
518
  # define HEDLEY_HAS_ATTRIBUTE(attribute) (0)
@@ -474,7 +522,7 @@
474
522
  # undef HEDLEY_GNUC_HAS_ATTRIBUTE
475
523
  #endif
476
524
  #if defined(__has_attribute)
477
- # define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute)
525
+ # define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute)
478
526
  #else
479
527
  # define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
480
528
  #endif
@@ -483,7 +531,7 @@
483
531
  # undef HEDLEY_GCC_HAS_ATTRIBUTE
484
532
  #endif
485
533
  #if defined(__has_attribute)
486
- # define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute)
534
+ # define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute)
487
535
  #else
488
536
  # define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
489
537
  #endif
@@ -668,6 +716,72 @@
668
716
  # define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
669
717
  #endif
670
718
 
719
+ #if \
720
+ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \
721
+ defined(__clang__) || \
722
+ HEDLEY_GCC_VERSION_CHECK(3,0,0) || \
723
+ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
724
+ HEDLEY_IAR_VERSION_CHECK(8,0,0) || \
725
+ HEDLEY_PGI_VERSION_CHECK(18,4,0) || \
726
+ HEDLEY_ARM_VERSION_CHECK(4,1,0) || \
727
+ HEDLEY_TI_VERSION_CHECK(15,12,0) || \
728
+ HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \
729
+ HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \
730
+ HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \
731
+ HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \
732
+ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
733
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
734
+ HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \
735
+ HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \
736
+ HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \
737
+ (HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR))
738
+ # define HEDLEY_PRAGMA(value) _Pragma(#value)
739
+ #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0)
740
+ # define HEDLEY_PRAGMA(value) __pragma(value)
741
+ #else
742
+ # define HEDLEY_PRAGMA(value)
743
+ #endif
744
+
745
+ #if defined(HEDLEY_DIAGNOSTIC_PUSH)
746
+ # undef HEDLEY_DIAGNOSTIC_PUSH
747
+ #endif
748
+ #if defined(HEDLEY_DIAGNOSTIC_POP)
749
+ # undef HEDLEY_DIAGNOSTIC_POP
750
+ #endif
751
+ #if defined(__clang__)
752
+ # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push")
753
+ # define HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop")
754
+ #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0)
755
+ # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)")
756
+ # define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)")
757
+ #elif HEDLEY_GCC_VERSION_CHECK(4,6,0)
758
+ # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push")
759
+ # define HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop")
760
+ #elif \
761
+ HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \
762
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
763
+ # define HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push))
764
+ # define HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop))
765
+ #elif HEDLEY_ARM_VERSION_CHECK(5,6,0)
766
+ # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("push")
767
+ # define HEDLEY_DIAGNOSTIC_POP _Pragma("pop")
768
+ #elif \
769
+ HEDLEY_TI_VERSION_CHECK(15,12,0) || \
770
+ HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \
771
+ HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \
772
+ HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \
773
+ HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
774
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
775
+ # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push")
776
+ # define HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop")
777
+ #elif HEDLEY_PELLES_VERSION_CHECK(2,90,0)
778
+ # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)")
779
+ # define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)")
780
+ #else
781
+ # define HEDLEY_DIAGNOSTIC_PUSH
782
+ # define HEDLEY_DIAGNOSTIC_POP
783
+ #endif
784
+
671
785
  /* HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for
672
786
  HEDLEY INTERNAL USE ONLY. API subject to change without notice. */
673
787
  #if defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_)
@@ -676,12 +790,22 @@
676
790
  #if defined(__cplusplus)
677
791
  # if HEDLEY_HAS_WARNING("-Wc++98-compat")
678
792
  # if HEDLEY_HAS_WARNING("-Wc++17-extensions")
679
- # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \
680
- HEDLEY_DIAGNOSTIC_PUSH \
681
- _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \
682
- _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \
683
- xpr \
684
- HEDLEY_DIAGNOSTIC_POP
793
+ # if HEDLEY_HAS_WARNING("-Wc++1z-extensions")
794
+ # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \
795
+ HEDLEY_DIAGNOSTIC_PUSH \
796
+ _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \
797
+ _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \
798
+ _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \
799
+ xpr \
800
+ HEDLEY_DIAGNOSTIC_POP
801
+ # else
802
+ # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \
803
+ HEDLEY_DIAGNOSTIC_PUSH \
804
+ _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \
805
+ _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \
806
+ xpr \
807
+ HEDLEY_DIAGNOSTIC_POP
808
+ # endif
685
809
  # else
686
810
  # define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \
687
811
  HEDLEY_DIAGNOSTIC_PUSH \
@@ -746,7 +870,7 @@
746
870
  # define HEDLEY_CPP_CAST(T, expr) \
747
871
  HEDLEY_DIAGNOSTIC_PUSH \
748
872
  _Pragma("diag_suppress=Pe137") \
749
- HEDLEY_DIAGNOSTIC_POP \
873
+ HEDLEY_DIAGNOSTIC_POP
750
874
  # else
751
875
  # define HEDLEY_CPP_CAST(T, expr) ((T) (expr))
752
876
  # endif
@@ -754,70 +878,6 @@
754
878
  # define HEDLEY_CPP_CAST(T, expr) (expr)
755
879
  #endif
756
880
 
757
- #if \
758
- (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \
759
- defined(__clang__) || \
760
- HEDLEY_GCC_VERSION_CHECK(3,0,0) || \
761
- HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
762
- HEDLEY_IAR_VERSION_CHECK(8,0,0) || \
763
- HEDLEY_PGI_VERSION_CHECK(18,4,0) || \
764
- HEDLEY_ARM_VERSION_CHECK(4,1,0) || \
765
- HEDLEY_TI_VERSION_CHECK(15,12,0) || \
766
- HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \
767
- HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \
768
- HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \
769
- HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \
770
- HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
771
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
772
- HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \
773
- HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \
774
- HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \
775
- (HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR))
776
- # define HEDLEY_PRAGMA(value) _Pragma(#value)
777
- #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0)
778
- # define HEDLEY_PRAGMA(value) __pragma(value)
779
- #else
780
- # define HEDLEY_PRAGMA(value)
781
- #endif
782
-
783
- #if defined(HEDLEY_DIAGNOSTIC_PUSH)
784
- # undef HEDLEY_DIAGNOSTIC_PUSH
785
- #endif
786
- #if defined(HEDLEY_DIAGNOSTIC_POP)
787
- # undef HEDLEY_DIAGNOSTIC_POP
788
- #endif
789
- #if defined(__clang__)
790
- # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push")
791
- # define HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop")
792
- #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0)
793
- # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)")
794
- # define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)")
795
- #elif HEDLEY_GCC_VERSION_CHECK(4,6,0)
796
- # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push")
797
- # define HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop")
798
- #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0)
799
- # define HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push))
800
- # define HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop))
801
- #elif HEDLEY_ARM_VERSION_CHECK(5,6,0)
802
- # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("push")
803
- # define HEDLEY_DIAGNOSTIC_POP _Pragma("pop")
804
- #elif \
805
- HEDLEY_TI_VERSION_CHECK(15,12,0) || \
806
- HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \
807
- HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \
808
- HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \
809
- HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
810
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
811
- # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push")
812
- # define HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop")
813
- #elif HEDLEY_PELLES_VERSION_CHECK(2,90,0)
814
- # define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)")
815
- # define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)")
816
- #else
817
- # define HEDLEY_DIAGNOSTIC_PUSH
818
- # define HEDLEY_DIAGNOSTIC_POP
819
- #endif
820
-
821
881
  #if defined(HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED)
822
882
  # undef HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
823
883
  #endif
@@ -825,12 +885,18 @@
825
885
  # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
826
886
  #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0)
827
887
  # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)")
888
+ #elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
889
+ # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786))
890
+ #elif HEDLEY_PGI_VERSION_CHECK(20,7,0)
891
+ # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445")
828
892
  #elif HEDLEY_PGI_VERSION_CHECK(17,10,0)
829
893
  # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444")
830
894
  #elif HEDLEY_GCC_VERSION_CHECK(4,3,0)
831
895
  # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
832
896
  #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0)
833
897
  # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996))
898
+ #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
899
+ # define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444")
834
900
  #elif \
835
901
  HEDLEY_TI_VERSION_CHECK(15,12,0) || \
836
902
  (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
@@ -863,6 +929,8 @@
863
929
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"")
864
930
  #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0)
865
931
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)")
932
+ #elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
933
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161))
866
934
  #elif HEDLEY_PGI_VERSION_CHECK(17,10,0)
867
935
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675")
868
936
  #elif HEDLEY_GCC_VERSION_CHECK(4,3,0)
@@ -879,6 +947,8 @@
879
947
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163")
880
948
  #elif HEDLEY_IAR_VERSION_CHECK(8,0,0)
881
949
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161")
950
+ #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
951
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161")
882
952
  #else
883
953
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
884
954
  #endif
@@ -892,8 +962,12 @@
892
962
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
893
963
  #elif HEDLEY_INTEL_VERSION_CHECK(17,0,0)
894
964
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)")
965
+ #elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
966
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292))
895
967
  #elif HEDLEY_MSVC_VERSION_CHECK(19,0,0)
896
968
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030))
969
+ #elif HEDLEY_PGI_VERSION_CHECK(20,7,0)
970
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098")
897
971
  #elif HEDLEY_PGI_VERSION_CHECK(17,10,0)
898
972
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097")
899
973
  #elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)
@@ -905,6 +979,8 @@
905
979
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173")
906
980
  #elif HEDLEY_IAR_VERSION_CHECK(8,0,0)
907
981
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097")
982
+ #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
983
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097")
908
984
  #else
909
985
  # define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
910
986
  #endif
@@ -922,17 +998,34 @@
922
998
  # define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL
923
999
  #endif
924
1000
 
1001
+ #if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION)
1002
+ # undef HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
1003
+ #endif
1004
+ #if HEDLEY_HAS_WARNING("-Wunused-function")
1005
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"")
1006
+ #elif HEDLEY_GCC_VERSION_CHECK(3,4,0)
1007
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"")
1008
+ #elif HEDLEY_MSVC_VERSION_CHECK(1,0,0)
1009
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505))
1010
+ #elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1011
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142")
1012
+ #else
1013
+ # define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
1014
+ #endif
1015
+
925
1016
  #if defined(HEDLEY_DEPRECATED)
926
1017
  # undef HEDLEY_DEPRECATED
927
1018
  #endif
928
1019
  #if defined(HEDLEY_DEPRECATED_FOR)
929
1020
  # undef HEDLEY_DEPRECATED_FOR
930
1021
  #endif
931
- #if defined(__cplusplus) && (__cplusplus >= 201402L)
932
- # define HEDLEY_DEPRECATED(since) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]])
933
- # define HEDLEY_DEPRECATED_FOR(since, replacement) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]])
1022
+ #if \
1023
+ HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \
1024
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1025
+ # define HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since))
1026
+ # define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement))
934
1027
  #elif \
935
- HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) || \
1028
+ (HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(HEDLEY_IAR_VERSION)) || \
936
1029
  HEDLEY_GCC_VERSION_CHECK(4,5,0) || \
937
1030
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
938
1031
  HEDLEY_ARM_VERSION_CHECK(5,6,0) || \
@@ -942,9 +1035,13 @@
942
1035
  HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \
943
1036
  HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \
944
1037
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
945
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0)
1038
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \
1039
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
946
1040
  # define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since)))
947
1041
  # define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement)))
1042
+ #elif defined(__cplusplus) && (__cplusplus >= 201402L)
1043
+ # define HEDLEY_DEPRECATED(since) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]])
1044
+ # define HEDLEY_DEPRECATED_FOR(since, replacement) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]])
948
1045
  #elif \
949
1046
  HEDLEY_HAS_ATTRIBUTE(deprecated) || \
950
1047
  HEDLEY_GCC_VERSION_CHECK(3,1,0) || \
@@ -959,15 +1056,15 @@
959
1056
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
960
1057
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
961
1058
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
962
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1059
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1060
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \
1061
+ HEDLEY_IAR_VERSION_CHECK(8,10,0)
963
1062
  # define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__))
964
1063
  # define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__))
965
- #elif HEDLEY_MSVC_VERSION_CHECK(14,0,0)
966
- # define HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since))
967
- # define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement))
968
1064
  #elif \
969
1065
  HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \
970
- HEDLEY_PELLES_VERSION_CHECK(6,50,0)
1066
+ HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \
1067
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
971
1068
  # define HEDLEY_DEPRECATED(since) __declspec(deprecated)
972
1069
  # define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated)
973
1070
  #elif HEDLEY_IAR_VERSION_CHECK(8,0,0)
@@ -984,7 +1081,8 @@
984
1081
  #if \
985
1082
  HEDLEY_HAS_ATTRIBUTE(warning) || \
986
1083
  HEDLEY_GCC_VERSION_CHECK(4,3,0) || \
987
- HEDLEY_INTEL_VERSION_CHECK(13,0,0)
1084
+ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1085
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
988
1086
  # define HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since)))
989
1087
  #else
990
1088
  # define HEDLEY_UNAVAILABLE(available_since)
@@ -996,13 +1094,7 @@
996
1094
  #if defined(HEDLEY_WARN_UNUSED_RESULT_MSG)
997
1095
  # undef HEDLEY_WARN_UNUSED_RESULT_MSG
998
1096
  #endif
999
- #if (HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L)
1000
- # define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
1001
- # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]])
1002
- #elif HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard)
1003
- # define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
1004
- # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
1005
- #elif \
1097
+ #if \
1006
1098
  HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \
1007
1099
  HEDLEY_GCC_VERSION_CHECK(3,4,0) || \
1008
1100
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
@@ -1018,9 +1110,16 @@
1018
1110
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1019
1111
  HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1020
1112
  (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \
1021
- HEDLEY_PGI_VERSION_CHECK(17,10,0)
1113
+ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \
1114
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1022
1115
  # define HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
1023
1116
  # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__))
1117
+ #elif (HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L)
1118
+ # define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
1119
+ # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]])
1120
+ #elif HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard)
1121
+ # define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
1122
+ # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
1024
1123
  #elif defined(_Check_return_) /* SAL */
1025
1124
  # define HEDLEY_WARN_UNUSED_RESULT _Check_return_
1026
1125
  # define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_
@@ -1036,7 +1135,8 @@
1036
1135
  HEDLEY_HAS_ATTRIBUTE(sentinel) || \
1037
1136
  HEDLEY_GCC_VERSION_CHECK(4,0,0) || \
1038
1137
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1039
- HEDLEY_ARM_VERSION_CHECK(5,4,0)
1138
+ HEDLEY_ARM_VERSION_CHECK(5,4,0) || \
1139
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1040
1140
  # define HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position)))
1041
1141
  #else
1042
1142
  # define HEDLEY_SENTINEL(position)
@@ -1047,7 +1147,9 @@
1047
1147
  #endif
1048
1148
  #if HEDLEY_IAR_VERSION_CHECK(8,0,0)
1049
1149
  # define HEDLEY_NO_RETURN __noreturn
1050
- #elif HEDLEY_INTEL_VERSION_CHECK(13,0,0)
1150
+ #elif \
1151
+ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1152
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1051
1153
  # define HEDLEY_NO_RETURN __attribute__((__noreturn__))
1052
1154
  #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
1053
1155
  # define HEDLEY_NO_RETURN _Noreturn
@@ -1069,11 +1171,14 @@
1069
1171
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
1070
1172
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1071
1173
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1072
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1174
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1175
+ HEDLEY_IAR_VERSION_CHECK(8,10,0)
1073
1176
  # define HEDLEY_NO_RETURN __attribute__((__noreturn__))
1074
1177
  #elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)
1075
1178
  # define HEDLEY_NO_RETURN _Pragma("does_not_return")
1076
- #elif HEDLEY_MSVC_VERSION_CHECK(13,10,0)
1179
+ #elif \
1180
+ HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \
1181
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1077
1182
  # define HEDLEY_NO_RETURN __declspec(noreturn)
1078
1183
  #elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus)
1079
1184
  # define HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;")
@@ -1105,7 +1210,8 @@
1105
1210
  #endif
1106
1211
  #if \
1107
1212
  HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \
1108
- HEDLEY_INTEL_VERSION_CHECK(13,0,0)
1213
+ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1214
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1109
1215
  # define HEDLEY_ASSUME(expr) __assume(expr)
1110
1216
  #elif HEDLEY_HAS_BUILTIN(__builtin_assume)
1111
1217
  # define HEDLEY_ASSUME(expr) __builtin_assume(expr)
@@ -1123,7 +1229,9 @@
1123
1229
  HEDLEY_GCC_VERSION_CHECK(4,5,0) || \
1124
1230
  HEDLEY_PGI_VERSION_CHECK(18,10,0) || \
1125
1231
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1126
- HEDLEY_IBM_VERSION_CHECK(13,1,5)
1232
+ HEDLEY_IBM_VERSION_CHECK(13,1,5) || \
1233
+ HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \
1234
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1127
1235
  # define HEDLEY_UNREACHABLE() __builtin_unreachable()
1128
1236
  #elif defined(HEDLEY_ASSUME)
1129
1237
  # define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0)
@@ -1201,7 +1309,8 @@ HEDLEY_DIAGNOSTIC_POP
1201
1309
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
1202
1310
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1203
1311
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1204
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1312
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1313
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1205
1314
  # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check)))
1206
1315
  #elif HEDLEY_PELLES_VERSION_CHECK(6,0,0)
1207
1316
  # define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check))
@@ -1237,15 +1346,16 @@ HEDLEY_DIAGNOSTIC_POP
1237
1346
  # define HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr))
1238
1347
  #endif
1239
1348
  #if \
1240
- (HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) || \
1241
- HEDLEY_GCC_VERSION_CHECK(9,0,0)) && !defined(HEDLEY_INTEL_VERSION)
1349
+ (HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(HEDLEY_PGI_VERSION)) || \
1350
+ HEDLEY_GCC_VERSION_CHECK(9,0,0) || \
1351
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1242
1352
  # define HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability))
1243
1353
  # define HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability))
1244
1354
  # define HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability))
1245
1355
  # define HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 )
1246
1356
  # define HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 )
1247
1357
  #elif \
1248
- HEDLEY_HAS_BUILTIN(__builtin_expect) || \
1358
+ (HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(HEDLEY_INTEL_CL_VERSION)) || \
1249
1359
  HEDLEY_GCC_VERSION_CHECK(3,0,0) || \
1250
1360
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1251
1361
  (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \
@@ -1259,7 +1369,8 @@ HEDLEY_DIAGNOSTIC_POP
1259
1369
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1260
1370
  HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1261
1371
  HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \
1262
- HEDLEY_CRAY_VERSION_CHECK(8,1,0)
1372
+ HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \
1373
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1263
1374
  # define HEDLEY_PREDICT(expr, expected, probability) \
1264
1375
  (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (HEDLEY_STATIC_CAST(void, expected), (expr)))
1265
1376
  # define HEDLEY_PREDICT_TRUE(expr, probability) \
@@ -1305,11 +1416,14 @@ HEDLEY_DIAGNOSTIC_POP
1305
1416
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
1306
1417
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1307
1418
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1308
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1419
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1420
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1309
1421
  # define HEDLEY_MALLOC __attribute__((__malloc__))
1310
1422
  #elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)
1311
1423
  # define HEDLEY_MALLOC _Pragma("returns_new_memory")
1312
- #elif HEDLEY_MSVC_VERSION_CHECK(14, 0, 0)
1424
+ #elif \
1425
+ HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \
1426
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1313
1427
  # define HEDLEY_MALLOC __declspec(restrict)
1314
1428
  #else
1315
1429
  # define HEDLEY_MALLOC
@@ -1336,7 +1450,8 @@ HEDLEY_DIAGNOSTIC_POP
1336
1450
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1337
1451
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1338
1452
  HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1339
- HEDLEY_PGI_VERSION_CHECK(17,10,0)
1453
+ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \
1454
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1340
1455
  # define HEDLEY_PURE __attribute__((__pure__))
1341
1456
  #elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)
1342
1457
  # define HEDLEY_PURE _Pragma("does_not_write_global_data")
@@ -1372,7 +1487,8 @@ HEDLEY_DIAGNOSTIC_POP
1372
1487
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1373
1488
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1374
1489
  HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1375
- HEDLEY_PGI_VERSION_CHECK(17,10,0)
1490
+ HEDLEY_PGI_VERSION_CHECK(17,10,0) || \
1491
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1376
1492
  # define HEDLEY_CONST __attribute__((__const__))
1377
1493
  #elif \
1378
1494
  HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)
@@ -1390,6 +1506,7 @@ HEDLEY_DIAGNOSTIC_POP
1390
1506
  HEDLEY_GCC_VERSION_CHECK(3,1,0) || \
1391
1507
  HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \
1392
1508
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1509
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \
1393
1510
  HEDLEY_ARM_VERSION_CHECK(4,1,0) || \
1394
1511
  HEDLEY_IBM_VERSION_CHECK(10,1,0) || \
1395
1512
  HEDLEY_PGI_VERSION_CHECK(17,10,0) || \
@@ -1399,7 +1516,8 @@ HEDLEY_DIAGNOSTIC_POP
1399
1516
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1400
1517
  (HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \
1401
1518
  HEDLEY_IAR_VERSION_CHECK(8,0,0) || \
1402
- defined(__clang__)
1519
+ defined(__clang__) || \
1520
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1403
1521
  # define HEDLEY_RESTRICT __restrict
1404
1522
  #elif HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus)
1405
1523
  # define HEDLEY_RESTRICT _Restrict
@@ -1420,13 +1538,15 @@ HEDLEY_DIAGNOSTIC_POP
1420
1538
  # define HEDLEY_INLINE __inline__
1421
1539
  #elif \
1422
1540
  HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \
1541
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \
1423
1542
  HEDLEY_ARM_VERSION_CHECK(4,1,0) || \
1424
1543
  HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \
1425
1544
  HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \
1426
1545
  HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \
1427
1546
  HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \
1428
1547
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1429
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1548
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1549
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1430
1550
  # define HEDLEY_INLINE __inline
1431
1551
  #else
1432
1552
  # define HEDLEY_INLINE
@@ -1452,9 +1572,13 @@ HEDLEY_DIAGNOSTIC_POP
1452
1572
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
1453
1573
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1454
1574
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1455
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1575
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1576
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \
1577
+ HEDLEY_IAR_VERSION_CHECK(8,10,0)
1456
1578
  # define HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) HEDLEY_INLINE
1457
- #elif HEDLEY_MSVC_VERSION_CHECK(12,0,0)
1579
+ #elif \
1580
+ HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \
1581
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1458
1582
  # define HEDLEY_ALWAYS_INLINE __forceinline
1459
1583
  #elif defined(__cplusplus) && \
1460
1584
  ( \
@@ -1492,9 +1616,13 @@ HEDLEY_DIAGNOSTIC_POP
1492
1616
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
1493
1617
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \
1494
1618
  HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \
1495
- HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)
1619
+ HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \
1620
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \
1621
+ HEDLEY_IAR_VERSION_CHECK(8,10,0)
1496
1622
  # define HEDLEY_NEVER_INLINE __attribute__((__noinline__))
1497
- #elif HEDLEY_MSVC_VERSION_CHECK(13,10,0)
1623
+ #elif \
1624
+ HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \
1625
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1498
1626
  # define HEDLEY_NEVER_INLINE __declspec(noinline)
1499
1627
  #elif HEDLEY_PGI_VERSION_CHECK(10,2,0)
1500
1628
  # define HEDLEY_NEVER_INLINE _Pragma("noinline")
@@ -1537,7 +1665,8 @@ HEDLEY_DIAGNOSTIC_POP
1537
1665
  (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \
1538
1666
  HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \
1539
1667
  ) \
1540
- )
1668
+ ) || \
1669
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1541
1670
  # define HEDLEY_PRIVATE __attribute__((__visibility__("hidden")))
1542
1671
  # define HEDLEY_PUBLIC __attribute__((__visibility__("default")))
1543
1672
  # else
@@ -1553,10 +1682,12 @@ HEDLEY_DIAGNOSTIC_POP
1553
1682
  #if \
1554
1683
  HEDLEY_HAS_ATTRIBUTE(nothrow) || \
1555
1684
  HEDLEY_GCC_VERSION_CHECK(3,3,0) || \
1556
- HEDLEY_INTEL_VERSION_CHECK(13,0,0)
1685
+ HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1686
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1557
1687
  # define HEDLEY_NO_THROW __attribute__((__nothrow__))
1558
1688
  #elif \
1559
1689
  HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \
1690
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \
1560
1691
  HEDLEY_ARM_VERSION_CHECK(4,1,0)
1561
1692
  # define HEDLEY_NO_THROW __declspec(nothrow)
1562
1693
  #else
@@ -1566,7 +1697,10 @@ HEDLEY_DIAGNOSTIC_POP
1566
1697
  #if defined(HEDLEY_FALL_THROUGH)
1567
1698
  # undef HEDLEY_FALL_THROUGH
1568
1699
  #endif
1569
- #if HEDLEY_GNUC_HAS_ATTRIBUTE(fallthrough,7,0,0) && !defined(HEDLEY_PGI_VERSION)
1700
+ #if \
1701
+ HEDLEY_HAS_ATTRIBUTE(fallthrough) || \
1702
+ HEDLEY_GCC_VERSION_CHECK(7,0,0) || \
1703
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1570
1704
  # define HEDLEY_FALL_THROUGH __attribute__((__fallthrough__))
1571
1705
  #elif HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough)
1572
1706
  # define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]])
@@ -1583,7 +1717,8 @@ HEDLEY_DIAGNOSTIC_POP
1583
1717
  #endif
1584
1718
  #if \
1585
1719
  HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \
1586
- HEDLEY_GCC_VERSION_CHECK(4,9,0)
1720
+ HEDLEY_GCC_VERSION_CHECK(4,9,0) || \
1721
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1587
1722
  # define HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__))
1588
1723
  #elif defined(_Ret_notnull_) /* SAL */
1589
1724
  # define HEDLEY_RETURNS_NON_NULL _Ret_notnull_
@@ -1625,7 +1760,8 @@ HEDLEY_DIAGNOSTIC_POP
1625
1760
  HEDLEY_IBM_VERSION_CHECK(13,1,0) || \
1626
1761
  HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \
1627
1762
  (HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \
1628
- HEDLEY_CRAY_VERSION_CHECK(8,1,0)
1763
+ HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \
1764
+ HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)
1629
1765
  # define HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr)
1630
1766
  #endif
1631
1767
  #if !defined(__cplusplus)
@@ -1649,7 +1785,7 @@ HEDLEY_DIAGNOSTIC_POP
1649
1785
  !defined(HEDLEY_SUNPRO_VERSION) && \
1650
1786
  !defined(HEDLEY_PGI_VERSION) && \
1651
1787
  !defined(HEDLEY_IAR_VERSION)) || \
1652
- HEDLEY_HAS_EXTENSION(c_generic_selections) || \
1788
+ (HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(HEDLEY_IAR_VERSION)) || \
1653
1789
  HEDLEY_GCC_VERSION_CHECK(4,9,0) || \
1654
1790
  HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \
1655
1791
  HEDLEY_IBM_VERSION_CHECK(12,1,0) || \
@@ -1719,7 +1855,7 @@ HEDLEY_DIAGNOSTIC_POP
1719
1855
  #if \
1720
1856
  !defined(__cplusplus) && ( \
1721
1857
  (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \
1722
- HEDLEY_HAS_FEATURE(c_static_assert) || \
1858
+ (HEDLEY_HAS_FEATURE(c_static_assert) && !defined(HEDLEY_INTEL_CL_VERSION)) || \
1723
1859
  HEDLEY_GCC_VERSION_CHECK(6,0,0) || \
1724
1860
  HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \
1725
1861
  defined(_Static_assert) \
@@ -1727,7 +1863,8 @@ HEDLEY_DIAGNOSTIC_POP
1727
1863
  # define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
1728
1864
  #elif \
1729
1865
  (defined(__cplusplus) && (__cplusplus >= 201103L)) || \
1730
- HEDLEY_MSVC_VERSION_CHECK(16,0,0)
1866
+ HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \
1867
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1731
1868
  # define HEDLEY_STATIC_ASSERT(expr, message) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message))
1732
1869
  #else
1733
1870
  # define HEDLEY_STATIC_ASSERT(expr, message)
@@ -1787,7 +1924,9 @@ HEDLEY_DIAGNOSTIC_POP
1787
1924
  HEDLEY_PGI_VERSION_CHECK(18,4,0) || \
1788
1925
  HEDLEY_INTEL_VERSION_CHECK(13,0,0)
1789
1926
  # define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(GCC warning msg)
1790
- #elif HEDLEY_MSVC_VERSION_CHECK(15,0,0)
1927
+ #elif \
1928
+ HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \
1929
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1791
1930
  # define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(message(msg))
1792
1931
  #else
1793
1932
  # define HEDLEY_WARNING(msg) HEDLEY_MESSAGE(msg)
@@ -1823,8 +1962,10 @@ HEDLEY_DIAGNOSTIC_POP
1823
1962
  #if defined(HEDLEY_FLAGS)
1824
1963
  # undef HEDLEY_FLAGS
1825
1964
  #endif
1826
- #if HEDLEY_HAS_ATTRIBUTE(flag_enum)
1965
+ #if HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion"))
1827
1966
  # define HEDLEY_FLAGS __attribute__((__flag_enum__))
1967
+ #else
1968
+ # define HEDLEY_FLAGS
1828
1969
  #endif
1829
1970
 
1830
1971
  #if defined(HEDLEY_FLAGS_CAST)
@@ -1844,7 +1985,9 @@ HEDLEY_DIAGNOSTIC_POP
1844
1985
  #if defined(HEDLEY_EMPTY_BASES)
1845
1986
  # undef HEDLEY_EMPTY_BASES
1846
1987
  #endif
1847
- #if HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !HEDLEY_MSVC_VERSION_CHECK(20,0,0)
1988
+ #if \
1989
+ (HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \
1990
+ HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)
1848
1991
  # define HEDLEY_EMPTY_BASES __declspec(empty_bases)
1849
1992
  #else
1850
1993
  # define HEDLEY_EMPTY_BASES