From 7e29dc5b25177beb7d96099643a4f7e057ebe8e5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 31 Aug 2012 15:47:28 +0200 Subject: Issue better diagnostics for virtual member without name --- odb/pragma.cxx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'odb/pragma.cxx') diff --git a/odb/pragma.cxx b/odb/pragma.cxx index 4609c4d..5cae6b1 100644 --- a/odb/pragma.cxx +++ b/odb/pragma.cxx @@ -1992,6 +1992,13 @@ handle_pragma (cxx_lexer& l, tt = l.next (tl, &tn); } + else if (p == "virtual") + { + // Stray virtual specifier (i.e., without explicit member name). + // + error (l) << "virtual member declaration requires name" << endl; + return; + } else { error (l) << "unknown db pragma " << p << endl; @@ -2755,7 +2762,8 @@ handle_pragma_qualifier (cxx_lexer& l, string const& p) p == "unordered" || p == "readonly" || p == "transient" || - p == "version") + p == "version" || + p == "virtual") { handle_pragma (l, p, "member", val, declaration (), "", false); return; @@ -3038,6 +3046,12 @@ handle_pragma_db_version (cpp_reader* r) { handle_pragma_qualifier (r, "version"); } + +extern "C" void +handle_pragma_db_virtual (cpp_reader* r) +{ + handle_pragma_qualifier (r, "virtual"); +} */ extern "C" void @@ -3137,6 +3151,7 @@ register_odb_pragmas (void*, void*) c_register_pragma_with_expansion ("db", "readonly", handle_pragma_db_readonly); c_register_pragma_with_expansion ("db", "transient", handle_pragma_db_transient); c_register_pragma_with_expansion ("db", "version", handle_pragma_db_version); + c_register_pragma_with_expansion ("db", "virtual", handle_pragma_db_virtual); */ } -- cgit v1.1