mirror of
https://github.com/frida/tinycc
synced 2025-01-28 22:15:21 +03:00
tccpp: fix token pasting ##
This patch takes advantage of new function tcc_open_bf from previous commit.
This commit is contained in:
parent
e97bf88bad
commit
44e84bb22a
8
tccpp.c
8
tccpp.c
@ -2776,7 +2776,6 @@ static inline int *macro_twosharps(const int *macro_str)
|
||||
CValue cval;
|
||||
TokenString macro_str1;
|
||||
CString cstr;
|
||||
char *p;
|
||||
int n;
|
||||
|
||||
/* we search the first '##' */
|
||||
@ -2809,18 +2808,17 @@ static inline int *macro_twosharps(const int *macro_str)
|
||||
cstr_cat(&cstr, get_tok_str(t, &cval));
|
||||
cstr_ccat(&cstr, '\0');
|
||||
|
||||
p = file->buf_ptr;
|
||||
file->buf_ptr = cstr.data;
|
||||
tcc_open_bf(tcc_state, "<paste>", cstr.size);
|
||||
memcpy(file->buffer, cstr.data, cstr.size);
|
||||
for (;;) {
|
||||
next_nomacro1();
|
||||
if (0 == *file->buf_ptr)
|
||||
break;
|
||||
tok_str_add2(¯o_str1, tok, &tokc);
|
||||
|
||||
warning("pasting \"%.*s\" and \"%s\" does not give a valid preprocessing token",
|
||||
n, cstr.data, (char*)cstr.data + n);
|
||||
}
|
||||
file->buf_ptr = p;
|
||||
tcc_close();
|
||||
cstr_reset(&cstr);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user