Return dgs.alc on success
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Jan 2010 00:24:52 +0000 (00:24 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Jan 2010 00:24:52 +0000 (00:24 +0000)
libiberty/

2010-01-09  Ian Lance Taylor  <iant@google.com>

PR other/42230
* cp-demangle.c (d_demangle): Return dgs.alc on success.

libstdc++-v3/

2010-01-09  H.J. Lu  <hongjiu.lu@intel.com>

PR other/42230
* testsuite/abi/pr42230.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155785 138bc75d-0d04-0410-961f-82ee72b054a4

libiberty/ChangeLog
libiberty/cp-demangle.c
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/abi/pr42230.cc [new file with mode: 0644]

index c3d8f19..effb327 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-09  Ian Lance Taylor  <iant@google.com>
+
+       PR other/42230
+       * cp-demangle.c (d_demangle): Return dgs.alc on success.
+
 2010-01-04  Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
 
        PR target/42316
index 43cf34a..d37c90e 100644 (file)
@@ -4777,7 +4777,7 @@ d_demangle (const char *mangled, int options, size_t *palc)
       return NULL;
     }
 
-  *palc = dgs.allocation_failure ? 1 : 0;
+  *palc = dgs.allocation_failure ? 1 : dgs.alc;
   return dgs.buf;
 }
 
index a8276a3..e0fe569 100644 (file)
@@ -1,10 +1,15 @@
+2010-01-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR other/42230
+       * testsuite/abi/pr42230.cc: New.
+
 2010-01-09  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/debug/set.h: Revert last change, per DR 1204 [Ready];
        mention the latter in comment.
        * include/debug/unordered_map: Likewise.
-       * include/debug/multiset.h: Likewise.
-       * include/debug/vector: Likewise.
+       * include/debug/multiset.h: Likewise.
+       * include/debug/vector: Likewise.
        * include/debug/unordered_set: Likewise.
        * include/debug/deque: Likewise.
        * include/debug/map.h: Likewise.
diff --git a/libstdc++-v3/testsuite/abi/pr42230.cc b/libstdc++-v3/testsuite/abi/pr42230.cc
new file mode 100644 (file)
index 0000000..2a33899
--- /dev/null
@@ -0,0 +1,16 @@
+// { dg-do run }
+
+#include <cxxabi.h>
+#include <cassert>
+#include <cstddef>
+
+int main()
+{
+  std::size_t length = 0;
+  int cc;
+
+  char* ret = abi::__cxa_demangle("e", 0, &length, &cc);
+
+  assert( (cc < 0 && !ret) || (ret && length) );
+  return 0;
+}