diff options
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r-- | gcc/cp/tree.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 9cc767d..219cb39 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1264,10 +1264,15 @@ cxx_printable_name_internal (tree decl, int v, bool translate) if (current_function_decl != NULL_TREE) { - if (uid_ring[ring_counter] == DECL_UID (current_function_decl)) - ring_counter += 1; - if (ring_counter == PRINT_RING_SIZE) - ring_counter = 0; + /* There may be both translated and untranslated versions of the + name cached. */ + for (i = 0; i < 2; i++) + { + if (uid_ring[ring_counter] == DECL_UID (current_function_decl)) + ring_counter += 1; + if (ring_counter == PRINT_RING_SIZE) + ring_counter = 0; + } gcc_assert (uid_ring[ring_counter] != DECL_UID (current_function_decl)); } |