tree 4595bf24728fc277520e55bb951ff88e363ae1cd
parent 8e67d8fdf3a31b42f52ec12d995490f866b4449b
author Younan Zhang <zyn7109@gmail.com> 1744871672 +0800
committer GitHub <noreply@github.com> 1744871672 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoAKD4CRC1aQ7uu5UhlAAAus8QAKoJ57ASepAe6dQV9RzkHHMo
 1zTCL4ZMQZyNAaBhIWu93ITAH0ljnmRRGHt03oM0NCXXof3ig8PflaMZRU15uGbm
 xzoLBic+1m3x8poGcGq/YUPjDK+Ea4MSVuJ6CDs1ykko0VO3Ne8MRIX5838SQimo
 aG4dqv1Eu0+dHTx9IyotXk3nAbUcbQQ9/aE7rGgsq4R8nvgqpQ9e9qKMHygyBiJA
 4fZcCY/HVIzNW+26UPtuo7YF8j7yc4wF2jEeDSur/l3HXEZfpoWlR0Pr1hE8aX9E
 /FVFg7839zcH2Y6bvBcMr+A0QS/+u1Ze59G5fPFvYCRy1vL+NGmmzvx+oz+AQpoM
 xJ6qtt2Livp9q9D8XK8J7Px1VbEXXfas9r8OebdrYKX3p2tiDhqvceybPChTLJHq
 R4nlTnuSY/95yM4MTCY934pEQOg2KDmE8G8AQX3SOoCrkFnHiQZkwM+chtOc9KT+
 HOY5XxnimrczRN2j1WsWJBhlkfBWb1Mf3FszLlWauKykEo6uvJIeCxyrvuNqy0gD
 NcFHqZW+1XPve24SzjSekv5I4sZy04W1jwZ4cP9mN2UE+icRPaZPw6dMpHY4eT6l
 9fXigdNbtF7802UpJ/dD5B7wZdd4qyl4w8H+sneQ+ZUaUoAlGsYuYTJWiZ93BK6A
 JipowyB5JdjzLrkaKf2u
 =EVfT
 -----END PGP SIGNATURE-----
 

Reapply "[Clang] Fix dependent local class instantiation bugs" (#135914)

This reapplies #134038

Since the last patch, this fixes a null pointer dereference where the
TSI of the destructor wasn't properly propagated into the
DeclarationNameInfo. We now construct a LocInfoType for dependent cases,
as done elsewhere in getDestructorName, such that GetTypeFromParser can
correctly obtain the TSI.

---

This patch fixes two long-standing bugs that prevent Clang from
instantiating local class members inside a dependent context. These bugs
were introduced in commits
https://github.com/llvm/llvm-project/commit/21eb1af469c3257606aec2270d544e0e8ecf77b2
and
https://github.com/llvm/llvm-project/commit/919df9d75ac2a721a8072327c803f34486884571.


https://github.com/llvm/llvm-project/commit/21eb1af469c3257606aec2270d544e0e8ecf77b2
introduced a concept called eligible methods such that it did an attempt
to skip past ineligible method instantiation when instantiating class
members. Unfortunately, this broke the instantiation chain for local
classes - getTemplateInstantiationPattern() would fail to find the
correct definition pattern if the class was defined within a partially
transformed dependent context.


https://github.com/llvm/llvm-project/commit/919df9d75ac2a721a8072327c803f34486884571
introduced a separate issue by incorrectly copying the
DeclarationNameInfo during function definition instantiation from the
template pattern, even though that DNI might contain a transformed
TypeSourceInfo. Since that TSI was already updated when the declaration
was instantiated, this led to inconsistencies. As a result, the final
instantiated function could lose track of the transformed declarations,
hence we crash: https://compiler-explorer.com/z/vjvoG76Tf.

This PR corrects them by

1. Removing the bypass logic for method instantiation. The eligible flag
is independent of instantiation and can be updated properly afterward,
so skipping instantiation is unnecessary.

2. Carefully handling TypeSourceInfo by creating a new instance that
preserves the pattern's source location while using the already
transformed type.