diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-01-23 12:21:49 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-01-23 12:30:06 +0200 |
commit | c67f2b63a9769d8ae3a07f78afd0c7dd2873563a (patch) | |
tree | a38f59861153646bc20be54298b23070ed3c25ad /odb/semantics/class.cxx | |
parent | 465a4467adec94bb8fe996732ea378664fcf5e86 (diff) |
Diagnose lack of default constructor in pointed-to objects
Lack of the default constructor will lead to uncompilable generated code.
Diffstat (limited to 'odb/semantics/class.cxx')
-rw-r--r-- | odb/semantics/class.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/odb/semantics/class.cxx b/odb/semantics/class.cxx index 2d35a17..8c6877b 100644 --- a/odb/semantics/class.cxx +++ b/odb/semantics/class.cxx @@ -24,7 +24,13 @@ namespace semantics bool class_:: default_ctor () const { - return TYPE_HAS_DEFAULT_CONSTRUCTOR (tree_node ()); + tree t (tree_node ()); + + // TYPE_HAS_DEFAULT_CONSTRUCTOR() returns true if we have a + // deleted default ctor. locate_ctor(), on the other hand, + // returns NULL_TREE in this case. + // + return TYPE_HAS_DEFAULT_CONSTRUCTOR (t) && locate_ctor (t) != NULL_TREE; } bool class_:: |