[cfe-dev] The size of a pointer to function.

Enea Zaffanella zaffanella at cs.unipr.it
Fri Feb 8 01:08:08 PST 2013


On 02/07/2013 09:30 PM, Tim Northover wrote:
>> Hence, the question is the following: are you willing to accept a
>> (hopefully) much less invasive patch that *only* ensures the correctness of
>> the AST info produced by clang for these (strange and otherwise unsupported,
>> but anyway standard compliant) targets?
>
> Even the AST produced can depend rather strongly on the target.
> Through obvious things like preprocessor magic, but also through more
> subtle issues like overload resolution.
>
> Are you imagining some kind of "target" with full driver support in
> Clang but no attempt at CodeGen? Otherwise it's not clear how this
> scheme could work.
>
> Tim.


I am not sure I have fully understood your question.

As a *library*, clang allows for your own tool to define your own 
specific target deriving from TargetInfo (or one of its subclasses) and 
set the appropriate values for its many features, among which we have 
the size and alignment of pointer types. What we ask for is only a 
separation between the two kinds of (object vs function) pointers.
(Side note: clang already supports differently sized (object only) 
pointers via address spaces; to this end, TargetInfo includes a few 
virtual functions that can be overridden; we are already using this 
possibility).

For our own purposes, the thing above will be enough (in other words, we 
have our own "driver" that sets up the target info according to our 
needs). If deemed appropriate by clang developers, we can add options 
controlling these target values in the clang driver too.
However, this would sound a bit contradictory: having a full-blown 
driver option may (wrongly) suggest that full support is provided by the 
whole frontend, including code generation. If this (as hinted by John) 
is not currently among the priorities ...

Enea.




More information about the cfe-dev mailing list