Skip to content
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions clang/docs/LibClang.rst
Original file line number Diff line number Diff line change
Expand Up @@ -373,19 +373,21 @@ implementation of the facilities by Clang may change behavior as bugs are
fixed, features get implemented, etc.

The library should be ABI and API stable over time, but ABI- and API-breaking
changes can happen in the following situations:
changes can happen in the following (non-exhaustive) situations:

* Adding new enumerator to an enumeration (can be ABI-breaking in C++).
* Removing an explicitly deprecated API after a suitably long deprecation
period.
* Uses of implementation details, such names or comments that say something is
"private", "reserved", "internal", etc.
* Using implementation details, such as names or comments that say something
is "private", "reserved", "internal", etc.
* Bug fixes or changes to Clang's internal implementation, or (rarely), bug
fixes to libclang itself.

The library has version macros (``CINDEX_VERSION_MAJOR``,
``CINDEX_VERSION_MINOR``, and ``CINDEX_VERSION``) which can be used to test for
specific library versions at compile time. The ``CINDEX_VERSION_MAJOR`` macro
is only incremented if there are major source- or ABI-breaking changes. Except
for removing an explicitly deprecate API, the changes listed above are not
for removing an explicitly deprecated API, the changes listed above are not
considered major source- or ABI-breaking changes. Historically, the value this
macro expands to has not changed, but may be incremented in the future should
the need arise. The ``CINDEX_VERSION_MINOR`` macro is incremented as new APIs
Expand Down
Loading