================ @@ -4601,8 +4601,15 @@ SourceRange DesignatedInitExpr::getDesignatorsSourceRange() const { SourceLocation DesignatedInitExpr::getBeginLoc() const { auto *DIE = const_cast<DesignatedInitExpr *>(this); Designator &First = *DIE->getDesignator(0); - if (First.isFieldDesignator()) - return GNUSyntax ? First.getFieldLoc() : First.getDotLoc(); + if (First.isFieldDesignator()) { + for (unsigned int i = 0; i < DIE->size(); i++) { ---------------- alirezamoshtaghi wrote:
I ended up using EXPECT_UNAVAILABLE because it still fails for crashing case. but when I use EXPECT_AVAILABLE, it complains as: Expected equality of these values: true isAvailable(AST, R) Which is: false struct A { struct { int x; }; }; struct B { int y; }; void foo(struct B *b) { struct A a = {.[[x]]=b->y}; } https://github.com/llvm/llvm-project/pull/83369 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits