Re: Compilation using clang

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Donald,

On 09:57 Fri 10 Jan, Donald Carr wrote:
> Top of the morning,
>
> qtconnectivity currently contains a kludge which is required due to
> the use of the GCC typeof extension in bluetooth.h which is breaking
> with Clang compilation against the cxx11 spec.

Another kludge that I have seen is putting a
"#define typeof(x) __tupeof__(x)" before including bluetooth.h.

>
> The kludge in question involves molesting the standard (eg -std=cxx11)
> specified to the compiler (explicitly away from cxx11 toward g++0x)
> and hence I am hoping to be able to murder its intrusive self. I am
> not entirely clear on the nuances though:
>
> This is the offending section:
>
> #define bt_get_unaligned(ptr)                   \
> ({                                              \
>         struct __attribute__((packed)) {        \
>                 typeof(*(ptr)) __v;         \
>         } *__p = (typeof(__p)) (ptr);               \
>         __p->__v;                               \
> })
>
> #define bt_put_unaligned(val, ptr)              \
> do {                                            \
>         struct __attribute__((packed)) {        \
>                 typeof(*(ptr)) __v;         \
>         } *__p = (typeof(__p)) (ptr);               \
>         __p->__v = (val);                       \
> } while(0)
>
> and changing typeof to __typeof__ has been verified to succeed in the
> stated circumstance. I don't know whether this is the ideal solution,
> or whether decltype or so other designator would be a closer/better
> match.

I would vote for changing it to __typeof__.

>
> Any feedback would be greatly appreciated, I am using this change
> locally and I think it could be of broader use to people.

Please send a patch and let's see what others think.

>
> Yours sincerely,
> Donald Carr
>
>
> --
> -------------------------------
>  °v°  Donald Carr
> /(_)\ Vaguely Professional Penguin lover
>  ^ ^
>
> Cave canem, te necet lingendo
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


Cheers,
--
Vinicius
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux