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/README.md +3 -2
- package/binding.gyp +141 -6
- package/index.js +21 -19
- package/package.json +2 -1
- package/src/common.h +34 -19
- package/src/crc.cc +138 -11
- package/src/crc_arm.cc +42 -7
- package/src/crc_folding.cc +18 -53
- package/src/crc_folding_256.cc +229 -0
- package/src/decoder.cc +8 -4
- package/src/decoder.h +5 -5
- package/src/decoder_avx2_base.h +30 -13
- package/src/decoder_common.h +5 -5
- package/src/decoder_neon.cc +4 -4
- package/src/decoder_neon64.cc +10 -7
- package/src/decoder_sse_base.h +26 -12
- package/src/decoder_vbmi2.cc +37 -0
- package/src/encoder.cc +10 -1
- package/src/encoder_avx_base.h +24 -16
- package/src/encoder_neon.cc +40 -41
- package/src/encoder_rvv.cc +219 -0
- package/src/encoder_sse_base.h +7 -8
- package/src/encoder_vbmi2.cc +30 -0
- package/src/hedley.h +278 -135
- package/src/platform.cc +79 -10
- package/src/test_alignalloc.c +6 -0
- package/test/_speedbase.js +12 -11
- package/test/speeddec.js +6 -5
- package/test/testcrc.js +14 -0
- package/test/testdec.js +30 -14
- package/test/testenc.js +10 -7
- package/test/testpostdec.js +6 -5
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 <
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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)
|
|
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)
|
|
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
|
-
#
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
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
|
|
932
|
-
|
|
933
|
-
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|