summaryrefslogtreecommitdiffstats
path: root/test/Headers
diff options
context:
space:
mode:
Diffstat (limited to 'test/Headers')
-rw-r--r--test/Headers/c11.c13
-rw-r--r--test/Headers/cxx11.cpp7
-rw-r--r--test/Headers/ms-wchar.c15
3 files changed, 35 insertions, 0 deletions
diff --git a/test/Headers/c11.c b/test/Headers/c11.c
index f65164d1..21f2e4f 100644
--- a/test/Headers/c11.c
+++ b/test/Headers/c11.c
@@ -1,5 +1,6 @@
// RUN: %clang -fsyntax-only -Xclang -verify -std=c11 %s
// RUN: %clang -fsyntax-only -Xclang -verify -std=c11 -fmodules %s
+// RUN: %clang -fsyntax-only -Xclang -verify -std=c11 -ffreestanding %s
noreturn int f(); // expected-error 1+{{}}
@@ -17,3 +18,15 @@ _Static_assert(__alignas_is_defined, "");
_Static_assert(__alignof_is_defined, "");
alignas(alignof(int)) char c[4];
_Static_assert(__alignof(c) == 4, "");
+
+#define __STDC_WANT_LIB_EXT1__ 1
+#include <stddef.h>
+rsize_t x = 0;
+
+// If we are freestanding, then also check RSIZE_MAX (in a hosted implementation
+// we will use the host stdint.h, which may not yet have C11 support).
+#ifndef __STDC_HOSTED__
+#include <stdint.h>
+rsize_t x2 = RSIZE_MAX;
+#endif
+
diff --git a/test/Headers/cxx11.cpp b/test/Headers/cxx11.cpp
index 41bdc76..54fe350 100644
--- a/test/Headers/cxx11.cpp
+++ b/test/Headers/cxx11.cpp
@@ -13,3 +13,10 @@
static_assert(__alignas_is_defined, "");
static_assert(__alignof_is_defined, "");
+
+
+#include <stdint.h>
+
+#ifndef SIZE_MAX
+#error SIZE_MAX should be defined in C++
+#endif
diff --git a/test/Headers/ms-wchar.c b/test/Headers/ms-wchar.c
new file mode 100644
index 0000000..f015fc7
--- /dev/null
+++ b/test/Headers/ms-wchar.c
@@ -0,0 +1,15 @@
+// RUN: %clang -fsyntax-only -target i386-pc-win32 %s
+
+#if defined(_WCHAR_T_DEFINED)
+#error "_WCHAR_T_DEFINED should not be defined in C99"
+#endif
+
+#include <stddef.h>
+
+#if !defined(_WCHAR_T_DEFINED)
+#error "_WCHAR_T_DEFINED should have been set by stddef.h"
+#endif
+
+#if defined(_NATIVE_WCHAR_T_DEFINED)
+#error "_NATIVE_WCHAR_T_DEFINED should not be defined"
+#endif
OpenPOWER on IntegriCloud