Select one of the symbols to view example projects that use it.
 
Outline
#include "sdkconfig.h"
#define likely
#define unlikely
#define likely
#define unlikely
#define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR
#define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY
#define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR
#define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY
#define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR
#define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY
#define __COMPILER_PRAGMA__
#define _COMPILER_PRAGMA_
#define ESP_COMPILER_DIAGNOSTIC_PUSH_IGNORE
#define ESP_COMPILER_DIAGNOSTIC_POP
#define ESP_STATIC_ANALYZER_CHECK
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/esp_common/include/esp_compiler.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #pragma once #include "sdkconfig.h" /* * The likely and unlikely macro pairs: * These macros are useful to place when application * knows the majority occurrence of a decision paths, * placing one of these macros can hint the compiler * to reorder instructions producing more optimized * code. *//* ... */ #if (CONFIG_COMPILER_OPTIMIZATION_PERF) #ifndef likely #define likely(x) __builtin_expect(!!(x), 1) #endif #ifndef unlikely #define unlikely(x) __builtin_expect(!!(x), 0) #endif/* ... */ #else #ifndef likely #define likely(x) (x) #endif #ifndef unlikely #define unlikely(x) (x) #endif/* ... */ #endif /* * Utility macros used for designated initializers, which work differently * in C99 and C++ standards mainly for aggregate types. * The member separator, comma, is already part of the macro, please omit the trailing comma. * Usage example: * struct config_t { char* pchr; char arr[SIZE]; } config = { * ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(pchr) * ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR(arr, "Value") * }; *//* ... */ #if defined(__cplusplus) && __cplusplus >= 202002L #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR(member, value) .member = value, #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(member) .member = { },/* ... */ #elif defined(__cplusplus) && __cplusplus < 202002L #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR(member, value) { .member = value }, #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(member) .member = { },/* ... */ #else #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_STR(member, value) .member = value, #define ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(member)/* ... */ #endif #define __COMPILER_PRAGMA__(string) _Pragma(#string) #define _COMPILER_PRAGMA_(string) __COMPILER_PRAGMA__(string) #if __clang__ #define ESP_COMPILER_DIAGNOSTIC_PUSH_IGNORE(warning) \ __COMPILER_PRAGMA__(clang diagnostic push) \ __COMPILER_PRAGMA__(clang diagnostic ignored "-Wunknown-warning-option") \ __COMPILER_PRAGMA__(clang diagnostic ignored warning)... #define ESP_COMPILER_DIAGNOSTIC_POP(warning) \ __COMPILER_PRAGMA__(clang diagnostic pop)... /* ... */#elif __GNUC__ #define ESP_COMPILER_DIAGNOSTIC_PUSH_IGNORE(warning) \ __COMPILER_PRAGMA__(GCC diagnostic push) \ __COMPILER_PRAGMA__(GCC diagnostic ignored "-Wpragmas") \ __COMPILER_PRAGMA__(GCC diagnostic ignored warning)... #define ESP_COMPILER_DIAGNOSTIC_POP(warning) \ __COMPILER_PRAGMA__(GCC diagnostic pop)... /* ... */#else #define ESP_COMPILER_DIAGNOSTIC_PUSH_IGNORE(warning) #define ESP_COMPILER_DIAGNOSTIC_POP(warning)/* ... */ #endif #if __clang_analyzer__ || CONFIG_COMPILER_STATIC_ANALYZER #define ESP_STATIC_ANALYZER_CHECK(_expr_, _ret_) do { if ((_expr_)) { return (_ret_); } } while(0) #else #define ESP_STATIC_ANALYZER_CHECK(_expr_, _ret_) #endif
Details
Show:
from
Types: Columns: