[LLVMdev] C as used/implemented in practice: analysis of responses
David Keaton
dmk at dmk.com
Thu Jul 2 17:43:31 PDT 2015
On 07/02/2015 05:30 PM, Philip Reames wrote:
>
>
> On 07/02/2015 04:44 PM, David Keaton wrote:
>> On 07/02/2015 03:17 AM, Kuperstein, Michael M wrote:
>>> You want to redefine ["won't break the program"], by specifying a new
>>> abstract machine, which is
>>> more conservative than standard C/C++. The proper way to do that would,
>>> I believe, be to work towards setting up a working group within the
>>> relevant committees, and come up with a uniformly accepted definition
>>> for this abstract machine, which could then be implemented (assuming
>>> there is, indeed, wide enough agreement in the implementer community –
>>> something that does not look at all likely) by next-generation
>>> compilers.
>>
>> This work has already been done in Annex L of the C standard,
>> which provides an optional stricter abstract machine. As far as I
>> know, no implementations have attempted to support Annex L yet.
> Do you have a link to the relevant text? I've never heard of this, and
> a quick google search doesn't turn up anything relevant. Wikipedia knows
> about a set of "analyzability features", but that doesn't sounds like
> what you're talking about?
The relevant text is inside the standard, which is for sale. The
cheapest source I know about is this.
http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+9899%3a2011%5b2012%5d
The title of Annex L is Analyzability, because that was the
purpose, but the effect was to define a stricter abstract machine in
which there were no unbounded undefined behaviors except what was
absolutely necessary. That does not address every question in the
questionnaire, but it is a good start, and it has already been
standardized so there is something concrete to implement.
David
More information about the llvm-dev
mailing list