mirror of
https://github.com/radareorg/radare2.git
synced 2024-10-07 10:33:30 +00:00
Sync swift demangler syntax with Apple one and force trylib=0 in r2r.c
This commit is contained in:
parent
f427fc77cd
commit
6969ee42ee
@ -333,6 +333,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
atexit (r2r_subprocess_fini);
|
||||
|
||||
r_sys_setenv ("RABIN2_TRYLIB", "0");
|
||||
r_sys_setenv ("TZ", "UTC");
|
||||
ut64 time_start = r_time_now_mono ();
|
||||
R2RState state = {{0}};
|
||||
|
@ -21,7 +21,7 @@ struct Type {
|
||||
static struct Type types[] = {
|
||||
/* basic types */
|
||||
{ "Sb", "Bool" },
|
||||
{ "SS", "String" },
|
||||
{ "SS", "Swift.String" },
|
||||
{ "FS", "String" },
|
||||
{ "GV", "mutableAddressor" }, // C_ARGC
|
||||
{ "Ss", "generic" }, // C_ARGC
|
||||
@ -36,7 +36,6 @@ static struct Type types[] = {
|
||||
{ "SQ", "ImplicitlyUnwrappedOptional" },
|
||||
{ "Sc", "UnicodeScalar" },
|
||||
{ "Sd", "Double" },
|
||||
{ "SS", "String" }, // Swift.String
|
||||
/* builtin */
|
||||
{ "Bi1", "Builtin.Int1" },
|
||||
{ "Bp", "Builtin.RawPointer" },
|
||||
@ -276,8 +275,8 @@ R_API char *r_bin_demangle_swift(const char *s, bool syscmd, bool trylib) {
|
||||
|
||||
// _TF or __TW
|
||||
if (IS_DIGIT (*p) || *p == 'v' || *p == 'I' || *p == 'o' || *p == 'T' || *p == 'V' || *p == 'M' || *p == 'C' || *p == 'F' || *p == 'W') {
|
||||
if (!strncmp (p+1, "SS", 2)) {
|
||||
strcat (out, "Swift.String.init (");
|
||||
if (!strncmp (p + 1, "SS", 2)) {
|
||||
strcat (out, "Swift.String.init(");
|
||||
p += 3;
|
||||
}
|
||||
if (!strncmp (p, "vdv", 3)) {
|
||||
@ -422,7 +421,6 @@ R_API char *r_bin_demangle_swift(const char *s, bool syscmd, bool trylib) {
|
||||
if (attr) {
|
||||
strcat (out, attr);
|
||||
}
|
||||
//p = q + 7;
|
||||
q = p = q + 1;
|
||||
attr = "";
|
||||
break;
|
||||
@ -584,13 +582,12 @@ R_API char *r_bin_demangle_swift(const char *s, bool syscmd, bool trylib) {
|
||||
p = outstr;
|
||||
for (;;) {
|
||||
p = strstr (p, ")(");
|
||||
if (p) {
|
||||
p[0] = '_';
|
||||
p[1] = '_';
|
||||
p+=2;
|
||||
} else {
|
||||
if (!p) {
|
||||
break;
|
||||
}
|
||||
p[0] = '_';
|
||||
p[1] = '_';
|
||||
p += 2;
|
||||
}
|
||||
return outstr;
|
||||
#endif
|
||||
|
@ -1495,7 +1495,7 @@ NAME=iD
|
||||
FILE=bins/elf/libmagic.so
|
||||
CMDS=iD swift _TFSSCfT21_builtinStringLiteralBp8byteSizeBw7isASCIIBi1__SS
|
||||
EXPECT=<<EOF
|
||||
Swift.String.init (_builtinStringLiteral: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1) -> String
|
||||
Swift.String.init(_builtinStringLiteral: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1) -> Swift.String
|
||||
EOF
|
||||
RUN
|
||||
|
||||
|
@ -11,6 +11,6 @@ FILE=bins/elf/analysis/hello-swift
|
||||
ARGS=-e bin.demangle.trylib=false
|
||||
CMDS=isq~0x004009e0
|
||||
EXPECT=<<EOF
|
||||
0x004009e0 16 Swift.String.init (_builtinStringLiteral: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1) -> String
|
||||
0x004009e0 16 Swift.String.init(_builtinStringLiteral: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1) -> Swift.String
|
||||
EOF
|
||||
RUN
|
||||
|
@ -879,7 +879,7 @@ NAME=rabin2 -D swift
|
||||
FILE=bins/elf/libc.so.0
|
||||
CMDS=!rabin2 -D swift _TFSSCfT21_builtinStringLiteralBp8byteSizeBw7isASCIIBi1__SS
|
||||
EXPECT=<<EOF
|
||||
Swift.String.init (_builtinStringLiteral: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1) -> String
|
||||
Swift.String.init(_builtinStringLiteral: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1) -> Swift.String
|
||||
EOF
|
||||
RUN
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user