svn commit: r349967 - in stable: 11 11/contrib/llvm/tools/clang/include/clang/AST 12/contrib/llvm/tools/clang/include/clang/AST
Dimitry Andric
dim at FreeBSD.org
Sat Jul 13 10:46:03 UTC 2019
Author: dim
Date: Sat Jul 13 10:46:01 2019
New Revision: 349967
URL: https://svnweb.freebsd.org/changeset/base/349967
Log:
MFC r349876:
Apply a workaround to be able to build clang 8.0.0 headers with clang
3.4.1, which is still in the stable/10 branch.
It looks like clang 3.4.1 implements static_asserts by instantiating a
temporary static object, and if those are in an anonymous union, it
results in "error: anonymous union can only contain non-static data
members".
To work around this implementation limitation, move the static_asserts
in question out of the anonymous unions.
This should make building the latest stable/11 from stable/10 possible
again.
Reported by: Mike Tancsa <mike at sentex.net>
Modified:
stable/11/UPDATING
stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
stable/11/contrib/llvm/tools/clang/include/clang/AST/Type.h
Directory Properties:
stable/11/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
stable/12/contrib/llvm/tools/clang/include/clang/AST/Type.h
Directory Properties:
stable/12/ (props changed)
Modified: stable/11/UPDATING
==============================================================================
--- stable/11/UPDATING Sat Jul 13 08:08:25 2019 (r349966)
+++ stable/11/UPDATING Sat Jul 13 10:46:01 2019 (r349967)
@@ -25,9 +25,8 @@ from older version of current across the gcc/clang cut
20190416:
Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
8.0.0. Please see the 20141231 entry below for information about
- prerequisites and upgrading, if you are not already using clang 3.5.0 or
- higher. RELENG_10 still has 3.4.1, so you should upgrade to r346291
- first if you are upgrading from 10.x.
+ prerequisites and upgrading, if you are not already using clang 3.5.0
+ or higher.
20190226:
geom_uzip(4) depends on the new module xz. If geom_uzip is statically
Modified: stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
==============================================================================
--- stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h Sat Jul 13 08:08:25 2019 (r349966)
+++ stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h Sat Jul 13 10:46:01 2019 (r349967)
@@ -1696,30 +1696,30 @@ class DeclContext { (protected)
ObjCContainerDeclBitfields ObjCContainerDeclBits;
LinkageSpecDeclBitfields LinkageSpecDeclBits;
BlockDeclBitfields BlockDeclBits;
-
- static_assert(sizeof(DeclContextBitfields) <= 8,
- "DeclContextBitfields is larger than 8 bytes!");
- static_assert(sizeof(TagDeclBitfields) <= 8,
- "TagDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(EnumDeclBitfields) <= 8,
- "EnumDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(RecordDeclBitfields) <= 8,
- "RecordDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(OMPDeclareReductionDeclBitfields) <= 8,
- "OMPDeclareReductionDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(FunctionDeclBitfields) <= 8,
- "FunctionDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(CXXConstructorDeclBitfields) <= 8,
- "CXXConstructorDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(ObjCMethodDeclBitfields) <= 8,
- "ObjCMethodDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(ObjCContainerDeclBitfields) <= 8,
- "ObjCContainerDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(LinkageSpecDeclBitfields) <= 8,
- "LinkageSpecDeclBitfields is larger than 8 bytes!");
- static_assert(sizeof(BlockDeclBitfields) <= 8,
- "BlockDeclBitfields is larger than 8 bytes!");
};
+
+ static_assert(sizeof(DeclContextBitfields) <= 8,
+ "DeclContextBitfields is larger than 8 bytes!");
+ static_assert(sizeof(TagDeclBitfields) <= 8,
+ "TagDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(EnumDeclBitfields) <= 8,
+ "EnumDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(RecordDeclBitfields) <= 8,
+ "RecordDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(OMPDeclareReductionDeclBitfields) <= 8,
+ "OMPDeclareReductionDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(FunctionDeclBitfields) <= 8,
+ "FunctionDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(CXXConstructorDeclBitfields) <= 8,
+ "CXXConstructorDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(ObjCMethodDeclBitfields) <= 8,
+ "ObjCMethodDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(ObjCContainerDeclBitfields) <= 8,
+ "ObjCContainerDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(LinkageSpecDeclBitfields) <= 8,
+ "LinkageSpecDeclBitfields is larger than 8 bytes!");
+ static_assert(sizeof(BlockDeclBitfields) <= 8,
+ "BlockDeclBitfields is larger than 8 bytes!");
/// FirstDecl - The first declaration stored within this declaration
/// context.
Modified: stable/11/contrib/llvm/tools/clang/include/clang/AST/Type.h
==============================================================================
--- stable/11/contrib/llvm/tools/clang/include/clang/AST/Type.h Sat Jul 13 08:08:25 2019 (r349966)
+++ stable/11/contrib/llvm/tools/clang/include/clang/AST/Type.h Sat Jul 13 10:46:01 2019 (r349967)
@@ -1720,41 +1720,41 @@ class Type : public ExtQualsTypeCommonBase { (protecte
DependentTemplateSpecializationTypeBitfields
DependentTemplateSpecializationTypeBits;
PackExpansionTypeBitfields PackExpansionTypeBits;
-
- static_assert(sizeof(TypeBitfields) <= 8,
- "TypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(ArrayTypeBitfields) <= 8,
- "ArrayTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(AttributedTypeBitfields) <= 8,
- "AttributedTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(AutoTypeBitfields) <= 8,
- "AutoTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(BuiltinTypeBitfields) <= 8,
- "BuiltinTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(FunctionTypeBitfields) <= 8,
- "FunctionTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(ObjCObjectTypeBitfields) <= 8,
- "ObjCObjectTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(ReferenceTypeBitfields) <= 8,
- "ReferenceTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(TypeWithKeywordBitfields) <= 8,
- "TypeWithKeywordBitfields is larger than 8 bytes!");
- static_assert(sizeof(ElaboratedTypeBitfields) <= 8,
- "ElaboratedTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(VectorTypeBitfields) <= 8,
- "VectorTypeBitfields is larger than 8 bytes!");
- static_assert(sizeof(SubstTemplateTypeParmPackTypeBitfields) <= 8,
- "SubstTemplateTypeParmPackTypeBitfields is larger"
- " than 8 bytes!");
- static_assert(sizeof(TemplateSpecializationTypeBitfields) <= 8,
- "TemplateSpecializationTypeBitfields is larger"
- " than 8 bytes!");
- static_assert(sizeof(DependentTemplateSpecializationTypeBitfields) <= 8,
- "DependentTemplateSpecializationTypeBitfields is larger"
- " than 8 bytes!");
- static_assert(sizeof(PackExpansionTypeBitfields) <= 8,
- "PackExpansionTypeBitfields is larger than 8 bytes");
};
+
+ static_assert(sizeof(TypeBitfields) <= 8,
+ "TypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(ArrayTypeBitfields) <= 8,
+ "ArrayTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(AttributedTypeBitfields) <= 8,
+ "AttributedTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(AutoTypeBitfields) <= 8,
+ "AutoTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(BuiltinTypeBitfields) <= 8,
+ "BuiltinTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(FunctionTypeBitfields) <= 8,
+ "FunctionTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(ObjCObjectTypeBitfields) <= 8,
+ "ObjCObjectTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(ReferenceTypeBitfields) <= 8,
+ "ReferenceTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(TypeWithKeywordBitfields) <= 8,
+ "TypeWithKeywordBitfields is larger than 8 bytes!");
+ static_assert(sizeof(ElaboratedTypeBitfields) <= 8,
+ "ElaboratedTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(VectorTypeBitfields) <= 8,
+ "VectorTypeBitfields is larger than 8 bytes!");
+ static_assert(sizeof(SubstTemplateTypeParmPackTypeBitfields) <= 8,
+ "SubstTemplateTypeParmPackTypeBitfields is larger"
+ " than 8 bytes!");
+ static_assert(sizeof(TemplateSpecializationTypeBitfields) <= 8,
+ "TemplateSpecializationTypeBitfields is larger"
+ " than 8 bytes!");
+ static_assert(sizeof(DependentTemplateSpecializationTypeBitfields) <= 8,
+ "DependentTemplateSpecializationTypeBitfields is larger"
+ " than 8 bytes!");
+ static_assert(sizeof(PackExpansionTypeBitfields) <= 8,
+ "PackExpansionTypeBitfields is larger than 8 bytes");
private:
template <class T> friend class TypePropertyCache;
More information about the svn-src-all
mailing list