[PATCH] align_value attribute in Clang

Bataev, Alexey a.bataev at hotmail.com
Thu Sep 25 22:26:29 PDT 2014


1. ICC does not create a new type for type with this attribute. All 
types are still the same.
2.

int n __attribute__((aligned(32)));
decltype(&n) - int*.
  

Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team

26.09.2014 4:28, Hal Finkel пишет:
> ----- Original Message -----
>> From: "Richard Smith" <richard at metafoo.co.uk>
>> To: hfinkel at anl.gov, "aaron ballman" <aaron.ballman at gmail.com>, bigcheesegs at gmail.com, richard at metafoo.co.uk, "a
>> bataev" <a.bataev at hotmail.com>
>> Cc: cfe-commits at cs.uiuc.edu
>> Sent: Thursday, September 25, 2014 7:06:33 PM
>> Subject: Re: [PATCH] align_value attribute in Clang
>>
>> I'd like some more information about how ICC treats this attribute.
>> Does it produce a new type? For instance:
> I did a quick experiment with icc (ICC) 14.0.1 20131008 (with -Wall -O3 -pedantic):
>
>>    typedef int *I32 __attribute__((align_value(32)));
>>    typedef int *I64 __attribute__((align_value(64)));
>>
>>    typedef I32 X; typedef I64 X; // ill-formed?
> No diagnostic.
>
>>    template<typename> struct Y;
>>    typedef Y<I32> Z; typedef Y<I64> Z; // ill-formed?
> No diagnostic.
>
>>    extern I32 i32;
>>    I64 i64 = i32; // ill-formed? Is an explicit cast required?
> No diagnostic.
>
>>    I32 i32 = i64; // ill-formed? Is there an implicit conversion that
>>    discards alignment?
> No diagnostic.
>
> Alexey, can you please comment on the specifics?
>
>   -Hal
>
>> ... and if there's an implicit conversion that discards alignment,
>> what is its conversion rank?
>>
>> If I have:
>>
>>    int n __attribute__((aligned(32)));
>>
>> ... then what is `decltype(&n)`? Is it `int*`, or `int*
>> __attribute__((align_value(32)))`?
>>
>> http://reviews.llvm.org/D4635
>>
>>
>>





More information about the cfe-commits mailing list