diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-08-31 15:47:28 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-08-31 15:47:28 +0200 |
commit | 7e29dc5b25177beb7d96099643a4f7e057ebe8e5 (patch) | |
tree | bc0f1103a915aa6422367fa105039227c90509e3 | |
parent | c0957cfe1c73ecb6c96314e45e7d29b4199b20d6 (diff) |
Issue better diagnostics for virtual member without name
-rw-r--r-- | odb/pragma.cxx | 17 |
1 files changed, 16 insertions, 1 deletions
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); */ } |