[cfe-dev] Spurious register spill with volatile function argument
Florian Weimer via cfe-dev
cfe-dev at lists.llvm.org
Mon Mar 28 08:09:55 PDT 2016
* Paul Koning:
>> On Mar 28, 2016, at 8:11 AM, Florian Weimer <fw at deneb.enyo.de> wrote:
>>
>> ...
>> The problem is that “reading” is either not defined, or the existing
>> flatly contradicts existing practice.
>>
>> For example, if p is a pointer to a struct, will the expression &p->m
>> read *p?
>
> Presumably the offset of m is substantially larger than 0? If so, my
> answer would be "it had better not". Does any compiler treat that
> statement as an access to *p ?
As I tried to explain, GCC does, for aliasing purposes. For the
expression p->m, there is an implicit read of *p, asserting that the
static and dynamic types match.
More information about the cfe-dev
mailing list