<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Sure...I missed the -checker-cfref flag on the command line (should have looked more closely).<div><br></div><div>Sorry for the confusion,</div><div><br></div><div>snaroff</div><div><br><div><div>On Jan 7, 2009, at 1:50 PM, Ted Kremenek wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div bgcolor="#FFFFFF"><div>The assertion failure is in the static analyzer, which is why I asked Cristian to file a new Bugzilla report.  If Clang doesn't reject code with designated initializers then the static analyzer should gracefully fail when it encounters them instead of crash.<br></div><div><br>On Jan 7, 2009, at 9:34 AM, steve naroff <<a href="mailto:snaroff@apple.com">snaroff@apple.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div>Known issue...clang doesn't support initializer lists that use designators (.ref notation below).<div><br></div><div>The code generator is suppose to issue a diagnostic I believe. Daniel?</div><div><br></div><div>snaroff</div><div><br><div><div>On Jan 7, 2009, at 12:27 PM, Cristian Draghici wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Is this a known issue?</div><div><div><div><br></div><div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">cristi:tmp diciu$ cat test.c</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br> </span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">struct v</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">{</span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">   </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">unsigned int m;</span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">        </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">void * ref;</span><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">    </span></span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">    </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">int z;</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">};</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">int main()</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">{</span></div><div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;"> </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">short buf[1];</span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">  </span></span></div><div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">     </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">buf[0] = 66;</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">     </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">struct v st2 = { </span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">         </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">.ref = buf</span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">             </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">};</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">       </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">st2.m = 10;</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">      </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">short * u = (short *)st2.ref;</span></div> <div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">  </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">printf("%d\n", *u);</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><span class="Apple-tab-span" style="white-space: pre; "><span class="Apple-style-span" style="font-family: 'courier new', monospace;">    </span></span><span class="Apple-style-span" style="font-family: 'courier new', monospace;">return 0;</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">}</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><br> </div></div><div> <div><br></div><div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">cristi:tmp diciu$ ~/Downloads/checker-137/clang -x c test.c   -checker-cfref</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">test.c:16:10: warning: incompatible pointer to integer conversion initializing 'short [1]', expected 'unsigned int'</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">                .ref = buf</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">                       ^~~</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">ANALYZE: test.c main</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">Assertion failed: (T->isPointerType()), function VisitCast, file GRExprEngine.cpp, line 1738.</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">0   clang             0x00a84582 std::vector<llvm::sys::Path, std::allocator<llvm::sys::Path> >::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::sys::Path*, std::vector<llvm::sys::Path, std::allocator<llvm::sys::Path> > >, llvm::sys::Path const&) + 7746</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">1   libSystem.B.dylib 0x96edd2bb _sigtramp + 43</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">2   libSystem.B.dylib 0xffffffff _sigtramp + 1762798959</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">3   libSystem.B.dylib 0x96f5123a raise + 26</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">4   libSystem.B.dylib 0x96f5d679 abort + 73</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">5   libSystem.B.dylib 0x96f523db __assert_rtn + 101</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">6   clang             0x00311d21 clang::CFGBlock::operator[](unsigned long) const + 77345</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">7   clang             0x00309458 clang::CFGBlock::operator[](unsigned long) const + 42328</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">8   clang             0x0030a5a4 clang::CFGBlock::operator[](unsigned long) const + 46756</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">9   clang             0x00308f6a clang::CFGBlock::operator[](unsigned long) const + 41066</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">10  clang             0x00314140 clang::CFGBlock::operator[](unsigned long) const + 86592</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">11  clang             0x0031a741 clang::GRCoreEngine<clang::GRExprEngine>::ProcessStmt(clang::Stmt*, clang::GRStmtNodeBuilderImpl&) + 97</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">12  clang             0x002fe386 llvm::ImutAVLFactory<llvm::ImutKeyValueInfo<unsigned int, unsigned int> >::Add_internal(std::pair<unsigned int, unsigned int> const&, llvm::ImutAVLTree<llvm::ImutKeyValueInfo<unsigned int, unsigned int> >*) + 9398</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">13  clang             0x002fe598 llvm::ImutAVLFactory<llvm::ImutKeyValueInfo<unsigned int, unsigned int> >::Add_internal(std::pair<unsigned int, unsigned int> const&, llvm::ImutAVLTree<llvm::ImutKeyValueInfo<unsigned int, unsigned int> >*) + 9928</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">14  clang             0x00008d7c llvm::cast_retty<clang::CXXRecordType, clang::Type*>::ret_type llvm::cast<clang::CXXRecordType, clang::Type*>(clang::Type* const&) + 9836</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">15  clang             0x00008638 llvm::cast_retty<clang::CXXRecordType, clang::Type*>::ret_type llvm::cast<clang::CXXRecordType, clang::Type*>(clang::Type* const&) + 7976</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">16  clang             0x00008be9 llvm::cast_retty<clang::CXXRecordType, clang::Type*>::ret_type llvm::cast<clang::CXXRecordType, clang::Type*>(clang::Type* const&) + 9433</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">17  clang             0x00356d3b clang::OverloadedFunctionDecl::getDeclContext() + 587</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">18  clang             0x000479f2 clang::TokenRewriter::AddTokenAfter(std::_List_const_iterator<clang::Token>, char const*) + 5586</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">19  clang             0x0004ab34 clang::TokenRewriter::AddTokenAfter(std::_List_const_iterator<clang::Token>, char const*) + 18196</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">20  clang             0x00001936 _mh_execute_header + 2358</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;">Abort trap</span></div> <div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace;"><br></span></div><div> <br></div><div><div><br></div></div></div></div></div></div> _______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu"></a><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br></blockquote></div><br></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>cfe-dev mailing list</span><br><span><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a></span><br><span><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a></span><br></div></blockquote></div></blockquote></div><br></div></body></html>