From ab132de5f11e414974cdc0c4b8d85a19792b2e47 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 19 Sep 2011 13:49:43 +0200 Subject: Use common lookup function instead of duplicating code --- odb/pragma.cxx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'odb/pragma.cxx') diff --git a/odb/pragma.cxx b/odb/pragma.cxx index 76e2968..e41792a 100644 --- a/odb/pragma.cxx +++ b/odb/pragma.cxx @@ -213,8 +213,23 @@ resolve_scoped_name (tree& token, cxx_pragma_lexer lex; cpp_ttype ptt; // Not used. string st (lex.start (token, type)); - return lookup::resolve_scoped_name ( - st, type, ptt, lex, current_scope (), name, is_type); + + tree decl ( + lookup::resolve_scoped_name ( + st, type, ptt, lex, current_scope (), name, is_type)); + + // Get the actual type if this is a TYPE_DECL. + // + if (is_type) + { + if (TREE_CODE (decl) == TYPE_DECL) + decl = TREE_TYPE (decl); + + if (TYPE_P (decl)) // Can be a template. + decl = TYPE_MAIN_VARIANT (decl); + } + + return decl; } catch (lookup::invalid_name const&) { -- cgit v1.1