================
@@ -2667,6 +2667,22 @@ void Sema::MergeTypedefNameDecl(Scope *S, 
TypedefNameDecl *New,
       else
         New->setTypeSourceInfo(OldTD->getTypeSourceInfo());
 
+      // An anonymous enum is recognized as a redeclaration only when its 
typedef
+      // name gets merged, at which point two distinct enum types already 
exist.
+      // Retype the new enumerators to the old enum type, matching the typedef
+      // merge above; otherwise the merged typedef and its enumerators disagree
+      // on the type (GH213299).
+      //
+      // FIXME: The global module restriction only limits the impact of this
+      // change; relax it if the issue shows up in other contexts.
+      if (Module *M = OldTag->getOwningModule(); M && M->isGlobalModule())
----------------
ChuanqiXu9 wrote:

Done

https://github.com/llvm/llvm-project/pull/214121
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to