From e53f51b89d482863280dad607cc2269910cc9946 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Mon, 7 Mar 2022 22:35:10 +0000 Subject: [PATCH] Add missing symtab for functions added by using declarations Fixes fully qualified names for functions added by using declarations: - Error messages show fully qualified names in Lua - Overload warning messages show fully qualified names - Error messages calling dispatch functions for handling overloaded methods in OCaml, Python and Tcl --- .../test-suite/errors/cpp_using_declaration_overload.stderr | 2 +- Source/Modules/typepass.cxx | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Examples/test-suite/errors/cpp_using_declaration_overload.stderr b/Examples/test-suite/errors/cpp_using_declaration_overload.stderr index a6d4ea6d8..a5118a739 100644 --- a/Examples/test-suite/errors/cpp_using_declaration_overload.stderr +++ b/Examples/test-suite/errors/cpp_using_declaration_overload.stderr @@ -1,2 +1,2 @@ cpp_using_declaration_overload.i:7: Warning 512: Overloaded method Derived::m(bool) const ignored, -cpp_using_declaration_overload.i:8: Warning 512: using non-const method m(bool) instead. +cpp_using_declaration_overload.i:8: Warning 512: using non-const method Derived::m(bool) instead. diff --git a/Source/Modules/typepass.cxx b/Source/Modules/typepass.cxx index 658f2e79c..e1c3753ce 100644 --- a/Source/Modules/typepass.cxx +++ b/Source/Modules/typepass.cxx @@ -1093,6 +1093,9 @@ class TypePass:private Dispatcher { Setattr(nn, "access", Getattr(n, "access")); if (!Getattr(nn, "sym:name")) Setattr(nn, "sym:name", symname); + Symtab *st = Getattr(n, "sym:symtab"); + assert(st); + Setattr(nn, "sym:symtab", st); if (!GetFlag(nn, "feature:ignore")) { ParmList *parms = CopyParmList(Getattr(c, "parms"));