tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Mis-parse in some situations involving a function poi


From: Michael Matz
Subject: Re: [Tinycc-devel] Mis-parse in some situations involving a function pointer with attributes (breaks SQLite build)
Date: Sat, 28 Jul 2018 19:00:33 +0200 (CEST)
User-agent: Alpine 2.20 (LSU 67 2015-01-07)

Hello,

On Sun, 22 Jul 2018, Jonathan Newman wrote:

Hi;I happened across this issue while trying to build SQLite. I've attached
a test case. To summarise:
* Start off with a function pointer, correctly assigned to a function that
has attributes, but cast to a void* (or indeed anything except the correct
function pointer type)
* Cast this void* to the correct function pointer type, and call it
* Observe that one cast+call syntax works correctly, and another results in
a misparse:
* tcc thinks the type of the entire expression (cast+call) is a pointer,
instead of the correct return type of the called function (here, an
integer).
* gcc happily accepts both syntaxes
* This breaks compilation of the sqlite.c amalgamation, at least on 32-bit
windows

Thanks for report and testcase; reproducable on linux. The parser prematurely concluded that '__attribute__((foo)) *' can start a type (while '*' cannot). Fixed in mob.


Ciao,
Michael.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]