<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/75984>75984</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
unexpected warning from clang
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
BaoshanPang
</td>
</tr>
</table>
<pre>
Can someone tell me why clang report a warning here? isn't lludump.a a type of "unsigned long long"? Thanks.
#include <stdio.h>
typedef unsigned char u8;
typedef unsigned char u08;
typedef unsigned short u16;
typedef unsigned int u32;
typedef unsigned long long u64;
struct llu_dump_test {
u64 a : 4;
u64 b : 56;
u64 c : 4;
};
int main() {
struct llu_dump_test lludump;
printf("%llu\n", lludump.a);
return 0;
}
bpang@US-BPANG:~$ clang -c e.c
e.c:18:20: warning: format specifies type 'unsigned long long' but the argument has type 'int' [-Wformat]
printf("%llu\n", lludump.a);
~~~~ ^~~~~~~~~
%d
1 warning generated.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUlM-vozYQx_-a4TJKBGMMyYFD8rLprVqprXpcGRjArTHIP7p9l_ztFYQm22j3SfXBmYw-8_WMZ4zyXveWuQJ5BnlJVAzD5Kqzmvyg7Gdl-6Se2vfqTVn008iTZQxsDI6MX4d3bIyyPTqeJxdQ4VflrLY9DuwYxBW1t0BlQGNiG8d5r1BheJ8Zpw6BKNr19BbNZPt1A6Il7tdB2T_9HtILpKdtJ6FtY2LLCOLNh1ZP-wHEp2-ZRbrlDh-6zaAcxgOI84dA-gHhh6W0mBU_RrQNGAX9GHiUh7HIH9h998HFZr2hL8sVfQnsA0K5MbhEoEIQJ3xG3r316pXFi7t5gaG8vBy55DsqbYEOQMdvD_tuMlvzXkRwdtqGbtUgIGlMBPlm1z9vz4YDHV8D0XGIzmL6nxRXo56V7SFPf_tld_58-vknEKcbUL6N2a5B3jd3cjHEKTuAOFG6FLyN3mJ2kxtVQD9zozvN_j5yQOX35q3EOgYMA6NyfRzZBhzUM0TbsDAgz7vf77ogL_8W8v-vAB_rdrvdVgPkp9u2Xhkg2d592eNp9WzZqcDt9jqSthLtURxVwlVWpiKlo8yKZFi9rLKiK8suPdRKcCbTkgpqD7KoG0p0RSmJjLIjiVxmxT7PiqYs0wMd81RyLSBPeVTa7I35a9xPrk-095GrUh4PeWJUzcavHw6itUFL4fKSuGrhd3XsPeSp0T74p0LQwXAVLf89cxO4fdTVuWm89zmJzlRDCLMHcQK6Al17HYZY75tpBLouWtvPbnbTH9wEoOuamge6rtn9EwAA__-OVnU4">