-
- Downloads
Introduce _BitInt, deprecate _ExtInt
WG14 adopted the _ExtInt feature from Clang for C23, but renamed the type to be _BitInt. This patch does the vast majority of the work to rename _ExtInt to _BitInt, which accounts for most of its size. The new type is exposed in older C modes and all C++ modes as a conforming extension. However, there are functional changes worth calling out: * Deprecates _ExtInt with a fix-it to help users migrate to _BitInt. * Updates the mangling for the type. * Updates the documentation and adds a release note to warn users what is going on. * Adds new diagnostics for use of _BitInt to call out when it's used as a Clang extension or as a pre-C23 compatibility concern. * Adds new tests for the new diagnostic behaviors. I want to call out the ABI break specifically. We do not believe that this break will cause a significant imposition for early adopters of the feature, and so this is being done as a full break. If it turns out there are critical uses where recompilation is not an option for some reason, we can consider using ABI tags to ease the transition.
Showing
- clang-tools-extra/test/clang-tidy/checkers/bugprone-implicit-widening-of-multiplication-result-extint.cpp 6 additions, 6 deletions...one-implicit-widening-of-multiplication-result-extint.cpp
- clang/docs/LanguageExtensions.rst 7 additions, 49 deletionsclang/docs/LanguageExtensions.rst
- clang/docs/ReleaseNotes.rst 17 additions, 0 deletionsclang/docs/ReleaseNotes.rst
- clang/include/clang/AST/ASTContext.h 7 additions, 7 deletionsclang/include/clang/AST/ASTContext.h
- clang/include/clang/AST/RecursiveASTVisitor.h 4 additions, 4 deletionsclang/include/clang/AST/RecursiveASTVisitor.h
- clang/include/clang/AST/Type.h 12 additions, 12 deletionsclang/include/clang/AST/Type.h
- clang/include/clang/AST/TypeLoc.h 6 additions, 6 deletionsclang/include/clang/AST/TypeLoc.h
- clang/include/clang/AST/TypeProperties.td 4 additions, 4 deletionsclang/include/clang/AST/TypeProperties.td
- clang/include/clang/Basic/DiagnosticGroups.td 2 additions, 0 deletionsclang/include/clang/Basic/DiagnosticGroups.td
- clang/include/clang/Basic/DiagnosticParseKinds.td 9 additions, 0 deletionsclang/include/clang/Basic/DiagnosticParseKinds.td
- clang/include/clang/Basic/DiagnosticSemaKinds.td 6 additions, 6 deletionsclang/include/clang/Basic/DiagnosticSemaKinds.td
- clang/include/clang/Basic/Specifiers.h 1 addition, 1 deletionclang/include/clang/Basic/Specifiers.h
- clang/include/clang/Basic/TargetInfo.h 6 additions, 2 deletionsclang/include/clang/Basic/TargetInfo.h
- clang/include/clang/Basic/TokenKinds.def 1 addition, 0 deletionsclang/include/clang/Basic/TokenKinds.def
- clang/include/clang/Basic/TypeNodes.td 2 additions, 2 deletionsclang/include/clang/Basic/TypeNodes.td
- clang/include/clang/Parse/Parser.h 4 additions, 0 deletionsclang/include/clang/Parse/Parser.h
- clang/include/clang/Sema/DeclSpec.h 3 additions, 3 deletionsclang/include/clang/Sema/DeclSpec.h
- clang/include/clang/Sema/Sema.h 1 addition, 1 deletionclang/include/clang/Sema/Sema.h
- clang/include/clang/Serialization/TypeBitCodes.def 2 additions, 2 deletionsclang/include/clang/Serialization/TypeBitCodes.def
- clang/lib/AST/ASTContext.cpp 30 additions, 30 deletionsclang/lib/AST/ASTContext.cpp
Loading