aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2001-03-20 18:22:38 +0000
committerJim Blandy <jimb@codesourcery.com>2001-03-20 18:22:38 +0000
commite61231f1142d606283858b7e168d2b468c662ac5 (patch)
tree318480b948ab2f727b8d6df4cf84af7092e002c2 /include
parentb0ed35899ae041089835beeb35336494bb50f1d8 (diff)
downloadfsf-binutils-gdb-e61231f1142d606283858b7e168d2b468c662ac5.zip
fsf-binutils-gdb-e61231f1142d606283858b7e168d2b468c662ac5.tar.gz
fsf-binutils-gdb-e61231f1142d606283858b7e168d2b468c662ac5.tar.bz2
* libiberty/cp-demangle.c (struct demangling_def): New fields:
is_constructor and is_destructor. (demangling_new): Initialize them. (demangle_ctor_dtor_name): Set them, if we detect a constructor or destructor. (demangle_v3_with_details, is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_dtor): New functions. * include/demangle.h (enum gnu_v3_constructor_kinds, is_gnu_v3_mangled_ctor, enum gnu_v3_destructor_kinds, is_gnu_v3_mangled_dtor): New declarations.
Diffstat (limited to 'include')
-rw-r--r--include/ChangeLog6
-rw-r--r--include/demangle.h26
2 files changed, 32 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index e118fbe..2c5bc85 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,9 @@
+2001-03-20 Jim Blandy <jimb@redhat.com>
+
+ * demangle.h (enum gnu_v3_constructor_kinds,
+ is_gnu_v3_mangled_ctor, enum gnu_v3_destructor_kinds,
+ is_gnu_v3_mangled_dtor): New declarations.
+
2001-03-14 Nick Clifton <nickc@redhat.com>
* ansidecl.h: Fix copyright dates.
diff --git a/include/demangle.h b/include/demangle.h
index 9cb1d96..96f60d7 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -128,4 +128,30 @@ cplus_demangle_v3 PARAMS ((const char* mangled));
extern char*
java_demangle_v3 PARAMS ((const char* mangled));
+
+enum gnu_v3_ctor_kinds {
+ gnu_v3_complete_object_ctor = 1,
+ gnu_v3_base_object_ctor,
+ gnu_v3_complete_object_allocating_ctor
+};
+
+/* Return non-zero iff NAME is the mangled form of a constructor name
+ in the G++ V3 ABI demangling style. Specifically, return an `enum
+ gnu_v3_ctor_kinds' value indicating what kind of constructor
+ it is. */
+extern enum gnu_v3_ctor_kinds is_gnu_v3_mangled_ctor (const char *name);
+
+
+enum gnu_v3_dtor_kinds {
+ gnu_v3_deleting_dtor = 1,
+ gnu_v3_complete_object_dtor,
+ gnu_v3_base_object_dtor
+};
+
+/* Return non-zero iff NAME is the mangled form of a destructor name
+ in the G++ V3 ABI demangling style. Specifically, return an `enum
+ gnu_v3_dtor_kinds' value, indicating what kind of destructor
+ it is. */
+extern enum gnu_v3_dtor_kinds is_gnu_v3_mangled_dtor (const char *name);
+
#endif /* DEMANGLE_H */