summaryrefslogtreecommitdiffhomepage
path: root/auto/clang
blob: fc69bf6f59cc6f8db95836eb848aefaf604d8633 (plain) (blame)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135

# Copyright (C) Igor Sysoev
# Copyright (C) NGINX, Inc.


# C language features.


nxt_feature="C99 variadic macro"
nxt_feature_name=NXT_HAVE_C99_VARIADIC_MACRO
nxt_feature_run=yes
nxt_feature_path=
nxt_feature_libs=
nxt_feature_test="#include <stdio.h>
                  #define set(dummy, ...)  sprintf(__VA_ARGS__)

                  int main() {
                      char  buf[4];

                      buf[0] = '0';
                      set(0, buf, \"%d\", 1);

                      if (buf[0] == '1')
                          return 0;
                      return 1;
                  }"
. auto/feature


if [ $nxt_found = no ]; then

    nxt_feature="GCC variadic macro"
    nxt_feature_name=NXT_HAVE_GCC_VARIADIC_MACRO
    nxt_feature_run=yes
    nxt_feature_path=
    nxt_feature_libs=
    nxt_feature_test="#include <stdio.h>
                      #define set(dummy, args...)  sprintf(args)

                      int main() {
                          char  buf[4];

                          buf[0] = '0';
                          set(0, buf, \"%d\", 1);

                          if (buf[0] == '1')
                              return 0;
                          return 1;
                      }"
    . auto/feature
fi


nxt_feature="GCC __builtin_expect()"
nxt_feature_name=NXT_HAVE_BUILTIN_EXPECT
nxt_feature_run=no
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="int main(int argc, char *const *argv) {
                      if ((__typeof__(argc == 0))
                                   __builtin_expect((argc == 0), 0))
                          return 0;
                      return 1;
                  }"
. auto/feature


nxt_feature="GCC __builtin_unreachable()"
nxt_feature_name=NXT_HAVE_BUILTIN_UNREACHABLE
nxt_feature_run=no
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="int main() {
                      __builtin_unreachable();
                  }"
. auto/feature


nxt_feature="GCC __builtin_prefetch()"
nxt_feature_name=NXT_HAVE_BUILTIN_PREFETCH
nxt_feature_run=no
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="int main() {
                      __builtin_prefetch(0);
                  }"
. auto/feature


nxt_feature="GCC __attribute__ visibility"
nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_VISIBILITY
nxt_feature_run=
nxt_feature_path=
nxt_feature_libs=
nxt_feature_test="int n __attribute__ ((visibility(\"default\")));

                  int main() {
                      return 1;
                  }"
. auto/feature


nxt_feature="GCC __attribute__ aligned"
nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_ALIGNED
nxt_feature_run=
nxt_feature_path=
nxt_feature_libs=
nxt_feature_test="int n __attribute__ ((aligned(64)));

                  int main() {
                      return 1;
                  }"
. auto/feature


nxt_feature="GCC __attribute__ malloc"
nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_MALLOC
nxt_feature_run=
nxt_feature_path=
nxt_feature_libs=
nxt_feature_test="#include <stdlib.h>

                  void *f(void) __attribute__ ((__malloc__));

                  void *f(void) {
                      return malloc(1);
                  }

                  int main() {
                      if (f() != NULL) {
                          return 1;
                      }
                      return 0;
                  }"
. auto/feature