[PATCH] D107719: [Clang] Resolve FIXMEs in Types.h
Alf via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 8 13:39:47 PDT 2021
gAlfonso-bit updated this revision to Diff 365044.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107719/new/
https://reviews.llvm.org/D107719
Files:
clang/include/clang/AST/Type.h
clang/lib/AST/Type.cpp
Index: clang/lib/AST/Type.cpp
===================================================================
--- clang/lib/AST/Type.cpp
+++ clang/lib/AST/Type.cpp
@@ -31,6 +31,7 @@
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
+#include "clang/Basic/LangStandard.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Linkage.h"
@@ -2011,9 +2012,10 @@
if (const EnumType *ET = dyn_cast<EnumType>(CanonicalType)) {
// Incomplete enum types are not treated as integer types.
- // FIXME: In C++, enum types are never integer types.
- if (ET->getDecl()->isComplete() && !ET->getDecl()->isScoped())
+ // In C++, enum types are never integer types.
+ if (!isCPlusPlus() && ET->getDecl()->isComplete())
return ET->getDecl()->getIntegerType()->isSignedIntegerType();
+ return false;
}
if (const ExtIntType *IT = dyn_cast<ExtIntType>(CanonicalType))
@@ -2058,9 +2060,10 @@
if (const auto *ET = dyn_cast<EnumType>(CanonicalType)) {
// Incomplete enum types are not treated as integer types.
- // FIXME: In C++, enum types are never integer types.
- if (ET->getDecl()->isComplete() && !ET->getDecl()->isScoped())
+ // In C++, enum types are never integer types.
+ if (!isCPlusPlus() && ET->getDecl()->isComplete())
return ET->getDecl()->getIntegerType()->isUnsignedIntegerType();
+ return false;
}
if (const ExtIntType *IT = dyn_cast<ExtIntType>(CanonicalType))
@@ -2785,7 +2788,6 @@
case DependentTemplateSpecialization:
case ObjCInterface:
case ObjCObject:
- case ObjCObjectPointer: // FIXME: object pointers aren't really specifiers
return true;
default:
return false;
Index: clang/include/clang/AST/Type.h
===================================================================
--- clang/include/clang/AST/Type.h
+++ clang/include/clang/AST/Type.h
@@ -24,6 +24,7 @@
#include "clang/Basic/AttrKinds.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/ExceptionSpecificationType.h"
+#include "clang/Basic/LangStandard.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/PartialDiagnostic.h"
@@ -3450,10 +3451,6 @@
protected:
friend class ASTContext;
- /// The element type of the matrix.
- // FIXME: Appears to be unused? There is also MatrixType::ElementType...
- QualType ElementType;
-
/// Number of rows and columns.
unsigned NumRows;
unsigned NumColumns;
@@ -6989,9 +6986,8 @@
BT->getKind() <= BuiltinType::Int128;
if (const EnumType *ET = dyn_cast<EnumType>(CanonicalType)) {
// Incomplete enum types are not treated as integer types.
- // FIXME: In C++, enum types are never integer types.
- return IsEnumDeclComplete(ET->getDecl()) &&
- !IsEnumDeclScoped(ET->getDecl());
+ // In C++, enum types are never integer types.
+ return !isCPlusPlus() && IsEnumDeclComplete(ET->getDecl());
}
return isExtIntType();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107719.365044.patch
Type: text/x-patch
Size: 3038 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210808/25b9062a/attachment.bin>
More information about the cfe-commits
mailing list