1*700637cbSDimitry Andric// -*- C++ -*- 2*700637cbSDimitry Andric//===----------------------------------------------------------------------===// 3*700637cbSDimitry Andric// 4*700637cbSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*700637cbSDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 6*700637cbSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*700637cbSDimitry Andric// 8*700637cbSDimitry Andric//===----------------------------------------------------------------------===// 9*700637cbSDimitry Andric 10*700637cbSDimitry Andric#ifndef _LIBCPP___CXX03_CSTDARG 11*700637cbSDimitry Andric#define _LIBCPP___CXX03_CSTDARG 12*700637cbSDimitry Andric 13*700637cbSDimitry Andric/* 14*700637cbSDimitry Andric cstdarg synopsis 15*700637cbSDimitry Andric 16*700637cbSDimitry AndricMacros: 17*700637cbSDimitry Andric 18*700637cbSDimitry Andric type va_arg(va_list ap, type); 19*700637cbSDimitry Andric void va_copy(va_list dest, va_list src); // C99 20*700637cbSDimitry Andric void va_end(va_list ap); 21*700637cbSDimitry Andric void va_start(va_list ap, parmN); 22*700637cbSDimitry Andric 23*700637cbSDimitry Andricnamespace std 24*700637cbSDimitry Andric{ 25*700637cbSDimitry Andric 26*700637cbSDimitry AndricTypes: 27*700637cbSDimitry Andric 28*700637cbSDimitry Andric va_list 29*700637cbSDimitry Andric 30*700637cbSDimitry Andric} // std 31*700637cbSDimitry Andric 32*700637cbSDimitry Andric*/ 33*700637cbSDimitry Andric 34*700637cbSDimitry Andric#include <__cxx03/__config> 35*700637cbSDimitry Andric 36*700637cbSDimitry Andric// <stdarg.h> is not provided by libc++ 37*700637cbSDimitry Andric#if __has_include(<stdarg.h>) 38*700637cbSDimitry Andric# include <stdarg.h> 39*700637cbSDimitry Andric# ifdef _LIBCPP___CXX03_STDARG_H 40*700637cbSDimitry Andric# error "If libc++ starts defining <stdarg.h>, the __has_include check should move to libc++'s <stdarg.h>" 41*700637cbSDimitry Andric# endif 42*700637cbSDimitry Andric#endif 43*700637cbSDimitry Andric 44*700637cbSDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 45*700637cbSDimitry Andric# pragma GCC system_header 46*700637cbSDimitry Andric#endif 47*700637cbSDimitry Andric 48*700637cbSDimitry Andric_LIBCPP_BEGIN_NAMESPACE_STD 49*700637cbSDimitry Andric 50*700637cbSDimitry Andricusing ::va_list _LIBCPP_USING_IF_EXISTS; 51*700637cbSDimitry Andric 52*700637cbSDimitry Andric_LIBCPP_END_NAMESPACE_STD 53*700637cbSDimitry Andric 54*700637cbSDimitry Andric#endif // _LIBCPP___CXX03_CSTDARG 55