[PATCH] D94224: [clang][AST] Get rid of an alignment hack in DeclObjC.h [NFCI]
Mikhail Maltsev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 7 05:44:33 PST 2021
miyuki updated this revision to Diff 315113.
miyuki added a comment.
Fixed formatting.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D94224/new/
https://reviews.llvm.org/D94224
Files:
clang/include/clang/AST/DeclObjC.h
clang/lib/AST/DeclObjC.cpp
Index: clang/lib/AST/DeclObjC.cpp
===================================================================
--- clang/lib/AST/DeclObjC.cpp
+++ clang/lib/AST/DeclObjC.cpp
@@ -1461,9 +1461,7 @@
ObjCTypeParamList::ObjCTypeParamList(SourceLocation lAngleLoc,
ArrayRef<ObjCTypeParamDecl *> typeParams,
SourceLocation rAngleLoc)
- : NumParams(typeParams.size()) {
- Brackets.Begin = lAngleLoc.getRawEncoding();
- Brackets.End = rAngleLoc.getRawEncoding();
+ : Brackets(lAngleLoc, rAngleLoc), NumParams(typeParams.size()) {
std::copy(typeParams.begin(), typeParams.end(), begin());
}
Index: clang/include/clang/AST/DeclObjC.h
===================================================================
--- clang/include/clang/AST/DeclObjC.h
+++ clang/include/clang/AST/DeclObjC.h
@@ -656,20 +656,8 @@
/// \endcode
class ObjCTypeParamList final
: private llvm::TrailingObjects<ObjCTypeParamList, ObjCTypeParamDecl *> {
- /// Stores the components of a SourceRange as a POD.
- struct PODSourceRange {
- unsigned Begin;
- unsigned End;
- };
-
- union {
- /// Location of the left and right angle brackets.
- PODSourceRange Brackets;
-
- // Used only for alignment.
- ObjCTypeParamDecl *AlignmentHack;
- };
-
+ /// Location of the left and right angle brackets.
+ alignas(ObjCTypeParamDecl *) SourceRange Brackets;
/// The number of parameters in the list, which are tail-allocated.
unsigned NumParams;
@@ -717,17 +705,11 @@
return *(end() - 1);
}
- SourceLocation getLAngleLoc() const {
- return SourceLocation::getFromRawEncoding(Brackets.Begin);
- }
+ SourceLocation getLAngleLoc() const { return Brackets.getBegin(); }
- SourceLocation getRAngleLoc() const {
- return SourceLocation::getFromRawEncoding(Brackets.End);
- }
+ SourceLocation getRAngleLoc() const { return Brackets.getEnd(); }
- SourceRange getSourceRange() const {
- return SourceRange(getLAngleLoc(), getRAngleLoc());
- }
+ SourceRange getSourceRange() const { return Brackets; }
/// Gather the default set of type arguments to be substituted for
/// these type parameters when dealing with an unspecialized type.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94224.315113.patch
Type: text/x-patch
Size: 2229 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210107/2c6a7d33/attachment.bin>
More information about the cfe-commits
mailing list