Update prebuilt Clang to r416183b from Android.
https://android.googlesource.com/platform/prebuilts/clang/host/
linux-x86/+/06a71ddac05c22edb2d10b590e1769b3f8619bef
clang 12.0.5 (based on r416183b) from build 7284624.
Change-Id: I277a316abcf47307562d8b748b84870f31a72866
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
diff --git a/linux-x64/clang/include/clang-c/BuildSystem.h b/linux-x64/clang/include/clang-c/BuildSystem.h
index 8f26a86..296e612 100644
--- a/linux-x64/clang/include/clang-c/BuildSystem.h
+++ b/linux-x64/clang/include/clang-c/BuildSystem.h
@@ -14,13 +14,12 @@
#ifndef LLVM_CLANG_C_BUILDSYSTEM_H
#define LLVM_CLANG_C_BUILDSYSTEM_H
-#include "clang-c/Platform.h"
#include "clang-c/CXErrorCode.h"
#include "clang-c/CXString.h"
+#include "clang-c/ExternC.h"
+#include "clang-c/Platform.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+LLVM_CLANG_C_EXTERN_C_BEGIN
/**
* \defgroup BUILD_SYSTEM Build system utilities
@@ -118,7 +117,7 @@
const char *name);
/**
- * Sets the umbrealla header name that the module.map describes.
+ * Sets the umbrella header name that the module.map describes.
* \returns 0 for success, non-zero to indicate an error.
*/
CINDEX_LINKAGE enum CXErrorCode
@@ -148,9 +147,7 @@
* @}
*/
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
#endif /* CLANG_C_BUILD_SYSTEM_H */
diff --git a/linux-x64/clang/include/clang-c/CXCompilationDatabase.h b/linux-x64/clang/include/clang-c/CXCompilationDatabase.h
index 2669c1a..2b336e5 100644
--- a/linux-x64/clang/include/clang-c/CXCompilationDatabase.h
+++ b/linux-x64/clang/include/clang-c/CXCompilationDatabase.h
@@ -15,12 +15,11 @@
#ifndef LLVM_CLANG_C_CXCOMPILATIONDATABASE_H
#define LLVM_CLANG_C_CXCOMPILATIONDATABASE_H
-#include "clang-c/Platform.h"
#include "clang-c/CXString.h"
+#include "clang-c/ExternC.h"
+#include "clang-c/Platform.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+LLVM_CLANG_C_EXTERN_C_BEGIN
/** \defgroup COMPILATIONDB CompilationDatabase functions
* \ingroup CINDEX
@@ -169,8 +168,7 @@
* @}
*/
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
+
#endif
diff --git a/linux-x64/clang/include/clang-c/CXErrorCode.h b/linux-x64/clang/include/clang-c/CXErrorCode.h
index fed195e..b3a0b9d 100644
--- a/linux-x64/clang/include/clang-c/CXErrorCode.h
+++ b/linux-x64/clang/include/clang-c/CXErrorCode.h
@@ -14,11 +14,10 @@
#ifndef LLVM_CLANG_C_CXERRORCODE_H
#define LLVM_CLANG_C_CXERRORCODE_H
+#include "clang-c/ExternC.h"
#include "clang-c/Platform.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+LLVM_CLANG_C_EXTERN_C_BEGIN
/**
* Error codes returned by libclang routines.
@@ -57,8 +56,7 @@
CXError_ASTReadError = 4
};
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
+
#endif
diff --git a/linux-x64/clang/include/clang-c/CXString.h b/linux-x64/clang/include/clang-c/CXString.h
index 1eb3442..f117010 100644
--- a/linux-x64/clang/include/clang-c/CXString.h
+++ b/linux-x64/clang/include/clang-c/CXString.h
@@ -14,11 +14,10 @@
#ifndef LLVM_CLANG_C_CXSTRING_H
#define LLVM_CLANG_C_CXSTRING_H
+#include "clang-c/ExternC.h"
#include "clang-c/Platform.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+LLVM_CLANG_C_EXTERN_C_BEGIN
/**
* \defgroup CINDEX_STRING String manipulation routines
@@ -64,8 +63,7 @@
* @}
*/
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
+
#endif
diff --git a/linux-x64/clang/include/clang-c/Documentation.h b/linux-x64/clang/include/clang-c/Documentation.h
index 4af8c93..5bece2c 100644
--- a/linux-x64/clang/include/clang-c/Documentation.h
+++ b/linux-x64/clang/include/clang-c/Documentation.h
@@ -15,11 +15,10 @@
#ifndef LLVM_CLANG_C_DOCUMENTATION_H
#define LLVM_CLANG_C_DOCUMENTATION_H
+#include "clang-c/ExternC.h"
#include "clang-c/Index.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+LLVM_CLANG_C_EXTERN_C_BEGIN
/**
* \defgroup CINDEX_COMMENT Comment introspection
@@ -182,7 +181,12 @@
* Command argument should be rendered emphasized (typically italic
* font).
*/
- CXCommentInlineCommandRenderKind_Emphasized
+ CXCommentInlineCommandRenderKind_Emphasized,
+
+ /**
+ * Command argument should not be rendered (since it only defines an anchor).
+ */
+ CXCommentInlineCommandRenderKind_Anchor
};
/**
@@ -545,10 +549,7 @@
* @}
*/
-
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
#endif /* CLANG_C_DOCUMENTATION_H */
diff --git a/linux-x64/clang/include/clang-c/ExternC.h b/linux-x64/clang/include/clang-c/ExternC.h
new file mode 100644
index 0000000..384f24d
--- /dev/null
+++ b/linux-x64/clang/include/clang-c/ExternC.h
@@ -0,0 +1,39 @@
+/*===- clang-c/ExternC.h - Wrapper for 'extern "C"' ---------------*- C -*-===*\
+|* *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
+|* Exceptions. *|
+|* See https://llvm.org/LICENSE.txt for license information. *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
+|* *|
+|*===----------------------------------------------------------------------===*|
+|* *|
+|* This file defines an 'extern "C"' wrapper. *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef LLVM_CLANG_C_EXTERN_C_H
+#define LLVM_CLANG_C_EXTERN_C_H
+
+#ifdef __clang__
+#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN \
+ _Pragma("clang diagnostic push") \
+ _Pragma("clang diagnostic error \"-Wstrict-prototypes\"")
+#define LLVM_CLANG_C_STRICT_PROTOTYPES_END _Pragma("clang diagnostic pop")
+#else
+#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN
+#define LLVM_CLANG_C_STRICT_PROTOTYPES_END
+#endif
+
+#ifdef __cplusplus
+#define LLVM_CLANG_C_EXTERN_C_BEGIN \
+ extern "C" { \
+ LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN
+#define LLVM_CLANG_C_EXTERN_C_END \
+ LLVM_CLANG_C_STRICT_PROTOTYPES_END \
+ }
+#else
+#define LLVM_CLANG_C_EXTERN_C_BEGIN LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN
+#define LLVM_CLANG_C_EXTERN_C_END LLVM_CLANG_C_STRICT_PROTOTYPES_END
+#endif
+
+#endif
diff --git a/linux-x64/clang/include/clang-c/FatalErrorHandler.h b/linux-x64/clang/include/clang-c/FatalErrorHandler.h
new file mode 100644
index 0000000..22f34fa
--- /dev/null
+++ b/linux-x64/clang/include/clang-c/FatalErrorHandler.h
@@ -0,0 +1,32 @@
+/*===-- clang-c/FatalErrorHandler.h - Fatal Error Handling --------*- C -*-===*\
+|* *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
+|* Exceptions. *|
+|* See https://llvm.org/LICENSE.txt for license information. *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef LLVM_CLANG_C_FATAL_ERROR_HANDLER_H
+#define LLVM_CLANG_C_FATAL_ERROR_HANDLER_H
+
+#include "clang-c/ExternC.h"
+
+LLVM_CLANG_C_EXTERN_C_BEGIN
+
+/**
+ * Installs error handler that prints error message to stderr and calls abort().
+ * Replaces currently installed error handler (if any).
+ */
+void clang_install_aborting_llvm_fatal_error_handler(void);
+
+/**
+ * Removes currently installed error handler (if any).
+ * If no error handler is intalled, the default strategy is to print error
+ * message to stderr and call exit(1).
+ */
+void clang_uninstall_llvm_fatal_error_handler(void);
+
+LLVM_CLANG_C_EXTERN_C_END
+
+#endif
diff --git a/linux-x64/clang/include/clang-c/Index.h b/linux-x64/clang/include/clang-c/Index.h
index 74badac..e305283 100644
--- a/linux-x64/clang/include/clang-c/Index.h
+++ b/linux-x64/clang/include/clang-c/Index.h
@@ -18,10 +18,11 @@
#include <time.h>
-#include "clang-c/Platform.h"
+#include "clang-c/BuildSystem.h"
#include "clang-c/CXErrorCode.h"
#include "clang-c/CXString.h"
-#include "clang-c/BuildSystem.h"
+#include "clang-c/ExternC.h"
+#include "clang-c/Platform.h"
/**
* The version constants for the libclang API.
@@ -32,28 +33,21 @@
* compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable.
*/
#define CINDEX_VERSION_MAJOR 0
-#define CINDEX_VERSION_MINOR 59
+#define CINDEX_VERSION_MINOR 61
-#define CINDEX_VERSION_ENCODE(major, minor) ( \
- ((major) * 10000) \
- + ((minor) * 1))
+#define CINDEX_VERSION_ENCODE(major, minor) (((major)*10000) + ((minor)*1))
-#define CINDEX_VERSION CINDEX_VERSION_ENCODE( \
- CINDEX_VERSION_MAJOR, \
- CINDEX_VERSION_MINOR )
+#define CINDEX_VERSION \
+ CINDEX_VERSION_ENCODE(CINDEX_VERSION_MAJOR, CINDEX_VERSION_MINOR)
-#define CINDEX_VERSION_STRINGIZE_(major, minor) \
- #major"."#minor
-#define CINDEX_VERSION_STRINGIZE(major, minor) \
- CINDEX_VERSION_STRINGIZE_(major, minor)
+#define CINDEX_VERSION_STRINGIZE_(major, minor) #major "." #minor
+#define CINDEX_VERSION_STRINGIZE(major, minor) \
+ CINDEX_VERSION_STRINGIZE_(major, minor)
-#define CINDEX_VERSION_STRING CINDEX_VERSION_STRINGIZE( \
- CINDEX_VERSION_MAJOR, \
- CINDEX_VERSION_MINOR)
+#define CINDEX_VERSION_STRING \
+ CINDEX_VERSION_STRINGIZE(CINDEX_VERSION_MAJOR, CINDEX_VERSION_MINOR)
-#ifdef __cplusplus
-extern "C" {
-#endif
+LLVM_CLANG_C_EXTERN_C_BEGIN
/** \defgroup CINDEX libclang: C Interface to Clang
*
@@ -383,7 +377,7 @@
* \param outID stores the returned CXFileUniqueID.
* \returns If there was a failure getting the unique ID, returns non-zero,
* otherwise returns 0.
-*/
+ */
CINDEX_LINKAGE int clang_getFileUniqueID(CXFile file, CXFileUniqueID *outID);
/**
@@ -391,8 +385,8 @@
* multiple inclusions, either with the conventional
* \#ifndef/\#define/\#endif macro guards or with \#pragma once.
*/
-CINDEX_LINKAGE unsigned
-clang_isFileMultipleIncludeGuarded(CXTranslationUnit tu, CXFile file);
+CINDEX_LINKAGE unsigned clang_isFileMultipleIncludeGuarded(CXTranslationUnit tu,
+ CXFile file);
/**
* Retrieve a file handle within the given translation unit.
@@ -497,8 +491,7 @@
* in a particular translation unit.
*/
CINDEX_LINKAGE CXSourceLocation clang_getLocation(CXTranslationUnit tu,
- CXFile file,
- unsigned line,
+ CXFile file, unsigned line,
unsigned column);
/**
* Retrieves the source location associated with a given character offset
@@ -567,8 +560,7 @@
* buffer to which the given source location points.
*/
CINDEX_LINKAGE void clang_getExpansionLocation(CXSourceLocation location,
- CXFile *file,
- unsigned *line,
+ CXFile *file, unsigned *line,
unsigned *column,
unsigned *offset);
@@ -614,8 +606,7 @@
*/
CINDEX_LINKAGE void clang_getPresumedLocation(CXSourceLocation location,
CXString *filename,
- unsigned *line,
- unsigned *column);
+ unsigned *line, unsigned *column);
/**
* Legacy API to retrieve the file, line, column, and offset represented
@@ -626,8 +617,7 @@
* details.
*/
CINDEX_LINKAGE void clang_getInstantiationLocation(CXSourceLocation location,
- CXFile *file,
- unsigned *line,
+ CXFile *file, unsigned *line,
unsigned *column,
unsigned *offset);
@@ -654,8 +644,7 @@
* buffer to which the given source location points.
*/
CINDEX_LINKAGE void clang_getSpellingLocation(CXSourceLocation location,
- CXFile *file,
- unsigned *line,
+ CXFile *file, unsigned *line,
unsigned *column,
unsigned *offset);
@@ -683,10 +672,8 @@
* buffer to which the given source location points.
*/
CINDEX_LINKAGE void clang_getFileLocation(CXSourceLocation location,
- CXFile *file,
- unsigned *line,
- unsigned *column,
- unsigned *offset);
+ CXFile *file, unsigned *line,
+ unsigned *column, unsigned *offset);
/**
* Retrieve a source location representing the first character within a
@@ -728,7 +715,8 @@
* The preprocessor will skip lines when they are surrounded by an
* if/ifdef/ifndef directive whose condition does not evaluate to true.
*/
-CINDEX_LINKAGE CXSourceRangeList *clang_getAllSkippedRanges(CXTranslationUnit tu);
+CINDEX_LINKAGE CXSourceRangeList *
+clang_getAllSkippedRanges(CXTranslationUnit tu);
/**
* Destroy the given \c CXSourceRangeList.
@@ -759,7 +747,7 @@
* This diagnostic is a note that should be attached to the
* previous (non-note) diagnostic.
*/
- CXDiagnostic_Note = 1,
+ CXDiagnostic_Note = 1,
/**
* This diagnostic indicates suspicious code that may not be
@@ -770,14 +758,14 @@
/**
* This diagnostic indicates that the code is ill-formed.
*/
- CXDiagnostic_Error = 3,
+ CXDiagnostic_Error = 3,
/**
* This diagnostic indicates that the code is ill-formed such
* that future parser recovery is unlikely to produce useful
* results.
*/
- CXDiagnostic_Fatal = 4
+ CXDiagnostic_Fatal = 4
};
/**
@@ -850,9 +838,8 @@
* \returns A loaded CXDiagnosticSet if successful, and NULL otherwise. These
* diagnostics should be released using clang_disposeDiagnosticSet().
*/
-CINDEX_LINKAGE CXDiagnosticSet clang_loadDiagnostics(const char *file,
- enum CXLoadDiag_Error *error,
- CXString *errorString);
+CINDEX_LINKAGE CXDiagnosticSet clang_loadDiagnostics(
+ const char *file, enum CXLoadDiag_Error *error, CXString *errorString);
/**
* Release a CXDiagnosticSet and all of its contained diagnostics.
@@ -892,7 +879,7 @@
* \param Unit the translation unit to query.
*/
CINDEX_LINKAGE CXDiagnosticSet
- clang_getDiagnosticSetFromTU(CXTranslationUnit Unit);
+clang_getDiagnosticSetFromTU(CXTranslationUnit Unit);
/**
* Destroy a diagnostic.
@@ -998,7 +985,7 @@
* Determine the severity of the given diagnostic.
*/
CINDEX_LINKAGE enum CXDiagnosticSeverity
-clang_getDiagnosticSeverity(CXDiagnostic);
+ clang_getDiagnosticSeverity(CXDiagnostic);
/**
* Retrieve the source location of the given diagnostic.
@@ -1050,8 +1037,8 @@
*
* \returns The name of the given diagnostic category.
*/
-CINDEX_DEPRECATED CINDEX_LINKAGE
-CXString clang_getDiagnosticCategoryName(unsigned Category);
+CINDEX_DEPRECATED CINDEX_LINKAGE CXString
+clang_getDiagnosticCategoryName(unsigned Category);
/**
* Retrieve the diagnostic category text for a given diagnostic.
@@ -1113,9 +1100,8 @@
* \returns A string containing text that should be replace the source
* code indicated by the \c ReplacementRange.
*/
-CINDEX_LINKAGE CXString clang_getDiagnosticFixIt(CXDiagnostic Diagnostic,
- unsigned FixIt,
- CXSourceRange *ReplacementRange);
+CINDEX_LINKAGE CXString clang_getDiagnosticFixIt(
+ CXDiagnostic Diagnostic, unsigned FixIt, CXSourceRange *ReplacementRange);
/**
* @}
@@ -1178,12 +1164,9 @@
* guarantee their validity until the call to this function returns.
*/
CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnitFromSourceFile(
- CXIndex CIdx,
- const char *source_filename,
- int num_clang_command_line_args,
- const char * const *clang_command_line_args,
- unsigned num_unsaved_files,
- struct CXUnsavedFile *unsaved_files);
+ CXIndex CIdx, const char *source_filename, int num_clang_command_line_args,
+ const char *const *clang_command_line_args, unsigned num_unsaved_files,
+ struct CXUnsavedFile *unsaved_files);
/**
* Same as \c clang_createTranslationUnit2, but returns
@@ -1191,9 +1174,8 @@
* routine returns a \c NULL \c CXTranslationUnit, without further detailed
* error codes.
*/
-CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnit(
- CXIndex CIdx,
- const char *ast_filename);
+CINDEX_LINKAGE CXTranslationUnit
+clang_createTranslationUnit(CXIndex CIdx, const char *ast_filename);
/**
* Create a translation unit from an AST file (\c -emit-ast).
@@ -1203,10 +1185,9 @@
*
* \returns Zero on success, otherwise returns an error code.
*/
-CINDEX_LINKAGE enum CXErrorCode clang_createTranslationUnit2(
- CXIndex CIdx,
- const char *ast_filename,
- CXTranslationUnit *out_TU);
+CINDEX_LINKAGE enum CXErrorCode
+clang_createTranslationUnit2(CXIndex CIdx, const char *ast_filename,
+ CXTranslationUnit *out_TU);
/**
* Flags that control the creation of translation units.
@@ -1356,7 +1337,12 @@
* the case where these warnings are not of interest, as for an IDE for
* example, which typically shows only the diagnostics in the main file.
*/
- CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 0x4000
+ CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 0x4000,
+
+ /**
+ * Tells the preprocessor not to skip excluded conditional blocks.
+ */
+ CXTranslationUnit_RetainExcludedConditionalBlocks = 0x8000
};
/**
@@ -1379,14 +1365,11 @@
* routine returns a \c NULL \c CXTranslationUnit, without further detailed
* error codes.
*/
-CINDEX_LINKAGE CXTranslationUnit
-clang_parseTranslationUnit(CXIndex CIdx,
- const char *source_filename,
- const char *const *command_line_args,
- int num_command_line_args,
- struct CXUnsavedFile *unsaved_files,
- unsigned num_unsaved_files,
- unsigned options);
+CINDEX_LINKAGE CXTranslationUnit clang_parseTranslationUnit(
+ CXIndex CIdx, const char *source_filename,
+ const char *const *command_line_args, int num_command_line_args,
+ struct CXUnsavedFile *unsaved_files, unsigned num_unsaved_files,
+ unsigned options);
/**
* Parse the given source file and the translation unit corresponding
@@ -1432,15 +1415,11 @@
*
* \returns Zero on success, otherwise returns an error code.
*/
-CINDEX_LINKAGE enum CXErrorCode
-clang_parseTranslationUnit2(CXIndex CIdx,
- const char *source_filename,
- const char *const *command_line_args,
- int num_command_line_args,
- struct CXUnsavedFile *unsaved_files,
- unsigned num_unsaved_files,
- unsigned options,
- CXTranslationUnit *out_TU);
+CINDEX_LINKAGE enum CXErrorCode clang_parseTranslationUnit2(
+ CXIndex CIdx, const char *source_filename,
+ const char *const *command_line_args, int num_command_line_args,
+ struct CXUnsavedFile *unsaved_files, unsigned num_unsaved_files,
+ unsigned options, CXTranslationUnit *out_TU);
/**
* Same as clang_parseTranslationUnit2 but requires a full command line
@@ -1619,14 +1598,14 @@
* \c clang_disposeTranslationUnit(TU). The error codes returned by this
* routine are described by the \c CXErrorCode enum.
*/
-CINDEX_LINKAGE int clang_reparseTranslationUnit(CXTranslationUnit TU,
- unsigned num_unsaved_files,
- struct CXUnsavedFile *unsaved_files,
- unsigned options);
+CINDEX_LINKAGE int
+clang_reparseTranslationUnit(CXTranslationUnit TU, unsigned num_unsaved_files,
+ struct CXUnsavedFile *unsaved_files,
+ unsigned options);
/**
- * Categorizes how memory is being used by a translation unit.
- */
+ * Categorizes how memory is being used by a translation unit.
+ */
enum CXTUResourceUsageKind {
CXTUResourceUsage_AST = 1,
CXTUResourceUsage_Identifiers = 2,
@@ -1644,16 +1623,16 @@
CXTUResourceUsage_Preprocessor_HeaderSearch = 14,
CXTUResourceUsage_MEMORY_IN_BYTES_BEGIN = CXTUResourceUsage_AST,
CXTUResourceUsage_MEMORY_IN_BYTES_END =
- CXTUResourceUsage_Preprocessor_HeaderSearch,
+ CXTUResourceUsage_Preprocessor_HeaderSearch,
CXTUResourceUsage_First = CXTUResourceUsage_AST,
CXTUResourceUsage_Last = CXTUResourceUsage_Preprocessor_HeaderSearch
};
/**
- * Returns the human-readable null-terminated C string that represents
- * the name of the memory category. This string should never be freed.
- */
+ * Returns the human-readable null-terminated C string that represents
+ * the name of the memory category. This string should never be freed.
+ */
CINDEX_LINKAGE
const char *clang_getTUResourceUsageName(enum CXTUResourceUsageKind kind);
@@ -1666,8 +1645,8 @@
} CXTUResourceUsageEntry;
/**
- * The memory usage of a CXTranslationUnit, broken into categories.
- */
+ * The memory usage of a CXTranslationUnit, broken into categories.
+ */
typedef struct CXTUResourceUsage {
/* Private data member, used for queries. */
void *data;
@@ -1682,10 +1661,11 @@
} CXTUResourceUsage;
/**
- * Return the memory usage of a translation unit. This object
- * should be released with clang_disposeCXTUResourceUsage().
- */
-CINDEX_LINKAGE CXTUResourceUsage clang_getCXTUResourceUsage(CXTranslationUnit TU);
+ * Return the memory usage of a translation unit. This object
+ * should be released with clang_disposeCXTUResourceUsage().
+ */
+CINDEX_LINKAGE CXTUResourceUsage
+clang_getCXTUResourceUsage(CXTranslationUnit TU);
CINDEX_LINKAGE void clang_disposeCXTUResourceUsage(CXTUResourceUsage usage);
@@ -1700,24 +1680,21 @@
/**
* Destroy the CXTargetInfo object.
*/
-CINDEX_LINKAGE void
-clang_TargetInfo_dispose(CXTargetInfo Info);
+CINDEX_LINKAGE void clang_TargetInfo_dispose(CXTargetInfo Info);
/**
* Get the normalized target triple as a string.
*
* Returns the empty string in case of any error.
*/
-CINDEX_LINKAGE CXString
-clang_TargetInfo_getTriple(CXTargetInfo Info);
+CINDEX_LINKAGE CXString clang_TargetInfo_getTriple(CXTargetInfo Info);
/**
* Get the pointer width of the target in bits.
*
* Returns -1 in case of error.
*/
-CINDEX_LINKAGE int
-clang_TargetInfo_getPointerWidth(CXTargetInfo Info);
+CINDEX_LINKAGE int clang_TargetInfo_getPointerWidth(CXTargetInfo Info);
/**
* @}
@@ -1737,95 +1714,95 @@
* spelling, find their definitions, etc. However, the specific kind
* of the declaration is not reported.
*/
- CXCursor_UnexposedDecl = 1,
+ CXCursor_UnexposedDecl = 1,
/** A C or C++ struct. */
- CXCursor_StructDecl = 2,
+ CXCursor_StructDecl = 2,
/** A C or C++ union. */
- CXCursor_UnionDecl = 3,
+ CXCursor_UnionDecl = 3,
/** A C++ class. */
- CXCursor_ClassDecl = 4,
+ CXCursor_ClassDecl = 4,
/** An enumeration. */
- CXCursor_EnumDecl = 5,
+ CXCursor_EnumDecl = 5,
/**
* A field (in C) or non-static data member (in C++) in a
* struct, union, or C++ class.
*/
- CXCursor_FieldDecl = 6,
+ CXCursor_FieldDecl = 6,
/** An enumerator constant. */
- CXCursor_EnumConstantDecl = 7,
+ CXCursor_EnumConstantDecl = 7,
/** A function. */
- CXCursor_FunctionDecl = 8,
+ CXCursor_FunctionDecl = 8,
/** A variable. */
- CXCursor_VarDecl = 9,
+ CXCursor_VarDecl = 9,
/** A function or method parameter. */
- CXCursor_ParmDecl = 10,
+ CXCursor_ParmDecl = 10,
/** An Objective-C \@interface. */
- CXCursor_ObjCInterfaceDecl = 11,
+ CXCursor_ObjCInterfaceDecl = 11,
/** An Objective-C \@interface for a category. */
- CXCursor_ObjCCategoryDecl = 12,
+ CXCursor_ObjCCategoryDecl = 12,
/** An Objective-C \@protocol declaration. */
- CXCursor_ObjCProtocolDecl = 13,
+ CXCursor_ObjCProtocolDecl = 13,
/** An Objective-C \@property declaration. */
- CXCursor_ObjCPropertyDecl = 14,
+ CXCursor_ObjCPropertyDecl = 14,
/** An Objective-C instance variable. */
- CXCursor_ObjCIvarDecl = 15,
+ CXCursor_ObjCIvarDecl = 15,
/** An Objective-C instance method. */
- CXCursor_ObjCInstanceMethodDecl = 16,
+ CXCursor_ObjCInstanceMethodDecl = 16,
/** An Objective-C class method. */
- CXCursor_ObjCClassMethodDecl = 17,
+ CXCursor_ObjCClassMethodDecl = 17,
/** An Objective-C \@implementation. */
- CXCursor_ObjCImplementationDecl = 18,
+ CXCursor_ObjCImplementationDecl = 18,
/** An Objective-C \@implementation for a category. */
- CXCursor_ObjCCategoryImplDecl = 19,
+ CXCursor_ObjCCategoryImplDecl = 19,
/** A typedef. */
- CXCursor_TypedefDecl = 20,
+ CXCursor_TypedefDecl = 20,
/** A C++ class method. */
- CXCursor_CXXMethod = 21,
+ CXCursor_CXXMethod = 21,
/** A C++ namespace. */
- CXCursor_Namespace = 22,
+ CXCursor_Namespace = 22,
/** A linkage specification, e.g. 'extern "C"'. */
- CXCursor_LinkageSpec = 23,
+ CXCursor_LinkageSpec = 23,
/** A C++ constructor. */
- CXCursor_Constructor = 24,
+ CXCursor_Constructor = 24,
/** A C++ destructor. */
- CXCursor_Destructor = 25,
+ CXCursor_Destructor = 25,
/** A C++ conversion function. */
- CXCursor_ConversionFunction = 26,
+ CXCursor_ConversionFunction = 26,
/** A C++ template type parameter. */
- CXCursor_TemplateTypeParameter = 27,
+ CXCursor_TemplateTypeParameter = 27,
/** A C++ non-type template parameter. */
- CXCursor_NonTypeTemplateParameter = 28,
+ CXCursor_NonTypeTemplateParameter = 28,
/** A C++ template template parameter. */
- CXCursor_TemplateTemplateParameter = 29,
+ CXCursor_TemplateTemplateParameter = 29,
/** A C++ function template. */
- CXCursor_FunctionTemplate = 30,
+ CXCursor_FunctionTemplate = 30,
/** A C++ class template. */
- CXCursor_ClassTemplate = 31,
+ CXCursor_ClassTemplate = 31,
/** A C++ class template partial specialization. */
CXCursor_ClassTemplatePartialSpecialization = 32,
/** A C++ namespace alias declaration. */
- CXCursor_NamespaceAlias = 33,
+ CXCursor_NamespaceAlias = 33,
/** A C++ using directive. */
- CXCursor_UsingDirective = 34,
+ CXCursor_UsingDirective = 34,
/** A C++ using declaration. */
- CXCursor_UsingDeclaration = 35,
+ CXCursor_UsingDeclaration = 35,
/** A C++ alias declaration */
- CXCursor_TypeAliasDecl = 36,
+ CXCursor_TypeAliasDecl = 36,
/** An Objective-C \@synthesize definition. */
- CXCursor_ObjCSynthesizeDecl = 37,
+ CXCursor_ObjCSynthesizeDecl = 37,
/** An Objective-C \@dynamic definition. */
- CXCursor_ObjCDynamicDecl = 38,
+ CXCursor_ObjCDynamicDecl = 38,
/** An access specifier. */
- CXCursor_CXXAccessSpecifier = 39,
+ CXCursor_CXXAccessSpecifier = 39,
- CXCursor_FirstDecl = CXCursor_UnexposedDecl,
- CXCursor_LastDecl = CXCursor_CXXAccessSpecifier,
+ CXCursor_FirstDecl = CXCursor_UnexposedDecl,
+ CXCursor_LastDecl = CXCursor_CXXAccessSpecifier,
/* References */
- CXCursor_FirstRef = 40, /* Decl references */
- CXCursor_ObjCSuperClassRef = 40,
- CXCursor_ObjCProtocolRef = 41,
- CXCursor_ObjCClassRef = 42,
+ CXCursor_FirstRef = 40, /* Decl references */
+ CXCursor_ObjCSuperClassRef = 40,
+ CXCursor_ObjCProtocolRef = 41,
+ CXCursor_ObjCClassRef = 42,
/**
* A reference to a type declaration.
*
@@ -1841,22 +1818,22 @@
* while the type of the variable "size" is referenced. The cursor
* referenced by the type of size is the typedef for size_type.
*/
- CXCursor_TypeRef = 43,
- CXCursor_CXXBaseSpecifier = 44,
+ CXCursor_TypeRef = 43,
+ CXCursor_CXXBaseSpecifier = 44,
/**
* A reference to a class template, function template, template
* template parameter, or class template partial specialization.
*/
- CXCursor_TemplateRef = 45,
+ CXCursor_TemplateRef = 45,
/**
* A reference to a namespace or namespace alias.
*/
- CXCursor_NamespaceRef = 46,
+ CXCursor_NamespaceRef = 46,
/**
* A reference to a member of a struct, union, or class that occurs in
* some non-expression context, e.g., a designated initializer.
*/
- CXCursor_MemberRef = 47,
+ CXCursor_MemberRef = 47,
/**
* A reference to a labeled statement.
*
@@ -1872,7 +1849,7 @@
*
* A label reference cursor refers to a label statement.
*/
- CXCursor_LabelRef = 48,
+ CXCursor_LabelRef = 48,
/**
* A reference to a set of overloaded functions or function templates
@@ -1910,26 +1887,26 @@
* \c clang_getOverloadedDecl() can be used to retrieve the definitions
* referenced by this cursor.
*/
- CXCursor_OverloadedDeclRef = 49,
+ CXCursor_OverloadedDeclRef = 49,
/**
* A reference to a variable that occurs in some non-expression
* context, e.g., a C++ lambda capture list.
*/
- CXCursor_VariableRef = 50,
+ CXCursor_VariableRef = 50,
- CXCursor_LastRef = CXCursor_VariableRef,
+ CXCursor_LastRef = CXCursor_VariableRef,
/* Error conditions */
- CXCursor_FirstInvalid = 70,
- CXCursor_InvalidFile = 70,
- CXCursor_NoDeclFound = 71,
- CXCursor_NotImplemented = 72,
- CXCursor_InvalidCode = 73,
- CXCursor_LastInvalid = CXCursor_InvalidCode,
+ CXCursor_FirstInvalid = 70,
+ CXCursor_InvalidFile = 70,
+ CXCursor_NoDeclFound = 71,
+ CXCursor_NotImplemented = 72,
+ CXCursor_InvalidCode = 73,
+ CXCursor_LastInvalid = CXCursor_InvalidCode,
/* Expressions */
- CXCursor_FirstExpr = 100,
+ CXCursor_FirstExpr = 100,
/**
* An expression whose specific kind is not exposed via this
@@ -1940,104 +1917,104 @@
* spelling, children, etc. However, the specific kind of the
* expression is not reported.
*/
- CXCursor_UnexposedExpr = 100,
+ CXCursor_UnexposedExpr = 100,
/**
* An expression that refers to some value declaration, such
* as a function, variable, or enumerator.
*/
- CXCursor_DeclRefExpr = 101,
+ CXCursor_DeclRefExpr = 101,
/**
* An expression that refers to a member of a struct, union,
* class, Objective-C class, etc.
*/
- CXCursor_MemberRefExpr = 102,
+ CXCursor_MemberRefExpr = 102,
/** An expression that calls a function. */
- CXCursor_CallExpr = 103,
+ CXCursor_CallExpr = 103,
/** An expression that sends a message to an Objective-C
object or class. */
- CXCursor_ObjCMessageExpr = 104,
+ CXCursor_ObjCMessageExpr = 104,
/** An expression that represents a block literal. */
- CXCursor_BlockExpr = 105,
+ CXCursor_BlockExpr = 105,
/** An integer literal.
*/
- CXCursor_IntegerLiteral = 106,
+ CXCursor_IntegerLiteral = 106,
/** A floating point number literal.
*/
- CXCursor_FloatingLiteral = 107,
+ CXCursor_FloatingLiteral = 107,
/** An imaginary number literal.
*/
- CXCursor_ImaginaryLiteral = 108,
+ CXCursor_ImaginaryLiteral = 108,
/** A string literal.
*/
- CXCursor_StringLiteral = 109,
+ CXCursor_StringLiteral = 109,
/** A character literal.
*/
- CXCursor_CharacterLiteral = 110,
+ CXCursor_CharacterLiteral = 110,
/** A parenthesized expression, e.g. "(1)".
*
* This AST node is only formed if full location information is requested.
*/
- CXCursor_ParenExpr = 111,
+ CXCursor_ParenExpr = 111,
/** This represents the unary-expression's (except sizeof and
* alignof).
*/
- CXCursor_UnaryOperator = 112,
+ CXCursor_UnaryOperator = 112,
/** [C99 6.5.2.1] Array Subscripting.
*/
- CXCursor_ArraySubscriptExpr = 113,
+ CXCursor_ArraySubscriptExpr = 113,
/** A builtin binary operation expression such as "x + y" or
* "x <= y".
*/
- CXCursor_BinaryOperator = 114,
+ CXCursor_BinaryOperator = 114,
/** Compound assignment such as "+=".
*/
- CXCursor_CompoundAssignOperator = 115,
+ CXCursor_CompoundAssignOperator = 115,
/** The ?: ternary operator.
*/
- CXCursor_ConditionalOperator = 116,
+ CXCursor_ConditionalOperator = 116,
/** An explicit cast in C (C99 6.5.4) or a C-style cast in C++
* (C++ [expr.cast]), which uses the syntax (Type)expr.
*
* For example: (int)f.
*/
- CXCursor_CStyleCastExpr = 117,
+ CXCursor_CStyleCastExpr = 117,
/** [C99 6.5.2.5]
*/
- CXCursor_CompoundLiteralExpr = 118,
+ CXCursor_CompoundLiteralExpr = 118,
/** Describes an C or C++ initializer list.
*/
- CXCursor_InitListExpr = 119,
+ CXCursor_InitListExpr = 119,
/** The GNU address of label extension, representing &&label.
*/
- CXCursor_AddrLabelExpr = 120,
+ CXCursor_AddrLabelExpr = 120,
/** This is the GNU Statement Expression extension: ({int X=4; X;})
*/
- CXCursor_StmtExpr = 121,
+ CXCursor_StmtExpr = 121,
/** Represents a C11 generic selection.
*/
- CXCursor_GenericSelectionExpr = 122,
+ CXCursor_GenericSelectionExpr = 122,
/** Implements the GNU __null extension, which is a name for a null
* pointer constant that has integral type (e.g., int or long) and is the same
@@ -2047,23 +2024,23 @@
* NULL as __null in C++ rather than using 0 (which is an integer that may not
* match the size of a pointer).
*/
- CXCursor_GNUNullExpr = 123,
+ CXCursor_GNUNullExpr = 123,
/** C++'s static_cast<> expression.
*/
- CXCursor_CXXStaticCastExpr = 124,
+ CXCursor_CXXStaticCastExpr = 124,
/** C++'s dynamic_cast<> expression.
*/
- CXCursor_CXXDynamicCastExpr = 125,
+ CXCursor_CXXDynamicCastExpr = 125,
/** C++'s reinterpret_cast<> expression.
*/
- CXCursor_CXXReinterpretCastExpr = 126,
+ CXCursor_CXXReinterpretCastExpr = 126,
/** C++'s const_cast<> expression.
*/
- CXCursor_CXXConstCastExpr = 127,
+ CXCursor_CXXConstCastExpr = 127,
/** Represents an explicit C++ type conversion that uses "functional"
* notion (C++ [expr.type.conv]).
@@ -2073,60 +2050,60 @@
* x = int(0.5);
* \endcode
*/
- CXCursor_CXXFunctionalCastExpr = 128,
+ CXCursor_CXXFunctionalCastExpr = 128,
/** A C++ typeid expression (C++ [expr.typeid]).
*/
- CXCursor_CXXTypeidExpr = 129,
+ CXCursor_CXXTypeidExpr = 129,
/** [C++ 2.13.5] C++ Boolean Literal.
*/
- CXCursor_CXXBoolLiteralExpr = 130,
+ CXCursor_CXXBoolLiteralExpr = 130,
/** [C++0x 2.14.7] C++ Pointer Literal.
*/
- CXCursor_CXXNullPtrLiteralExpr = 131,
+ CXCursor_CXXNullPtrLiteralExpr = 131,
/** Represents the "this" expression in C++
*/
- CXCursor_CXXThisExpr = 132,
+ CXCursor_CXXThisExpr = 132,
/** [C++ 15] C++ Throw Expression.
*
* This handles 'throw' and 'throw' assignment-expression. When
* assignment-expression isn't present, Op will be null.
*/
- CXCursor_CXXThrowExpr = 133,
+ CXCursor_CXXThrowExpr = 133,
/** A new expression for memory allocation and constructor calls, e.g:
* "new CXXNewExpr(foo)".
*/
- CXCursor_CXXNewExpr = 134,
+ CXCursor_CXXNewExpr = 134,
/** A delete expression for memory deallocation and destructor calls,
* e.g. "delete[] pArray".
*/
- CXCursor_CXXDeleteExpr = 135,
+ CXCursor_CXXDeleteExpr = 135,
/** A unary expression. (noexcept, sizeof, or other traits)
*/
- CXCursor_UnaryExpr = 136,
+ CXCursor_UnaryExpr = 136,
/** An Objective-C string literal i.e. @"foo".
*/
- CXCursor_ObjCStringLiteral = 137,
+ CXCursor_ObjCStringLiteral = 137,
/** An Objective-C \@encode expression.
*/
- CXCursor_ObjCEncodeExpr = 138,
+ CXCursor_ObjCEncodeExpr = 138,
/** An Objective-C \@selector expression.
*/
- CXCursor_ObjCSelectorExpr = 139,
+ CXCursor_ObjCSelectorExpr = 139,
/** An Objective-C \@protocol expression.
*/
- CXCursor_ObjCProtocolExpr = 140,
+ CXCursor_ObjCProtocolExpr = 140,
/** An Objective-C "bridged" cast expression, which casts between
* Objective-C pointers and C pointers, transferring ownership in the process.
@@ -2135,7 +2112,7 @@
* NSString *str = (__bridge_transfer NSString *)CFCreateString();
* \endcode
*/
- CXCursor_ObjCBridgedCastExpr = 141,
+ CXCursor_ObjCBridgedCastExpr = 141,
/** Represents a C++0x pack expansion that produces a sequence of
* expressions.
@@ -2150,7 +2127,7 @@
* }
* \endcode
*/
- CXCursor_PackExpansionExpr = 142,
+ CXCursor_PackExpansionExpr = 142,
/** Represents an expression that computes the length of a parameter
* pack.
@@ -2162,7 +2139,7 @@
* };
* \endcode
*/
- CXCursor_SizeOfPackExpr = 143,
+ CXCursor_SizeOfPackExpr = 143,
/* Represents a C++ lambda expression that produces a local function
* object.
@@ -2176,33 +2153,46 @@
* }
* \endcode
*/
- CXCursor_LambdaExpr = 144,
+ CXCursor_LambdaExpr = 144,
/** Objective-c Boolean Literal.
*/
- CXCursor_ObjCBoolLiteralExpr = 145,
+ CXCursor_ObjCBoolLiteralExpr = 145,
/** Represents the "self" expression in an Objective-C method.
*/
- CXCursor_ObjCSelfExpr = 146,
+ CXCursor_ObjCSelfExpr = 146,
- /** OpenMP 4.0 [2.4, Array Section].
+ /** OpenMP 5.0 [2.1.5, Array Section].
*/
- CXCursor_OMPArraySectionExpr = 147,
+ CXCursor_OMPArraySectionExpr = 147,
/** Represents an @available(...) check.
*/
- CXCursor_ObjCAvailabilityCheckExpr = 148,
+ CXCursor_ObjCAvailabilityCheckExpr = 148,
/**
* Fixed point literal
*/
- CXCursor_FixedPointLiteral = 149,
+ CXCursor_FixedPointLiteral = 149,
- CXCursor_LastExpr = CXCursor_FixedPointLiteral,
+ /** OpenMP 5.0 [2.1.4, Array Shaping].
+ */
+ CXCursor_OMPArrayShapingExpr = 150,
+
+ /**
+ * OpenMP 5.0 [2.1.6 Iterators]
+ */
+ CXCursor_OMPIteratorExpr = 151,
+
+ /** OpenCL's addrspace_cast<> expression.
+ */
+ CXCursor_CXXAddrspaceCastExpr = 152,
+
+ CXCursor_LastExpr = CXCursor_CXXAddrspaceCastExpr,
/* Statements */
- CXCursor_FirstStmt = 200,
+ CXCursor_FirstStmt = 200,
/**
* A statement whose specific kind is not exposed via this
* interface.
@@ -2212,7 +2202,7 @@
* children, etc. However, the specific kind of the statement is not
* reported.
*/
- CXCursor_UnexposedStmt = 200,
+ CXCursor_UnexposedStmt = 200,
/** A labelled statement in a function.
*
@@ -2225,226 +2215,226 @@
* \endcode
*
*/
- CXCursor_LabelStmt = 201,
+ CXCursor_LabelStmt = 201,
/** A group of statements like { stmt stmt }.
*
* This cursor kind is used to describe compound statements, e.g. function
* bodies.
*/
- CXCursor_CompoundStmt = 202,
+ CXCursor_CompoundStmt = 202,
/** A case statement.
*/
- CXCursor_CaseStmt = 203,
+ CXCursor_CaseStmt = 203,
/** A default statement.
*/
- CXCursor_DefaultStmt = 204,
+ CXCursor_DefaultStmt = 204,
/** An if statement
*/
- CXCursor_IfStmt = 205,
+ CXCursor_IfStmt = 205,
/** A switch statement.
*/
- CXCursor_SwitchStmt = 206,
+ CXCursor_SwitchStmt = 206,
/** A while statement.
*/
- CXCursor_WhileStmt = 207,
+ CXCursor_WhileStmt = 207,
/** A do statement.
*/
- CXCursor_DoStmt = 208,
+ CXCursor_DoStmt = 208,
/** A for statement.
*/
- CXCursor_ForStmt = 209,
+ CXCursor_ForStmt = 209,
/** A goto statement.
*/
- CXCursor_GotoStmt = 210,
+ CXCursor_GotoStmt = 210,
/** An indirect goto statement.
*/
- CXCursor_IndirectGotoStmt = 211,
+ CXCursor_IndirectGotoStmt = 211,
/** A continue statement.
*/
- CXCursor_ContinueStmt = 212,
+ CXCursor_ContinueStmt = 212,
/** A break statement.
*/
- CXCursor_BreakStmt = 213,
+ CXCursor_BreakStmt = 213,
/** A return statement.
*/
- CXCursor_ReturnStmt = 214,
+ CXCursor_ReturnStmt = 214,
/** A GCC inline assembly statement extension.
*/
- CXCursor_GCCAsmStmt = 215,
- CXCursor_AsmStmt = CXCursor_GCCAsmStmt,
+ CXCursor_GCCAsmStmt = 215,
+ CXCursor_AsmStmt = CXCursor_GCCAsmStmt,
/** Objective-C's overall \@try-\@catch-\@finally statement.
*/
- CXCursor_ObjCAtTryStmt = 216,
+ CXCursor_ObjCAtTryStmt = 216,
/** Objective-C's \@catch statement.
*/
- CXCursor_ObjCAtCatchStmt = 217,
+ CXCursor_ObjCAtCatchStmt = 217,
/** Objective-C's \@finally statement.
*/
- CXCursor_ObjCAtFinallyStmt = 218,
+ CXCursor_ObjCAtFinallyStmt = 218,
/** Objective-C's \@throw statement.
*/
- CXCursor_ObjCAtThrowStmt = 219,
+ CXCursor_ObjCAtThrowStmt = 219,
/** Objective-C's \@synchronized statement.
*/
- CXCursor_ObjCAtSynchronizedStmt = 220,
+ CXCursor_ObjCAtSynchronizedStmt = 220,
/** Objective-C's autorelease pool statement.
*/
- CXCursor_ObjCAutoreleasePoolStmt = 221,
+ CXCursor_ObjCAutoreleasePoolStmt = 221,
/** Objective-C's collection statement.
*/
- CXCursor_ObjCForCollectionStmt = 222,
+ CXCursor_ObjCForCollectionStmt = 222,
/** C++'s catch statement.
*/
- CXCursor_CXXCatchStmt = 223,
+ CXCursor_CXXCatchStmt = 223,
/** C++'s try statement.
*/
- CXCursor_CXXTryStmt = 224,
+ CXCursor_CXXTryStmt = 224,
/** C++'s for (* : *) statement.
*/
- CXCursor_CXXForRangeStmt = 225,
+ CXCursor_CXXForRangeStmt = 225,
/** Windows Structured Exception Handling's try statement.
*/
- CXCursor_SEHTryStmt = 226,
+ CXCursor_SEHTryStmt = 226,
/** Windows Structured Exception Handling's except statement.
*/
- CXCursor_SEHExceptStmt = 227,
+ CXCursor_SEHExceptStmt = 227,
/** Windows Structured Exception Handling's finally statement.
*/
- CXCursor_SEHFinallyStmt = 228,
+ CXCursor_SEHFinallyStmt = 228,
/** A MS inline assembly statement extension.
*/
- CXCursor_MSAsmStmt = 229,
+ CXCursor_MSAsmStmt = 229,
/** The null statement ";": C99 6.8.3p3.
*
* This cursor kind is used to describe the null statement.
*/
- CXCursor_NullStmt = 230,
+ CXCursor_NullStmt = 230,
/** Adaptor class for mixing declarations with statements and
* expressions.
*/
- CXCursor_DeclStmt = 231,
+ CXCursor_DeclStmt = 231,
/** OpenMP parallel directive.
*/
- CXCursor_OMPParallelDirective = 232,
+ CXCursor_OMPParallelDirective = 232,
/** OpenMP SIMD directive.
*/
- CXCursor_OMPSimdDirective = 233,
+ CXCursor_OMPSimdDirective = 233,
/** OpenMP for directive.
*/
- CXCursor_OMPForDirective = 234,
+ CXCursor_OMPForDirective = 234,
/** OpenMP sections directive.
*/
- CXCursor_OMPSectionsDirective = 235,
+ CXCursor_OMPSectionsDirective = 235,
/** OpenMP section directive.
*/
- CXCursor_OMPSectionDirective = 236,
+ CXCursor_OMPSectionDirective = 236,
/** OpenMP single directive.
*/
- CXCursor_OMPSingleDirective = 237,
+ CXCursor_OMPSingleDirective = 237,
/** OpenMP parallel for directive.
*/
- CXCursor_OMPParallelForDirective = 238,
+ CXCursor_OMPParallelForDirective = 238,
/** OpenMP parallel sections directive.
*/
- CXCursor_OMPParallelSectionsDirective = 239,
+ CXCursor_OMPParallelSectionsDirective = 239,
/** OpenMP task directive.
*/
- CXCursor_OMPTaskDirective = 240,
+ CXCursor_OMPTaskDirective = 240,
/** OpenMP master directive.
*/
- CXCursor_OMPMasterDirective = 241,
+ CXCursor_OMPMasterDirective = 241,
/** OpenMP critical directive.
*/
- CXCursor_OMPCriticalDirective = 242,
+ CXCursor_OMPCriticalDirective = 242,
/** OpenMP taskyield directive.
*/
- CXCursor_OMPTaskyieldDirective = 243,
+ CXCursor_OMPTaskyieldDirective = 243,
/** OpenMP barrier directive.
*/
- CXCursor_OMPBarrierDirective = 244,
+ CXCursor_OMPBarrierDirective = 244,
/** OpenMP taskwait directive.
*/
- CXCursor_OMPTaskwaitDirective = 245,
+ CXCursor_OMPTaskwaitDirective = 245,
/** OpenMP flush directive.
*/
- CXCursor_OMPFlushDirective = 246,
+ CXCursor_OMPFlushDirective = 246,
/** Windows Structured Exception Handling's leave statement.
*/
- CXCursor_SEHLeaveStmt = 247,
+ CXCursor_SEHLeaveStmt = 247,
/** OpenMP ordered directive.
*/
- CXCursor_OMPOrderedDirective = 248,
+ CXCursor_OMPOrderedDirective = 248,
/** OpenMP atomic directive.
*/
- CXCursor_OMPAtomicDirective = 249,
+ CXCursor_OMPAtomicDirective = 249,
/** OpenMP for SIMD directive.
*/
- CXCursor_OMPForSimdDirective = 250,
+ CXCursor_OMPForSimdDirective = 250,
/** OpenMP parallel for SIMD directive.
*/
- CXCursor_OMPParallelForSimdDirective = 251,
+ CXCursor_OMPParallelForSimdDirective = 251,
/** OpenMP target directive.
*/
- CXCursor_OMPTargetDirective = 252,
+ CXCursor_OMPTargetDirective = 252,
/** OpenMP teams directive.
*/
- CXCursor_OMPTeamsDirective = 253,
+ CXCursor_OMPTeamsDirective = 253,
/** OpenMP taskgroup directive.
*/
- CXCursor_OMPTaskgroupDirective = 254,
+ CXCursor_OMPTaskgroupDirective = 254,
/** OpenMP cancellation point directive.
*/
@@ -2452,35 +2442,35 @@
/** OpenMP cancel directive.
*/
- CXCursor_OMPCancelDirective = 256,
+ CXCursor_OMPCancelDirective = 256,
/** OpenMP target data directive.
*/
- CXCursor_OMPTargetDataDirective = 257,
+ CXCursor_OMPTargetDataDirective = 257,
/** OpenMP taskloop directive.
*/
- CXCursor_OMPTaskLoopDirective = 258,
+ CXCursor_OMPTaskLoopDirective = 258,
/** OpenMP taskloop simd directive.
*/
- CXCursor_OMPTaskLoopSimdDirective = 259,
+ CXCursor_OMPTaskLoopSimdDirective = 259,
/** OpenMP distribute directive.
*/
- CXCursor_OMPDistributeDirective = 260,
+ CXCursor_OMPDistributeDirective = 260,
/** OpenMP target enter data directive.
*/
- CXCursor_OMPTargetEnterDataDirective = 261,
+ CXCursor_OMPTargetEnterDataDirective = 261,
/** OpenMP target exit data directive.
*/
- CXCursor_OMPTargetExitDataDirective = 262,
+ CXCursor_OMPTargetExitDataDirective = 262,
/** OpenMP target parallel directive.
*/
- CXCursor_OMPTargetParallelDirective = 263,
+ CXCursor_OMPTargetParallelDirective = 263,
/** OpenMP target parallel for directive.
*/
@@ -2488,7 +2478,7 @@
/** OpenMP target update directive.
*/
- CXCursor_OMPTargetUpdateDirective = 265,
+ CXCursor_OMPTargetUpdateDirective = 265,
/** OpenMP distribute parallel for directive.
*/
@@ -2550,7 +2540,35 @@
*/
CXCursor_BuiltinBitCastExpr = 280,
- CXCursor_LastStmt = CXCursor_BuiltinBitCastExpr,
+ /** OpenMP master taskloop directive.
+ */
+ CXCursor_OMPMasterTaskLoopDirective = 281,
+
+ /** OpenMP parallel master taskloop directive.
+ */
+ CXCursor_OMPParallelMasterTaskLoopDirective = 282,
+
+ /** OpenMP master taskloop simd directive.
+ */
+ CXCursor_OMPMasterTaskLoopSimdDirective = 283,
+
+ /** OpenMP parallel master taskloop simd directive.
+ */
+ CXCursor_OMPParallelMasterTaskLoopSimdDirective = 284,
+
+ /** OpenMP parallel master directive.
+ */
+ CXCursor_OMPParallelMasterDirective = 285,
+
+ /** OpenMP depobj directive.
+ */
+ CXCursor_OMPDepobjDirective = 286,
+
+ /** OpenMP scan directive.
+ */
+ CXCursor_OMPScanDirective = 287,
+
+ CXCursor_LastStmt = CXCursor_OMPScanDirective,
/**
* Cursor that represents the translation unit itself.
@@ -2558,89 +2576,89 @@
* The translation unit cursor exists primarily to act as the root
* cursor for traversing the contents of a translation unit.
*/
- CXCursor_TranslationUnit = 300,
+ CXCursor_TranslationUnit = 300,
/* Attributes */
- CXCursor_FirstAttr = 400,
+ CXCursor_FirstAttr = 400,
/**
* An attribute whose specific kind is not exposed via this
* interface.
*/
- CXCursor_UnexposedAttr = 400,
+ CXCursor_UnexposedAttr = 400,
- CXCursor_IBActionAttr = 401,
- CXCursor_IBOutletAttr = 402,
- CXCursor_IBOutletCollectionAttr = 403,
- CXCursor_CXXFinalAttr = 404,
- CXCursor_CXXOverrideAttr = 405,
- CXCursor_AnnotateAttr = 406,
- CXCursor_AsmLabelAttr = 407,
- CXCursor_PackedAttr = 408,
- CXCursor_PureAttr = 409,
- CXCursor_ConstAttr = 410,
- CXCursor_NoDuplicateAttr = 411,
- CXCursor_CUDAConstantAttr = 412,
- CXCursor_CUDADeviceAttr = 413,
- CXCursor_CUDAGlobalAttr = 414,
- CXCursor_CUDAHostAttr = 415,
- CXCursor_CUDASharedAttr = 416,
- CXCursor_VisibilityAttr = 417,
- CXCursor_DLLExport = 418,
- CXCursor_DLLImport = 419,
- CXCursor_NSReturnsRetained = 420,
- CXCursor_NSReturnsNotRetained = 421,
- CXCursor_NSReturnsAutoreleased = 422,
- CXCursor_NSConsumesSelf = 423,
- CXCursor_NSConsumed = 424,
- CXCursor_ObjCException = 425,
- CXCursor_ObjCNSObject = 426,
- CXCursor_ObjCIndependentClass = 427,
- CXCursor_ObjCPreciseLifetime = 428,
- CXCursor_ObjCReturnsInnerPointer = 429,
- CXCursor_ObjCRequiresSuper = 430,
- CXCursor_ObjCRootClass = 431,
- CXCursor_ObjCSubclassingRestricted = 432,
- CXCursor_ObjCExplicitProtocolImpl = 433,
- CXCursor_ObjCDesignatedInitializer = 434,
- CXCursor_ObjCRuntimeVisible = 435,
- CXCursor_ObjCBoxable = 436,
- CXCursor_FlagEnum = 437,
- CXCursor_ConvergentAttr = 438,
- CXCursor_WarnUnusedAttr = 439,
- CXCursor_WarnUnusedResultAttr = 440,
- CXCursor_AlignedAttr = 441,
- CXCursor_LastAttr = CXCursor_AlignedAttr,
+ CXCursor_IBActionAttr = 401,
+ CXCursor_IBOutletAttr = 402,
+ CXCursor_IBOutletCollectionAttr = 403,
+ CXCursor_CXXFinalAttr = 404,
+ CXCursor_CXXOverrideAttr = 405,
+ CXCursor_AnnotateAttr = 406,
+ CXCursor_AsmLabelAttr = 407,
+ CXCursor_PackedAttr = 408,
+ CXCursor_PureAttr = 409,
+ CXCursor_ConstAttr = 410,
+ CXCursor_NoDuplicateAttr = 411,
+ CXCursor_CUDAConstantAttr = 412,
+ CXCursor_CUDADeviceAttr = 413,
+ CXCursor_CUDAGlobalAttr = 414,
+ CXCursor_CUDAHostAttr = 415,
+ CXCursor_CUDASharedAttr = 416,
+ CXCursor_VisibilityAttr = 417,
+ CXCursor_DLLExport = 418,
+ CXCursor_DLLImport = 419,
+ CXCursor_NSReturnsRetained = 420,
+ CXCursor_NSReturnsNotRetained = 421,
+ CXCursor_NSReturnsAutoreleased = 422,
+ CXCursor_NSConsumesSelf = 423,
+ CXCursor_NSConsumed = 424,
+ CXCursor_ObjCException = 425,
+ CXCursor_ObjCNSObject = 426,
+ CXCursor_ObjCIndependentClass = 427,
+ CXCursor_ObjCPreciseLifetime = 428,
+ CXCursor_ObjCReturnsInnerPointer = 429,
+ CXCursor_ObjCRequiresSuper = 430,
+ CXCursor_ObjCRootClass = 431,
+ CXCursor_ObjCSubclassingRestricted = 432,
+ CXCursor_ObjCExplicitProtocolImpl = 433,
+ CXCursor_ObjCDesignatedInitializer = 434,
+ CXCursor_ObjCRuntimeVisible = 435,
+ CXCursor_ObjCBoxable = 436,
+ CXCursor_FlagEnum = 437,
+ CXCursor_ConvergentAttr = 438,
+ CXCursor_WarnUnusedAttr = 439,
+ CXCursor_WarnUnusedResultAttr = 440,
+ CXCursor_AlignedAttr = 441,
+ CXCursor_LastAttr = CXCursor_AlignedAttr,
/* Preprocessing */
- CXCursor_PreprocessingDirective = 500,
- CXCursor_MacroDefinition = 501,
- CXCursor_MacroExpansion = 502,
- CXCursor_MacroInstantiation = CXCursor_MacroExpansion,
- CXCursor_InclusionDirective = 503,
- CXCursor_FirstPreprocessing = CXCursor_PreprocessingDirective,
- CXCursor_LastPreprocessing = CXCursor_InclusionDirective,
+ CXCursor_PreprocessingDirective = 500,
+ CXCursor_MacroDefinition = 501,
+ CXCursor_MacroExpansion = 502,
+ CXCursor_MacroInstantiation = CXCursor_MacroExpansion,
+ CXCursor_InclusionDirective = 503,
+ CXCursor_FirstPreprocessing = CXCursor_PreprocessingDirective,
+ CXCursor_LastPreprocessing = CXCursor_InclusionDirective,
/* Extra Declarations */
/**
* A module import declaration.
*/
- CXCursor_ModuleImportDecl = 600,
- CXCursor_TypeAliasTemplateDecl = 601,
+ CXCursor_ModuleImportDecl = 600,
+ CXCursor_TypeAliasTemplateDecl = 601,
/**
* A static_assert or _Static_assert node
*/
- CXCursor_StaticAssert = 602,
+ CXCursor_StaticAssert = 602,
/**
* a friend declaration.
*/
- CXCursor_FriendDecl = 603,
- CXCursor_FirstExtraDecl = CXCursor_ModuleImportDecl,
- CXCursor_LastExtraDecl = CXCursor_FriendDecl,
+ CXCursor_FriendDecl = 603,
+ CXCursor_FirstExtraDecl = CXCursor_ModuleImportDecl,
+ CXCursor_LastExtraDecl = CXCursor_FriendDecl,
/**
* A code completion overload candidate.
*/
- CXCursor_OverloadCandidate = 700
+ CXCursor_OverloadCandidate = 700
};
/**
@@ -2911,14 +2929,10 @@
* platform-availability structures returned. There are
* \c min(N, availability_size) such structures.
*/
-CINDEX_LINKAGE int
-clang_getCursorPlatformAvailability(CXCursor cursor,
- int *always_deprecated,
- CXString *deprecated_message,
- int *always_unavailable,
- CXString *unavailable_message,
- CXPlatformAvailability *availability,
- int availability_size);
+CINDEX_LINKAGE int clang_getCursorPlatformAvailability(
+ CXCursor cursor, int *always_deprecated, CXString *deprecated_message,
+ int *always_unavailable, CXString *unavailable_message,
+ CXPlatformAvailability *availability, int availability_size);
/**
* Free the memory associated with a \c CXPlatformAvailability structure.
@@ -2927,6 +2941,26 @@
clang_disposeCXPlatformAvailability(CXPlatformAvailability *availability);
/**
+ * If cursor refers to a variable declaration and it has initializer returns
+ * cursor referring to the initializer otherwise return null cursor.
+ */
+CINDEX_LINKAGE CXCursor clang_Cursor_getVarDeclInitializer(CXCursor cursor);
+
+/**
+ * If cursor refers to a variable declaration that has global storage returns 1.
+ * If cursor refers to a variable declaration that doesn't have global storage
+ * returns 0. Otherwise returns -1.
+ */
+CINDEX_LINKAGE int clang_Cursor_hasVarDeclGlobalStorage(CXCursor cursor);
+
+/**
+ * If cursor refers to a variable declaration that has external storage
+ * returns 1. If cursor refers to a variable declaration that doesn't have
+ * external storage returns 0. Otherwise returns -1.
+ */
+CINDEX_LINKAGE int clang_Cursor_hasVarDeclExternalStorage(CXCursor cursor);
+
+/**
* Describe the "language" of the entity referred to by a cursor.
*/
enum CXLanguageKind {
@@ -2945,11 +2979,7 @@
* Describe the "thread-local storage (TLS) kind" of the declaration
* referred to by a cursor.
*/
-enum CXTLSKind {
- CXTLS_None = 0,
- CXTLS_Dynamic,
- CXTLS_Static
-};
+enum CXTLSKind { CXTLS_None = 0, CXTLS_Dynamic, CXTLS_Static };
/**
* Determine the "thread-local storage (TLS) kind" of the declaration
@@ -2981,7 +3011,7 @@
* Queries a CXCursorSet to see if it contains a specific CXCursor.
*
* \returns non-zero if the set contains the specified cursor.
-*/
+ */
CINDEX_LINKAGE unsigned clang_CXCursorSet_contains(CXCursorSet cset,
CXCursor cursor);
@@ -2989,7 +3019,7 @@
* Inserts a CXCursor into a CXCursorSet.
*
* \returns zero if the CXCursor was already in the set, and non-zero otherwise.
-*/
+ */
CINDEX_LINKAGE unsigned clang_CXCursorSet_insert(CXCursorSet cset,
CXCursor cursor);
@@ -3243,8 +3273,9 @@
CXType_UShortAccum = 36,
CXType_UAccum = 37,
CXType_ULongAccum = 38,
+ CXType_BFloat16 = 39,
CXType_FirstBuiltin = CXType_Void,
- CXType_LastBuiltin = CXType_ULongAccum,
+ CXType_LastBuiltin = CXType_BFloat16,
CXType_Complex = 100,
CXType_Pointer = 101,
@@ -3336,7 +3367,8 @@
CXType_OCLIntelSubgroupAVCImeDualRefStreamin = 175,
- CXType_ExtVector = 176
+ CXType_ExtVector = 176,
+ CXType_Atomic = 177
};
/**
@@ -3409,9 +3441,9 @@
* Retrieve the integer value of an enum constant declaration as a signed
* long long.
*
- * If the cursor does not reference an enum constant declaration, LLONG_MIN is returned.
- * Since this is also potentially a valid constant value, the kind of the cursor
- * must be verified before calling this function.
+ * If the cursor does not reference an enum constant declaration, LLONG_MIN is
+ * returned. Since this is also potentially a valid constant value, the kind of
+ * the cursor must be verified before calling this function.
*/
CINDEX_LINKAGE long long clang_getEnumConstantDeclValue(CXCursor C);
@@ -3419,11 +3451,12 @@
* Retrieve the integer value of an enum constant declaration as an unsigned
* long long.
*
- * If the cursor does not reference an enum constant declaration, ULLONG_MAX is returned.
- * Since this is also potentially a valid constant value, the kind of the cursor
- * must be verified before calling this function.
+ * If the cursor does not reference an enum constant declaration, ULLONG_MAX is
+ * returned. Since this is also potentially a valid constant value, the kind of
+ * the cursor must be verified before calling this function.
*/
-CINDEX_LINKAGE unsigned long long clang_getEnumConstantDeclUnsignedValue(CXCursor C);
+CINDEX_LINKAGE unsigned long long
+clang_getEnumConstantDeclUnsignedValue(CXCursor C);
/**
* Retrieve the bit width of a bit field declaration as an integer.
@@ -3504,8 +3537,8 @@
* For I = 0, 1, and 2, Type, Integral, and Integral will be returned,
* respectively.
*/
-CINDEX_LINKAGE enum CXTemplateArgumentKind clang_Cursor_getTemplateArgumentKind(
- CXCursor C, unsigned I);
+CINDEX_LINKAGE enum CXTemplateArgumentKind
+clang_Cursor_getTemplateArgumentKind(CXCursor C, unsigned I);
/**
* Retrieve a CXType representing the type of a TemplateArgument of a
@@ -3565,8 +3598,8 @@
* If called with I = 1 or 2, 2147483649 or true will be returned, respectively.
* For I == 0, this function's behavior is undefined.
*/
-CINDEX_LINKAGE unsigned long long clang_Cursor_getTemplateArgumentUnsignedValue(
- CXCursor C, unsigned I);
+CINDEX_LINKAGE unsigned long long
+clang_Cursor_getTemplateArgumentUnsignedValue(CXCursor C, unsigned I);
/**
* Determine whether two CXTypes represent the same type.
@@ -3721,7 +3754,7 @@
CINDEX_LINKAGE CXCursor clang_Type_getObjCProtocolDecl(CXType T, unsigned i);
/**
- * Retreive the number of type arguments associated with an ObjC object.
+ * Retrieve the number of type arguments associated with an ObjC object.
*
* If the type is not an ObjC object, 0 is returned.
*/
@@ -3751,7 +3784,8 @@
* Retrieve the exception specification type associated with a given cursor.
* This is a value of type CXCursor_ExceptionSpecificationKind.
*
- * This only returns a valid result if the cursor refers to a function or method.
+ * This only returns a valid result if the cursor refers to a function or
+ * method.
*/
CINDEX_LINKAGE int clang_getCursorExceptionSpecificationType(CXCursor C);
@@ -3827,7 +3861,15 @@
/**
* Nullability is not applicable to this type.
*/
- CXTypeNullability_Invalid = 3
+ CXTypeNullability_Invalid = 3,
+
+ /**
+ * Generally behaves like Nullable, except when used in a block parameter that
+ * was imported into a swift async method. There, swift will assume that the
+ * parameter can get null even if no error occured. _Nullable parameters are
+ * assumed to only get null on error.
+ */
+ CXTypeNullability_NullableResult = 4
};
/**
@@ -3925,6 +3967,13 @@
CINDEX_LINKAGE CXType clang_Type_getModifiedType(CXType T);
/**
+ * Gets the type contained by this atomic type.
+ *
+ * If a non-atomic type is passed in, an invalid type is returned.
+ */
+CINDEX_LINKAGE CXType clang_Type_getValueType(CXType CT);
+
+/**
* Return the offset of the field represented by the Cursor.
*
* If the cursor is not a field declaration, -1 is returned.
@@ -3979,7 +4028,8 @@
* This function only returns template type arguments and does not handle
* template template arguments or variadic packs.
*/
-CINDEX_LINKAGE CXType clang_Type_getTemplateArgumentAsType(CXType T, unsigned i);
+CINDEX_LINKAGE CXType clang_Type_getTemplateArgumentAsType(CXType T,
+ unsigned i);
/**
* Retrieve the ref-qualifier kind of a function or method.
@@ -4015,9 +4065,9 @@
/**
* Returns the access control level for the referenced object.
*
- * If the cursor refers to a C++ declaration, its access control level within its
- * parent scope is returned. Otherwise, if the cursor refers to a base specifier or
- * access specifier, the specifier itself is returned.
+ * If the cursor refers to a C++ declaration, its access control level within
+ * its parent scope is returned. Otherwise, if the cursor refers to a base
+ * specifier or access specifier, the specifier itself is returned.
*/
CINDEX_LINKAGE enum CX_CXXAccessSpecifier clang_getCXXAccessSpecifier(CXCursor);
@@ -4168,7 +4218,7 @@
CXCursorVisitor visitor,
CXClientData client_data);
#ifdef __has_feature
-# if __has_feature(blocks)
+#if __has_feature(blocks)
/**
* Visitor invoked for each cursor found by a traversal.
*
@@ -4179,16 +4229,16 @@
* The visitor should return one of the \c CXChildVisitResult values
* to direct clang_visitChildrenWithBlock().
*/
-typedef enum CXChildVisitResult
- (^CXCursorVisitorBlock)(CXCursor cursor, CXCursor parent);
+typedef enum CXChildVisitResult (^CXCursorVisitorBlock)(CXCursor cursor,
+ CXCursor parent);
/**
* Visits the children of a cursor using the specified block. Behaves
* identically to clang_visitChildren() in all other respects.
*/
-CINDEX_LINKAGE unsigned clang_visitChildrenWithBlock(CXCursor parent,
- CXCursorVisitorBlock block);
-# endif
+CINDEX_LINKAGE unsigned
+clang_visitChildrenWithBlock(CXCursor parent, CXCursorVisitorBlock block);
+#endif
#endif
/**
@@ -4225,15 +4275,14 @@
/**
* Construct a USR for a specified Objective-C category.
*/
-CINDEX_LINKAGE CXString
- clang_constructUSR_ObjCCategory(const char *class_name,
- const char *category_name);
+CINDEX_LINKAGE CXString clang_constructUSR_ObjCCategory(
+ const char *class_name, const char *category_name);
/**
* Construct a USR for a specified Objective-C protocol.
*/
CINDEX_LINKAGE CXString
- clang_constructUSR_ObjCProtocol(const char *protocol_name);
+clang_constructUSR_ObjCProtocol(const char *protocol_name);
/**
* Construct a USR for a specified Objective-C instance variable and
@@ -4273,9 +4322,8 @@
*
* \param options Reserved.
*/
-CINDEX_LINKAGE CXSourceRange clang_Cursor_getSpellingNameRange(CXCursor,
- unsigned pieceIndex,
- unsigned options);
+CINDEX_LINKAGE CXSourceRange clang_Cursor_getSpellingNameRange(
+ CXCursor, unsigned pieceIndex, unsigned options);
/**
* Opaque pointer representing a policy that controls pretty printing
@@ -4329,9 +4377,10 @@
/**
* Set a property value for the given printing policy.
*/
-CINDEX_LINKAGE void clang_PrintingPolicy_setProperty(CXPrintingPolicy Policy,
- enum CXPrintingPolicyProperty Property,
- unsigned Value);
+CINDEX_LINKAGE void
+clang_PrintingPolicy_setProperty(CXPrintingPolicy Policy,
+ enum CXPrintingPolicyProperty Property,
+ unsigned Value);
/**
* Retrieve the default policy for the cursor.
@@ -4479,18 +4528,18 @@
* Property attributes for a \c CXCursor_ObjCPropertyDecl.
*/
typedef enum {
- CXObjCPropertyAttr_noattr = 0x00,
- CXObjCPropertyAttr_readonly = 0x01,
- CXObjCPropertyAttr_getter = 0x02,
- CXObjCPropertyAttr_assign = 0x04,
+ CXObjCPropertyAttr_noattr = 0x00,
+ CXObjCPropertyAttr_readonly = 0x01,
+ CXObjCPropertyAttr_getter = 0x02,
+ CXObjCPropertyAttr_assign = 0x04,
CXObjCPropertyAttr_readwrite = 0x08,
- CXObjCPropertyAttr_retain = 0x10,
- CXObjCPropertyAttr_copy = 0x20,
+ CXObjCPropertyAttr_retain = 0x10,
+ CXObjCPropertyAttr_copy = 0x20,
CXObjCPropertyAttr_nonatomic = 0x40,
- CXObjCPropertyAttr_setter = 0x80,
- CXObjCPropertyAttr_atomic = 0x100,
- CXObjCPropertyAttr_weak = 0x200,
- CXObjCPropertyAttr_strong = 0x400,
+ CXObjCPropertyAttr_setter = 0x80,
+ CXObjCPropertyAttr_atomic = 0x100,
+ CXObjCPropertyAttr_weak = 0x200,
+ CXObjCPropertyAttr_strong = 0x400,
CXObjCPropertyAttr_unsafe_unretained = 0x800,
CXObjCPropertyAttr_class = 0x1000
} CXObjCPropertyAttrKind;
@@ -4502,8 +4551,8 @@
*
* \param reserved Reserved for future use, pass 0.
*/
-CINDEX_LINKAGE unsigned clang_Cursor_getObjCPropertyAttributes(CXCursor C,
- unsigned reserved);
+CINDEX_LINKAGE unsigned
+clang_Cursor_getObjCPropertyAttributes(CXCursor C, unsigned reserved);
/**
* Given a cursor that represents a property declaration, return the
@@ -4565,8 +4614,9 @@
* non-zero if the 'generated_declaration' is set in the attribute.
*/
CINDEX_LINKAGE unsigned clang_Cursor_isExternalSymbol(CXCursor C,
- CXString *language, CXString *definedIn,
- unsigned *isGenerated);
+ CXString *language,
+ CXString *definedIn,
+ unsigned *isGenerated);
/**
* Given a cursor that represents a declaration, return the associated
@@ -4692,8 +4742,8 @@
* \returns the specified top level header associated with the module.
*/
CINDEX_LINKAGE
-CXFile clang_Module_getTopLevelHeader(CXTranslationUnit,
- CXModule Module, unsigned Index);
+CXFile clang_Module_getTopLevelHeader(CXTranslationUnit, CXModule Module,
+ unsigned Index);
/**
* @}
@@ -4711,7 +4761,8 @@
/**
* Determine if a C++ constructor is a converting constructor.
*/
-CINDEX_LINKAGE unsigned clang_CXXConstructor_isConvertingConstructor(CXCursor C);
+CINDEX_LINKAGE unsigned
+clang_CXXConstructor_isConvertingConstructor(CXCursor C);
/**
* Determine if a C++ constructor is a copy constructor.
@@ -4841,9 +4892,8 @@
* \returns The piece of the name pointed to by the given cursor. If there is no
* name, or if the PieceIndex is out-of-range, a null-cursor will be returned.
*/
-CINDEX_LINKAGE CXSourceRange clang_getCursorReferenceNameRange(CXCursor C,
- unsigned NameFlags,
- unsigned PieceIndex);
+CINDEX_LINKAGE CXSourceRange clang_getCursorReferenceNameRange(
+ CXCursor C, unsigned NameFlags, unsigned PieceIndex);
enum CXNameRefFlags {
/**
@@ -5011,15 +5061,14 @@
* \param Cursors an array of \p NumTokens cursors, whose contents will be
* replaced with the cursors corresponding to each token.
*/
-CINDEX_LINKAGE void clang_annotateTokens(CXTranslationUnit TU,
- CXToken *Tokens, unsigned NumTokens,
- CXCursor *Cursors);
+CINDEX_LINKAGE void clang_annotateTokens(CXTranslationUnit TU, CXToken *Tokens,
+ unsigned NumTokens, CXCursor *Cursors);
/**
* Free the given set of tokens.
*/
-CINDEX_LINKAGE void clang_disposeTokens(CXTranslationUnit TU,
- CXToken *Tokens, unsigned NumTokens);
+CINDEX_LINKAGE void clang_disposeTokens(CXTranslationUnit TU, CXToken *Tokens,
+ unsigned NumTokens);
/**
* @}
@@ -5036,15 +5085,11 @@
/* for debug/testing */
CINDEX_LINKAGE CXString clang_getCursorKindSpelling(enum CXCursorKind Kind);
-CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent(CXCursor,
- const char **startBuf,
- const char **endBuf,
- unsigned *startLine,
- unsigned *startColumn,
- unsigned *endLine,
- unsigned *endColumn);
+CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent(
+ CXCursor, const char **startBuf, const char **endBuf, unsigned *startLine,
+ unsigned *startColumn, unsigned *endLine, unsigned *endColumn);
CINDEX_LINKAGE void clang_enableStackTraces(void);
-CINDEX_LINKAGE void clang_executeOnThread(void (*fn)(void*), void *user_data,
+CINDEX_LINKAGE void clang_executeOnThread(void (*fn)(void *), void *user_data,
unsigned stack_size);
/**
@@ -5295,9 +5340,8 @@
*
* \returns the text associated with the chunk at index \c chunk_number.
*/
-CINDEX_LINKAGE CXString
-clang_getCompletionChunkText(CXCompletionString completion_string,
- unsigned chunk_number);
+CINDEX_LINKAGE CXString clang_getCompletionChunkText(
+ CXCompletionString completion_string, unsigned chunk_number);
/**
* Retrieve the completion string associated with a particular chunk
@@ -5310,9 +5354,8 @@
* \returns the completion string associated with the chunk at index
* \c chunk_number.
*/
-CINDEX_LINKAGE CXCompletionString
-clang_getCompletionChunkCompletionString(CXCompletionString completion_string,
- unsigned chunk_number);
+CINDEX_LINKAGE CXCompletionString clang_getCompletionChunkCompletionString(
+ CXCompletionString completion_string, unsigned chunk_number);
/**
* Retrieve the number of chunks in the given code-completion string.
@@ -5369,9 +5412,8 @@
* \returns annotation string associated with the completion at index
* \c annotation_number, or a NULL string if that annotation is not available.
*/
-CINDEX_LINKAGE CXString
-clang_getCompletionAnnotation(CXCompletionString completion_string,
- unsigned annotation_number);
+CINDEX_LINKAGE CXString clang_getCompletionAnnotation(
+ CXCompletionString completion_string, unsigned annotation_number);
/**
* Retrieve the parent context of the given completion string.
@@ -5389,9 +5431,8 @@
* \returns The name of the completion parent, e.g., "NSObject" if
* the completion string represents a method in the NSObject class.
*/
-CINDEX_LINKAGE CXString
-clang_getCompletionParent(CXCompletionString completion_string,
- enum CXCursorKind *kind);
+CINDEX_LINKAGE CXString clang_getCompletionParent(
+ CXCompletionString completion_string, enum CXCursorKind *kind);
/**
* Retrieve the brief documentation comment attached to the declaration
@@ -5747,13 +5788,11 @@
* completion fails, returns NULL.
*/
CINDEX_LINKAGE
-CXCodeCompleteResults *clang_codeCompleteAt(CXTranslationUnit TU,
- const char *complete_filename,
- unsigned complete_line,
- unsigned complete_column,
- struct CXUnsavedFile *unsaved_files,
- unsigned num_unsaved_files,
- unsigned options);
+CXCodeCompleteResults *
+clang_codeCompleteAt(CXTranslationUnit TU, const char *complete_filename,
+ unsigned complete_line, unsigned complete_column,
+ struct CXUnsavedFile *unsaved_files,
+ unsigned num_unsaved_files, unsigned options);
/**
* Sort the code-completion results in case-insensitive alphabetical
@@ -5802,8 +5841,8 @@
* along with the given code completion results.
*/
CINDEX_LINKAGE
-unsigned long long clang_codeCompleteGetContexts(
- CXCodeCompleteResults *Results);
+unsigned long long
+clang_codeCompleteGetContexts(CXCodeCompleteResults *Results);
/**
* Returns the cursor kind for the container for the current code
@@ -5822,9 +5861,9 @@
* container
*/
CINDEX_LINKAGE
-enum CXCursorKind clang_codeCompleteGetContainerKind(
- CXCodeCompleteResults *Results,
- unsigned *IsIncomplete);
+enum CXCursorKind
+clang_codeCompleteGetContainerKind(CXCodeCompleteResults *Results,
+ unsigned *IsIncomplete);
/**
* Returns the USR for the container for the current code completion
@@ -5876,19 +5915,19 @@
*/
CINDEX_LINKAGE void clang_toggleCrashRecovery(unsigned isEnabled);
- /**
- * Visitor invoked for each file in a translation unit
- * (used with clang_getInclusions()).
- *
- * This visitor function will be invoked by clang_getInclusions() for each
- * file included (either at the top-level or by \#include directives) within
- * a translation unit. The first argument is the file being included, and
- * the second and third arguments provide the inclusion stack. The
- * array is sorted in order of immediate inclusion. For example,
- * the first element refers to the location that included 'included_file'.
- */
+/**
+ * Visitor invoked for each file in a translation unit
+ * (used with clang_getInclusions()).
+ *
+ * This visitor function will be invoked by clang_getInclusions() for each
+ * file included (either at the top-level or by \#include directives) within
+ * a translation unit. The first argument is the file being included, and
+ * the second and third arguments provide the inclusion stack. The
+ * array is sorted in order of immediate inclusion. For example,
+ * the first element refers to the location that included 'included_file'.
+ */
typedef void (*CXInclusionVisitor)(CXFile included_file,
- CXSourceLocation* inclusion_stack,
+ CXSourceLocation *inclusion_stack,
unsigned include_len,
CXClientData client_data);
@@ -5903,7 +5942,7 @@
CXClientData client_data);
typedef enum {
- CXEval_Int = 1 ,
+ CXEval_Int = 1,
CXEval_Float = 2,
CXEval_ObjCStrLiteral = 3,
CXEval_StrLiteral = 4,
@@ -5912,17 +5951,18 @@
CXEval_UnExposed = 0
-} CXEvalResultKind ;
+} CXEvalResultKind;
/**
* Evaluation result of a cursor
*/
-typedef void * CXEvalResult;
+typedef void *CXEvalResult;
/**
* If cursor is a statement declaration tries to evaluate the
* statement and if its variable, tries to evaluate its initializer,
* into its corresponding type.
+ * If it's an expression, tries to evaluate the expression.
*/
CINDEX_LINKAGE CXEvalResult clang_Cursor_Evaluate(CXCursor C);
@@ -5954,7 +5994,8 @@
* Returns the evaluation result as an unsigned integer if
* the kind is Int and clang_EvalResult_isUnsignedInt is non-zero.
*/
-CINDEX_LINKAGE unsigned long long clang_EvalResult_getAsUnsigned(CXEvalResult E);
+CINDEX_LINKAGE unsigned long long
+clang_EvalResult_getAsUnsigned(CXEvalResult E);
/**
* Returns the evaluation result as double if the
@@ -5968,7 +6009,7 @@
* instead call clang_EvalResult_dispose on the CXEvalResult returned
* by clang_Cursor_Evaluate.
*/
-CINDEX_LINKAGE const char* clang_EvalResult_getAsStr(CXEvalResult E);
+CINDEX_LINKAGE const char *clang_EvalResult_getAsStr(CXEvalResult E);
/**
* Disposes the created Eval memory.
@@ -6026,7 +6067,8 @@
* is associated with.
*/
CINDEX_LINKAGE void clang_remap_getFilenames(CXRemapping, unsigned index,
- CXString *original, CXString *transformed);
+ CXString *original,
+ CXString *transformed);
/**
* Dispose the remapping.
@@ -6042,10 +6084,7 @@
* @{
*/
-enum CXVisitorResult {
- CXVisit_Break,
- CXVisit_Continue
-};
+enum CXVisitorResult { CXVisit_Break, CXVisit_Continue };
typedef struct CXCursorAndRangeVisitor {
void *context;
@@ -6083,8 +6122,8 @@
*
* \returns one of the CXResult enumerators.
*/
-CINDEX_LINKAGE CXResult clang_findReferencesInFile(CXCursor cursor, CXFile file,
- CXCursorAndRangeVisitor visitor);
+CINDEX_LINKAGE CXResult clang_findReferencesInFile(
+ CXCursor cursor, CXFile file, CXCursorAndRangeVisitor visitor);
/**
* Find #import/#include directives in a specific file.
@@ -6098,15 +6137,14 @@
*
* \returns one of the CXResult enumerators.
*/
-CINDEX_LINKAGE CXResult clang_findIncludesInFile(CXTranslationUnit TU,
- CXFile file,
- CXCursorAndRangeVisitor visitor);
+CINDEX_LINKAGE CXResult clang_findIncludesInFile(
+ CXTranslationUnit TU, CXFile file, CXCursorAndRangeVisitor visitor);
#ifdef __has_feature
-# if __has_feature(blocks)
+#if __has_feature(blocks)
-typedef enum CXVisitorResult
- (^CXCursorAndRangeVisitorBlock)(CXCursor, CXSourceRange);
+typedef enum CXVisitorResult (^CXCursorAndRangeVisitorBlock)(CXCursor,
+ CXSourceRange);
CINDEX_LINKAGE
CXResult clang_findReferencesInFileWithBlock(CXCursor, CXFile,
@@ -6116,7 +6154,7 @@
CXResult clang_findIncludesInFileWithBlock(CXTranslationUnit, CXFile,
CXCursorAndRangeVisitorBlock);
-# endif
+#endif
#endif
/**
@@ -6199,46 +6237,46 @@
} CXIdxImportedASTFileInfo;
typedef enum {
- CXIdxEntity_Unexposed = 0,
- CXIdxEntity_Typedef = 1,
- CXIdxEntity_Function = 2,
- CXIdxEntity_Variable = 3,
- CXIdxEntity_Field = 4,
- CXIdxEntity_EnumConstant = 5,
+ CXIdxEntity_Unexposed = 0,
+ CXIdxEntity_Typedef = 1,
+ CXIdxEntity_Function = 2,
+ CXIdxEntity_Variable = 3,
+ CXIdxEntity_Field = 4,
+ CXIdxEntity_EnumConstant = 5,
- CXIdxEntity_ObjCClass = 6,
- CXIdxEntity_ObjCProtocol = 7,
- CXIdxEntity_ObjCCategory = 8,
+ CXIdxEntity_ObjCClass = 6,
+ CXIdxEntity_ObjCProtocol = 7,
+ CXIdxEntity_ObjCCategory = 8,
CXIdxEntity_ObjCInstanceMethod = 9,
- CXIdxEntity_ObjCClassMethod = 10,
- CXIdxEntity_ObjCProperty = 11,
- CXIdxEntity_ObjCIvar = 12,
+ CXIdxEntity_ObjCClassMethod = 10,
+ CXIdxEntity_ObjCProperty = 11,
+ CXIdxEntity_ObjCIvar = 12,
- CXIdxEntity_Enum = 13,
- CXIdxEntity_Struct = 14,
- CXIdxEntity_Union = 15,
+ CXIdxEntity_Enum = 13,
+ CXIdxEntity_Struct = 14,
+ CXIdxEntity_Union = 15,
- CXIdxEntity_CXXClass = 16,
- CXIdxEntity_CXXNamespace = 17,
- CXIdxEntity_CXXNamespaceAlias = 18,
- CXIdxEntity_CXXStaticVariable = 19,
- CXIdxEntity_CXXStaticMethod = 20,
- CXIdxEntity_CXXInstanceMethod = 21,
- CXIdxEntity_CXXConstructor = 22,
- CXIdxEntity_CXXDestructor = 23,
+ CXIdxEntity_CXXClass = 16,
+ CXIdxEntity_CXXNamespace = 17,
+ CXIdxEntity_CXXNamespaceAlias = 18,
+ CXIdxEntity_CXXStaticVariable = 19,
+ CXIdxEntity_CXXStaticMethod = 20,
+ CXIdxEntity_CXXInstanceMethod = 21,
+ CXIdxEntity_CXXConstructor = 22,
+ CXIdxEntity_CXXDestructor = 23,
CXIdxEntity_CXXConversionFunction = 24,
- CXIdxEntity_CXXTypeAlias = 25,
- CXIdxEntity_CXXInterface = 26
+ CXIdxEntity_CXXTypeAlias = 25,
+ CXIdxEntity_CXXInterface = 26
} CXIdxEntityKind;
typedef enum {
CXIdxEntityLang_None = 0,
- CXIdxEntityLang_C = 1,
+ CXIdxEntityLang_C = 1,
CXIdxEntityLang_ObjC = 2,
- CXIdxEntityLang_CXX = 3,
- CXIdxEntityLang_Swift = 4
+ CXIdxEntityLang_CXX = 3,
+ CXIdxEntityLang_Swift = 4
} CXIdxEntityLanguage;
/**
@@ -6252,16 +6290,16 @@
* CXIdxEntity_CXXTypeAlias
*/
typedef enum {
- CXIdxEntity_NonTemplate = 0,
- CXIdxEntity_Template = 1,
+ CXIdxEntity_NonTemplate = 0,
+ CXIdxEntity_Template = 1,
CXIdxEntity_TemplatePartialSpecialization = 2,
CXIdxEntity_TemplateSpecialization = 3
} CXIdxEntityCXXTemplateKind;
typedef enum {
- CXIdxAttr_Unexposed = 0,
- CXIdxAttr_IBAction = 1,
- CXIdxAttr_IBOutlet = 2,
+ CXIdxAttr_Unexposed = 0,
+ CXIdxAttr_IBAction = 1,
+ CXIdxAttr_IBOutlet = 2,
CXIdxAttr_IBOutletCollection = 3
} CXIdxAttrKind;
@@ -6293,9 +6331,7 @@
CXIdxLoc classLoc;
} CXIdxIBOutletCollectionAttrInfo;
-typedef enum {
- CXIdxDeclFlag_Skipped = 0x1
-} CXIdxDeclInfoFlags;
+typedef enum { CXIdxDeclFlag_Skipped = 0x1 } CXIdxDeclInfoFlags;
typedef struct {
const CXIdxEntityInfo *entityInfo;
@@ -6464,11 +6500,10 @@
/**
* Called at the end of indexing; passes the complete diagnostic set.
*/
- void (*diagnostic)(CXClientData client_data,
- CXDiagnosticSet, void *reserved);
+ void (*diagnostic)(CXClientData client_data, CXDiagnosticSet, void *reserved);
- CXIdxClientFile (*enteredMainFile)(CXClientData client_data,
- CXFile mainFile, void *reserved);
+ CXIdxClientFile (*enteredMainFile)(CXClientData client_data, CXFile mainFile,
+ void *reserved);
/**
* Called when a file gets \#included/\#imported.
@@ -6493,8 +6528,7 @@
CXIdxClientContainer (*startedTranslationUnit)(CXClientData client_data,
void *reserved);
- void (*indexDeclaration)(CXClientData client_data,
- const CXIdxDeclInfo *);
+ void (*indexDeclaration)(CXClientData client_data, const CXIdxDeclInfo *);
/**
* Called to index a reference of an entity.
@@ -6538,8 +6572,8 @@
* For setting a custom CXIdxClientContainer attached to a
* container.
*/
-CINDEX_LINKAGE void
-clang_index_setClientContainer(const CXIdxContainerInfo *,CXIdxClientContainer);
+CINDEX_LINKAGE void clang_index_setClientContainer(const CXIdxContainerInfo *,
+ CXIdxClientContainer);
/**
* For retrieving a custom CXIdxClientEntity attached to an entity.
@@ -6550,8 +6584,8 @@
/**
* For setting a custom CXIdxClientEntity attached to an entity.
*/
-CINDEX_LINKAGE void
-clang_index_setClientEntity(const CXIdxEntityInfo *, CXIdxClientEntity);
+CINDEX_LINKAGE void clang_index_setClientEntity(const CXIdxEntityInfo *,
+ CXIdxClientEntity);
/**
* An indexing action/session, to be applied to one or multiple
@@ -6639,18 +6673,12 @@
*
* The rest of the parameters are the same as #clang_parseTranslationUnit.
*/
-CINDEX_LINKAGE int clang_indexSourceFile(CXIndexAction,
- CXClientData client_data,
- IndexerCallbacks *index_callbacks,
- unsigned index_callbacks_size,
- unsigned index_options,
- const char *source_filename,
- const char * const *command_line_args,
- int num_command_line_args,
- struct CXUnsavedFile *unsaved_files,
- unsigned num_unsaved_files,
- CXTranslationUnit *out_TU,
- unsigned TU_options);
+CINDEX_LINKAGE int clang_indexSourceFile(
+ CXIndexAction, CXClientData client_data, IndexerCallbacks *index_callbacks,
+ unsigned index_callbacks_size, unsigned index_options,
+ const char *source_filename, const char *const *command_line_args,
+ int num_command_line_args, struct CXUnsavedFile *unsaved_files,
+ unsigned num_unsaved_files, CXTranslationUnit *out_TU, unsigned TU_options);
/**
* Same as clang_indexSourceFile but requires a full command line
@@ -6680,12 +6708,9 @@
* \returns If there is a failure from which there is no recovery, returns
* non-zero, otherwise returns 0.
*/
-CINDEX_LINKAGE int clang_indexTranslationUnit(CXIndexAction,
- CXClientData client_data,
- IndexerCallbacks *index_callbacks,
- unsigned index_callbacks_size,
- unsigned index_options,
- CXTranslationUnit);
+CINDEX_LINKAGE int clang_indexTranslationUnit(
+ CXIndexAction, CXClientData client_data, IndexerCallbacks *index_callbacks,
+ unsigned index_callbacks_size, unsigned index_options, CXTranslationUnit);
/**
* Retrieve the CXIdxFile, file, line, column, and offset represented by
@@ -6697,8 +6722,7 @@
*/
CINDEX_LINKAGE void clang_indexLoc_getFileLocation(CXIdxLoc loc,
CXIdxClientFile *indexFile,
- CXFile *file,
- unsigned *line,
+ CXFile *file, unsigned *line,
unsigned *column,
unsigned *offset);
@@ -6741,8 +6765,7 @@
* \returns a non-zero value if the traversal was terminated
* prematurely by the visitor returning \c CXFieldVisit_Break.
*/
-CINDEX_LINKAGE unsigned clang_Type_visitFields(CXType T,
- CXFieldVisitor visitor,
+CINDEX_LINKAGE unsigned clang_Type_visitFields(CXType T, CXFieldVisitor visitor,
CXClientData client_data);
/**
@@ -6753,7 +6776,6 @@
* @}
*/
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
+
#endif
diff --git a/linux-x64/clang/include/clang-c/Platform.h b/linux-x64/clang/include/clang-c/Platform.h
index 5284b53..67c1fff 100644
--- a/linux-x64/clang/include/clang-c/Platform.h
+++ b/linux-x64/clang/include/clang-c/Platform.h
@@ -14,18 +14,27 @@
#ifndef LLVM_CLANG_C_PLATFORM_H
#define LLVM_CLANG_C_PLATFORM_H
-#ifdef __cplusplus
-extern "C" {
+#include "clang-c/ExternC.h"
+
+LLVM_CLANG_C_EXTERN_C_BEGIN
+
+/* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+ #define CINDEX_EXPORTS
+#endif
+#ifdef _WIN32
+ #ifdef CINDEX_EXPORTS
+ #ifdef _CINDEX_LIB_
+ #define CINDEX_LINKAGE __declspec(dllexport)
+ #else
+ #define CINDEX_LINKAGE __declspec(dllimport)
+ #endif
+ #endif
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
+ #define CINDEX_LINKAGE __attribute__((visibility("default")))
#endif
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
- #ifdef _CINDEX_LIB_
- #define CINDEX_LINKAGE __declspec(dllexport)
- #else
- #define CINDEX_LINKAGE __declspec(dllimport)
- #endif
-#else
+#ifndef CINDEX_LINKAGE
#define CINDEX_LINKAGE
#endif
@@ -39,7 +48,6 @@
#endif
#endif
-#ifdef __cplusplus
-}
-#endif
+LLVM_CLANG_C_EXTERN_C_END
+
#endif
diff --git a/linux-x64/clang/include/clang-c/Rewrite.h b/linux-x64/clang/include/clang-c/Rewrite.h
new file mode 100644
index 0000000..ce1b055
--- /dev/null
+++ b/linux-x64/clang/include/clang-c/Rewrite.h
@@ -0,0 +1,63 @@
+/*===-- clang-c/Rewrite.h - C CXRewriter --------------------------*- C -*-===*\
+|* *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
+|* Exceptions. *|
+|* See https://llvm.org/LICENSE.txt for license information. *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
+|* *|
+|*===----------------------------------------------------------------------===*/
+
+#ifndef LLVM_CLANG_C_REWRITE_H
+#define LLVM_CLANG_C_REWRITE_H
+
+#include "clang-c/CXString.h"
+#include "clang-c/ExternC.h"
+#include "clang-c/Index.h"
+#include "clang-c/Platform.h"
+
+LLVM_CLANG_C_EXTERN_C_BEGIN
+
+typedef void *CXRewriter;
+
+/**
+ * Create CXRewriter.
+ */
+CINDEX_LINKAGE CXRewriter clang_CXRewriter_create(CXTranslationUnit TU);
+
+/**
+ * Insert the specified string at the specified location in the original buffer.
+ */
+CINDEX_LINKAGE void clang_CXRewriter_insertTextBefore(CXRewriter Rew, CXSourceLocation Loc,
+ const char *Insert);
+
+/**
+ * Replace the specified range of characters in the input with the specified
+ * replacement.
+ */
+CINDEX_LINKAGE void clang_CXRewriter_replaceText(CXRewriter Rew, CXSourceRange ToBeReplaced,
+ const char *Replacement);
+
+/**
+ * Remove the specified range.
+ */
+CINDEX_LINKAGE void clang_CXRewriter_removeText(CXRewriter Rew, CXSourceRange ToBeRemoved);
+
+/**
+ * Save all changed files to disk.
+ * Returns 1 if any files were not saved successfully, returns 0 otherwise.
+ */
+CINDEX_LINKAGE int clang_CXRewriter_overwriteChangedFiles(CXRewriter Rew);
+
+/**
+ * Write out rewritten version of the main file to stdout.
+ */
+CINDEX_LINKAGE void clang_CXRewriter_writeMainFileToStdOut(CXRewriter Rew);
+
+/**
+ * Free the given CXRewriter.
+ */
+CINDEX_LINKAGE void clang_CXRewriter_dispose(CXRewriter Rew);
+
+LLVM_CLANG_C_EXTERN_C_END
+
+#endif