|
|
@@ -1777,6 +1777,16 @@ get_function(CPPInstance *function, string description,
|
|
|
ifunction->_flags |= InterrogateFunction::F_operator_typecast;
|
|
|
}
|
|
|
|
|
|
+ if (ftype->_flags & CPPFunctionType::F_constructor) {
|
|
|
+ // This is a constructor.
|
|
|
+ ifunction->_flags |= InterrogateFunction::F_constructor;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ftype->_flags & CPPFunctionType::F_destructor) {
|
|
|
+ // This is a destructor.
|
|
|
+ ifunction->_flags |= InterrogateFunction::F_destructor;
|
|
|
+ }
|
|
|
+
|
|
|
if (function->_storage_class & CPPInstance::SC_virtual) {
|
|
|
// This is a virtual function.
|
|
|
ifunction->_flags |= InterrogateFunction::F_virtual;
|
|
|
@@ -2749,7 +2759,8 @@ define_struct_type(InterrogateType &itype, CPPStructType *cpptype,
|
|
|
function->_storage_class |= CPPInstance::SC_inline | CPPInstance::SC_defaulted;
|
|
|
function->_vis = V_published;
|
|
|
|
|
|
- FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(), 0);
|
|
|
+ FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(),
|
|
|
+ InterrogateFunction::F_constructor);
|
|
|
if (find(itype._constructors.begin(), itype._constructors.end(),
|
|
|
index) == itype._constructors.end()) {
|
|
|
itype._constructors.push_back(index);
|
|
|
@@ -2775,7 +2786,8 @@ define_struct_type(InterrogateType &itype, CPPStructType *cpptype,
|
|
|
function->_storage_class |= CPPInstance::SC_inline | CPPInstance::SC_defaulted;
|
|
|
function->_vis = V_published;
|
|
|
|
|
|
- FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(), 0);
|
|
|
+ FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(),
|
|
|
+ InterrogateFunction::F_constructor);
|
|
|
if (find(itype._constructors.begin(), itype._constructors.end(),
|
|
|
index) == itype._constructors.end()) {
|
|
|
itype._constructors.push_back(index);
|
|
|
@@ -2816,7 +2828,7 @@ define_struct_type(InterrogateType &itype, CPPStructType *cpptype,
|
|
|
|
|
|
itype._destructor = get_function(function, "",
|
|
|
cpptype, cpptype->get_scope(),
|
|
|
- 0);
|
|
|
+ InterrogateFunction::F_destructor);
|
|
|
itype._flags |= InterrogateType::F_implicit_destructor;
|
|
|
}
|
|
|
}
|