Path: blob/main/contrib/llvm-project/clang/include/clang-c/ExternC.h
35233 views
/*===- clang-c/ExternC.h - Wrapper for 'extern "C"' ---------------*- C -*-===*\1|* *|2|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|3|* Exceptions. *|4|* See https://llvm.org/LICENSE.txt for license information. *|5|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|6|* *|7|*===----------------------------------------------------------------------===*|8|* *|9|* This file defines an 'extern "C"' wrapper. *|10|* *|11\*===----------------------------------------------------------------------===*/1213#ifndef LLVM_CLANG_C_EXTERN_C_H14#define LLVM_CLANG_C_EXTERN_C_H1516#ifdef __clang__17#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN \18_Pragma("clang diagnostic push") \19_Pragma("clang diagnostic error \"-Wstrict-prototypes\"")20#define LLVM_CLANG_C_STRICT_PROTOTYPES_END _Pragma("clang diagnostic pop")21#else22#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN23#define LLVM_CLANG_C_STRICT_PROTOTYPES_END24#endif2526#ifdef __cplusplus27#define LLVM_CLANG_C_EXTERN_C_BEGIN \28extern "C" { \29LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN30#define LLVM_CLANG_C_EXTERN_C_END \31LLVM_CLANG_C_STRICT_PROTOTYPES_END \32}33#else34#define LLVM_CLANG_C_EXTERN_C_BEGIN LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN35#define LLVM_CLANG_C_EXTERN_C_END LLVM_CLANG_C_STRICT_PROTOTYPES_END36#endif3738#endif394041