aboutsummaryrefslogtreecommitdiff
path: root/odb/pragma.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-03-21 08:36:21 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-04-23 16:50:56 +0200
commit8d89bf37dd4ef3cb7373e1841ff57a53916fff0d (patch)
tree704b7de0338eba0e008a96a09b6d57e86846d1b1 /odb/pragma.cxx
parent68ff21c56fb287790440208907ad2a851a108f89 (diff)
Polymorphic inheritance support
Diffstat (limited to 'odb/pragma.cxx')
-rw-r--r--odb/pragma.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/odb/pragma.cxx b/odb/pragma.cxx
index 080de98..698551a 100644
--- a/odb/pragma.cxx
+++ b/odb/pragma.cxx
@@ -460,7 +460,8 @@ check_spec_decl_type (tree d,
p == "callback" ||
p == "query" ||
p == "object" ||
- p == "optimistic")
+ p == "optimistic" ||
+ p == "polymorphic")
{
if (tc != RECORD_TYPE)
{
@@ -881,6 +882,18 @@ handle_pragma (cpp_reader* reader,
tt = pragma_lex (&t);
}
+ else if (p == "polymorphic")
+ {
+ // polymorphic
+ //
+
+ // Make sure we've got the correct declaration type.
+ //
+ if (decl != 0 && !check_spec_decl_type (decl, decl_name, p, loc))
+ return;
+
+ tt = pragma_lex (&t);
+ }
else if (p == "callback")
{
// callback (name)