diff --git a/mlir/lib/Support/TypeID.cpp b/mlir/lib/Support/TypeID.cpp index 3526a0d49cc79..2c6193e78743e 100644 --- a/mlir/lib/Support/TypeID.cpp +++ b/mlir/lib/Support/TypeID.cpp @@ -30,12 +30,14 @@ struct ImplicitTypeIDRegistry { // Perform a heuristic check to see if this type is in an anonymous // namespace. String equality is not valid for anonymous types, so we try to // abort whenever we see them. + // Check all known anonymous-namespace markers unconditionally: + // Clang : "(anonymous namespace)" + // GCC : "{anonymous}" + // MSVC : "anonymous-namespace" #ifndef NDEBUG -#if defined(_MSC_VER) - if (typeName.contains("anonymous-namespace")) { -#else - if (typeName.contains("anonymous namespace")) { -#endif + if (typeName.contains("anonymous namespace") || + typeName.contains("{anonymous}") || + typeName.contains("anonymous-namespace")) { std::string errorStr; { llvm::raw_string_ostream errorOS(errorStr);