我已经查看了堆栈溢出中的其他条目,但它们合法地“超出”了界限。
在我的代码中,我正在通过一系列嵌套结构:
static inline void * get_resp_ptr(U32 blade_ix, U32 q_id)
{
per_blade_data * bd = bfr_blade_data + blade_ix;
bfr_pendcmd_q_t * pcq = bd->bfrpb_ques + q_id;
response_t * res = pcq->bfrpq_resp;
return (void *)(res + pcq->bfrpq_resp_rdix);
}
“bfrpq_resp”是指向response_t类型的指针。此函数的最后两行都得到错误消息。打败了我....对编译器试图说什么的任何猜测?我很想投入uintptr_t而只是使用算术。 :(
编辑:这不起作用。将pcq-> bfrpq_resp分配给uintptr_t会导致相同的错误消息。仅仅引用该字段就会产生结果。我认为GCC在这里需要一个不同的错误信息。
答案 0 :(得分:1)
可能是因为http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45978,如果您的gcc
版本低于4.7.0
答案 1 :(得分:0)
我自己编码引发的GCC错误。海湾合作委员会指向那条线,但问题是手指被绊倒造成的前一行。谢谢。我不会提交GCC错误,因为4.3.3有点长了。