annotate clang/test/Preprocessor/feature_tests.cpp @ 165:597b3f1c2c93

fix call createTailCallEliminationPass
author anatofuz
date Tue, 24 Mar 2020 15:30:52 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 %s -triple=i686-apple-darwin9 -verify -DVERIFY
anatofuz
parents:
diff changeset
2 // expected-no-diagnostics
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 #ifndef __has_feature
anatofuz
parents:
diff changeset
5 #error Should have __has_feature
anatofuz
parents:
diff changeset
6 #endif
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 #if __has_feature(something_we_dont_have)
anatofuz
parents:
diff changeset
9 #error Bad
anatofuz
parents:
diff changeset
10 #endif
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 #if !__has_builtin(__builtin_huge_val) || \
anatofuz
parents:
diff changeset
13 !__has_builtin(__builtin_shufflevector) || \
anatofuz
parents:
diff changeset
14 !__has_builtin(__builtin_convertvector) || \
anatofuz
parents:
diff changeset
15 !__has_builtin(__builtin_trap) || \
anatofuz
parents:
diff changeset
16 !__has_builtin(__c11_atomic_init) || \
anatofuz
parents:
diff changeset
17 !__has_builtin(__builtin_launder) || \
anatofuz
parents:
diff changeset
18 !__has_feature(attribute_analyzer_noreturn) || \
anatofuz
parents:
diff changeset
19 !__has_feature(attribute_overloadable)
anatofuz
parents:
diff changeset
20 #error Clang should have these
anatofuz
parents:
diff changeset
21 #endif
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 // These are technically implemented as keywords, but __has_builtin should
anatofuz
parents:
diff changeset
24 // still return true.
anatofuz
parents:
diff changeset
25 #if !__has_builtin(__builtin_LINE) || \
anatofuz
parents:
diff changeset
26 !__has_builtin(__builtin_FILE) || \
anatofuz
parents:
diff changeset
27 !__has_builtin(__builtin_FUNCTION) || \
anatofuz
parents:
diff changeset
28 !__has_builtin(__builtin_COLUMN) || \
anatofuz
parents:
diff changeset
29 !__has_builtin(__array_rank) || \
anatofuz
parents:
diff changeset
30 !__has_builtin(__underlying_type) || \
anatofuz
parents:
diff changeset
31 !__has_builtin(__is_trivial) || \
anatofuz
parents:
diff changeset
32 !__has_builtin(__is_same_as) || \
anatofuz
parents:
diff changeset
33 !__has_builtin(__has_unique_object_representations)
anatofuz
parents:
diff changeset
34 #error Clang should have these
anatofuz
parents:
diff changeset
35 #endif
anatofuz
parents:
diff changeset
36
anatofuz
parents:
diff changeset
37 // This is a C-only builtin.
anatofuz
parents:
diff changeset
38 #if __has_builtin(__builtin_types_compatible_p)
anatofuz
parents:
diff changeset
39 #error Clang should not have this in C++ mode
anatofuz
parents:
diff changeset
40 #endif
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 #if __has_builtin(__builtin_insanity)
anatofuz
parents:
diff changeset
43 #error Clang should not have this
anatofuz
parents:
diff changeset
44 #endif