brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 0282e8a Raw
77 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-macosx10.9.0 -verify -Wsentinel -std=c++11 %s2 3ptrdiff_t p0; // expected-error{{unknown}}4size_t s0; // expected-error{{unknown}}5void* v0 = NULL; // expected-error{{undeclared}}6wint_t w0; // expected-error{{unknown}}7max_align_t m0; // expected-error{{unknown}}8 9#define __need_ptrdiff_t10#include <stddef.h>11 12ptrdiff_t p1;13size_t s1; // expected-error{{unknown}}14void* v1 = NULL; // expected-error{{undeclared}}15wint_t w1; // expected-error{{unknown}}16max_align_t m1; // expected-error{{unknown}}17 18#define __need_size_t19#include <stddef.h>20 21ptrdiff_t p2;22size_t s2;23void* v2 = NULL; // expected-error{{undeclared}}24wint_t w2; // expected-error{{unknown}}25max_align_t m2; // expected-error{{unknown}}26 27#define __need_NULL28#include <stddef.h>29 30ptrdiff_t p3;31size_t s3;32void* v3 = NULL;33wint_t w3; // expected-error{{unknown}}34max_align_t m3; // expected-error{{unknown}}35 36// Shouldn't bring in wint_t by default:37#include <stddef.h>38 39ptrdiff_t p4;40size_t s4;41void* v4 = NULL;42wint_t w4; // expected-error{{unknown}}43max_align_t m4;44 45#define __need_wint_t46#include <stddef.h>47 48ptrdiff_t p5;49size_t s5;50void* v5 = NULL;51wint_t w5;52max_align_t m5;53 54 55// linux/stddef.h does something like this for cpp files:56#undef NULL57#define NULL 058 59// Including stddef.h again shouldn't redefine NULL60#include <stddef.h>61 62// gtk headers then use __attribute__((sentinel)), which doesn't work if NULL63// is 0.64void f(const char* c, ...) __attribute__((sentinel)); // expected-note{{function has been explicitly marked sentinel here}}65void g() {66  f("", NULL); // expected-warning{{missing sentinel in function call}}67}68 69// glibc (and other) headers then define __need_NULL and rely on stddef.h70// to redefine NULL to the correct value again.71#define __need_NULL72#include <stddef.h>73 74void h() {75  f("", NULL);  // Shouldn't warn.76}77