Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
/*===- clang-c/ExternC.h - Wrapper for 'extern "C"' ---------------*- C -*-===*\
2
|*                                                                            *|
3
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
4
|* Exceptions.                                                                *|
5
|* See https://llvm.org/LICENSE.txt for license information.                  *|
6
|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
7
|*                                                                            *|
8
|*===----------------------------------------------------------------------===*|
9
|*                                                                            *|
10
|* This file defines an 'extern "C"' wrapper.                                 *|
11
|*                                                                            *|
12
\*===----------------------------------------------------------------------===*/
13
 
14
#ifndef LLVM_CLANG_C_EXTERN_C_H
15
#define LLVM_CLANG_C_EXTERN_C_H
16
 
17
#ifdef __clang__
18
#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN                                   \
19
  _Pragma("clang diagnostic push")                                             \
20
      _Pragma("clang diagnostic error \"-Wstrict-prototypes\"")
21
#define LLVM_CLANG_C_STRICT_PROTOTYPES_END _Pragma("clang diagnostic pop")
22
#else
23
#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN
24
#define LLVM_CLANG_C_STRICT_PROTOTYPES_END
25
#endif
26
 
27
#ifdef __cplusplus
28
#define LLVM_CLANG_C_EXTERN_C_BEGIN                                            \
29
  extern "C" {                                                                 \
30
  LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN
31
#define LLVM_CLANG_C_EXTERN_C_END                                              \
32
  LLVM_CLANG_C_STRICT_PROTOTYPES_END                                           \
33
  }
34
#else
35
#define LLVM_CLANG_C_EXTERN_C_BEGIN LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN
36
#define LLVM_CLANG_C_EXTERN_C_END LLVM_CLANG_C_STRICT_PROTOTYPES_END
37
#endif
38
 
39
#endif