https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109516

Yann Droneaud <yann at droneaud dot fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |yann at droneaud dot fr

--- Comment #4 from Yann Droneaud <yann at droneaud dot fr> ---
(In reply to Andrew Pinski from comment #1)
> 
> Basically GCC decided that the type of the bitfield uint48 has a type of
> unsigned:48 and since it is larger size than int, it does not get promoted
> to int and in this cases gets passed to the variadic function as that type.

I wouldn't have expected bitfield type to be "visible" outside of its
structure.  

And I failed to comprehend how unsigned long int:48 can be passed to a variadic
function without being promoted to plain unsigned long int ... 

Anyway, I will have to add a cast to silence the warning.

> While clang decided that the type is still unsigned long long.

AFAICT, there's no unsigned long long involved in my example.

Reply via email to