tree caeeaecee8d892e8f43d314c51b0796c03516662
parent c8121b99a99fe1785add732aa062039b7c5fdd32
author Kazu Hirata <kazu@google.com> 1744733419 -0700
committer GitHub <noreply@github.com> 1744733419 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn/oTrCRC1aQ7uu5UhlAAAZfYQACYrMBE5ZwFz1t++mCr3zJ+6
 axF2w8e8HyYKRE1qZaSPeUudm4p2BHREUEeEESAoxYMQ62mrZKTgxofoLUL5dDuW
 tDgzynVd0GB0gpqRbi6JWOGkZCZMPb4cLkyLHmKVoY0h3GifxgwEBjMrWy4o6HLi
 CxbgETOyGWrYMRCAu877pVTrKRAumO/gyep8tSEcZY+Mp5bTh2DSjGlIWdfyAjXG
 ReMLG4Yq8Lc4m7XFKnUbaUFbkZRQ2A7WHlP+xh4j69eijHugPxa31pOv6uNA62L6
 YwpuWWzCw5xnaUTrsngw8dIn9v2zMnc26LP4+f7DdetlnhF2T1SRsnclTI/CPFqB
 9/N583xXVRymvpPiZ6pdtGvsubRwOrEbCkxf2LN5fe3n1HqQPDODo6OiR4VBdmWT
 HCRVXhFyyNfuWcHNKzQn9+GWMB952dvnXaouj3P39OTg3KDPvzVsM9GN81H6WtTH
 9I4zLripLoFU8uNS19dF7ljLNnF3LNSiyOGPAdrAiOlze8D1lf9sulOyE9HsyY/c
 zjtMvb/KnOF27D+AOKSX66kICKmw9nVGw5raSHxVsnups5WkGiD7fxOWVrRbNBMY
 YIW5NH3m/FA1MbD1PoktzMON7dcETZsA0tXP9uDm3JSzBD5xMDM2FN0ufPvw+aNH
 lFVOKakkQZ+Ma+4vtJ48
 =KNBf
 -----END PGP SIGNATURE-----
 

[mlir] Migrate away from PointerUnion::dyn_cast (NFC) (#135770)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we have a call to dyn_cast earlier in the function, implying
that attrOrProp is nonnull.