[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