[clang] Properly print unnamed members in diagnostics
Use member's type when printing.
This also fixes a bug in warning diagnostic for out of order
initialization with designated initializers so it points to a valid
source location when an anonymous member is being initialized.
Fixes https://github.com/llvm/llvm-project/issues/63759
Reviewed By: aaron.ballman, shafik
Differential Revision: https://reviews.llvm.org/D158526
diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h
index f6e38e5..a439005 100644
--- a/clang/include/clang/AST/Decl.h
+++ b/clang/include/clang/AST/Decl.h
@@ -3182,6 +3182,8 @@
// Implement isa/cast/dyncast/etc.
static bool classof(const Decl *D) { return classofKind(D->getKind()); }
static bool classofKind(Kind K) { return K >= firstField && K <= lastField; }
+
+ void printName(raw_ostream &OS, const PrintingPolicy &Policy) const override;
};
/// An instance of this object exists for each enum constant