From 979526c9ce7bb79315f0f91fde0668a5ad8536df Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Thu, 18 Jul 2019 16:10:51 +0200 Subject: demangle.h (rust_is_mangled): Move to libiberty/rust-demangle.h. include/ * demangle.h (rust_is_mangled): Move to libiberty/rust-demangle.h. (rust_demangle_sym): Move to libiberty/rust-demangle.h. libiberty/ * cplus-dem.c: Include rust-demangle.h. * rust-demangle.c: Include rust-demangle.h. * rust-demangle.h: New file. From-SVN: r273573 --- libiberty/ChangeLog | 6 ++++++ libiberty/cplus-dem.c | 1 + libiberty/rust-demangle.c | 1 + libiberty/rust-demangle.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 libiberty/rust-demangle.h (limited to 'libiberty') diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index c3daf2ae8c8..af242573a42 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2019-07-18 Eduard-Mihai Burtescu + + * cplus-dem.c: Include rust-demangle.h. + * rust-demangle.c: Include rust-demangle.h. + * rust-demangle.h: New file. + 2019-05-31 Michael Forney * cp-demangle.c: Don't define CP_DYNAMIC_ARRAYS if __STDC_NO_VLA__ diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c index afceed2a1a7..a39e2bf2ed4 100644 --- a/libiberty/cplus-dem.c +++ b/libiberty/cplus-dem.c @@ -52,6 +52,7 @@ void * realloc (); #define CURRENT_DEMANGLING_STYLE options #include "libiberty.h" +#include "rust-demangle.h" enum demangling_styles current_demangling_style = auto_demangling; diff --git a/libiberty/rust-demangle.c b/libiberty/rust-demangle.c index 9b2d2dbe631..2302db45b6f 100644 --- a/libiberty/rust-demangle.c +++ b/libiberty/rust-demangle.c @@ -47,6 +47,7 @@ extern void *memset(void *s, int c, size_t n); #include #include "libiberty.h" +#include "rust-demangle.h" /* Mangled Rust symbols look like this: diff --git a/libiberty/rust-demangle.h b/libiberty/rust-demangle.h new file mode 100644 index 00000000000..abf4c6cde55 --- /dev/null +++ b/libiberty/rust-demangle.h @@ -0,0 +1,45 @@ +/* Internal demangler interface for the Rust programming language. + Copyright (C) 2016-2019 Free Software Foundation, Inc. + Written by David Tolnay (dtolnay@gmail.com). + +This file is part of the libiberty library. +Libiberty is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +In addition to the permissions in the GNU Library General Public +License, the Free Software Foundation gives you unlimited permission +to link the compiled version of this file into combinations with other +programs, and to distribute those combinations without any restriction +coming from the use of this file. (The Library Public License +restrictions do apply in other respects; for example, they cover +modification of the file, and distribution when not linked into a +combined executable.) + +Libiberty is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with libiberty; see the file COPYING.LIB. +If not, see . */ + +/* This file provides some definitions shared by cplus-dem.c and + rust-demangle.c. It should not be included by any other files. */ + +/* Returns non-zero iff MANGLED is a rust mangled symbol. MANGLED must + already have been demangled through cplus_demangle_v3. If this function + returns non-zero then MANGLED can be demangled (in-place) using + RUST_DEMANGLE_SYM. */ +extern int +rust_is_mangled (const char *mangled); + +/* Demangles SYM (in-place) if RUST_IS_MANGLED returned non-zero for SYM. + If RUST_IS_MANGLED returned zero for SYM then RUST_DEMANGLE_SYM might + replace characters that cannot be demangled with '?' and might truncate + SYM. After calling RUST_DEMANGLE_SYM SYM might be shorter, but never + larger. */ +extern void +rust_demangle_sym (char *sym); -- cgit v1.2.3