1lyasm created this revision.
1lyasm added a reviewer: tbaeder.
Herald added a project: All.
1lyasm requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Fix https://github.com/llvm/llvm-project/issues/61518 by adding check for 
_Complex


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D146582

Files:
  clang/lib/Sema/SemaInit.cpp


Index: clang/lib/Sema/SemaInit.cpp
===================================================================
--- clang/lib/Sema/SemaInit.cpp
+++ clang/lib/Sema/SemaInit.cpp
@@ -1252,6 +1252,10 @@
 
       unsigned DK = ExtraInitsIsError ? diag::err_excess_initializers
                                       : diag::ext_excess_initializers;
+      if (T->isAnyComplexType() && Index < IList->getNumInits() - 1)
+       // To highlight third instead of second element of init list when
+       // it is too large for _Complex type.
+       ++Index;
       SemaRef.Diag(IList->getInit(Index)->getBeginLoc(), DK)
           << initKind << IList->getInit(Index)->getSourceRange();
     }


Index: clang/lib/Sema/SemaInit.cpp
===================================================================
--- clang/lib/Sema/SemaInit.cpp
+++ clang/lib/Sema/SemaInit.cpp
@@ -1252,6 +1252,10 @@
 
       unsigned DK = ExtraInitsIsError ? diag::err_excess_initializers
                                       : diag::ext_excess_initializers;
+      if (T->isAnyComplexType() && Index < IList->getNumInits() - 1)
+	// To highlight third instead of second element of init list when
+	// it is too large for _Complex type.
+	++Index;
       SemaRef.Diag(IList->getInit(Index)->getBeginLoc(), DK)
           << initKind << IList->getInit(Index)->getSourceRange();
     }
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to