<div dir="ltr">Friendly ping.<div><br></div><div style>Thanks,</div><div style>--Serge</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/6 Serge Pavlov <span dir="ltr"><<a href="mailto:sepavloff@gmail.com" target="_blank">sepavloff@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  Added testcase.<br>
<br>
Hi doug.gregor,<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D749" target="_blank">http://llvm-reviews.chandlerc.com/D749</a><br>
<br>
CHANGE SINCE LAST DIFF<br>
  <a href="http://llvm-reviews.chandlerc.com/D749?vs=1841&id=1846#toc" target="_blank">http://llvm-reviews.chandlerc.com/D749?vs=1841&id=1846#toc</a><br>
<br>
Files:<br>
  lib/Sema/SemaDecl.cpp<br>
  test/Sema/PR15826.c<br>
<div class="im"><br>
Index: lib/Sema/SemaDecl.cpp<br>
===================================================================<br>
--- lib/Sema/SemaDecl.cpp<br>
+++ lib/Sema/SemaDecl.cpp<br>
@@ -10295,7 +10295,8 @@<br>
     Tag->setTopLevelDeclInObjCContainer();<br>
<br>
   // Notify the consumer that we've defined a tag.<br>
-  Consumer.HandleTagDeclDefinition(Tag);<br>
+  if (!Tag->isInvalidDecl())<br>
+    Consumer.HandleTagDeclDefinition(Tag);<br>
 }<br>
<br>
 void Sema::ActOnObjCContainerFinishDefinition() {<br>
</div>Index: test/Sema/PR15826.c<br>
===================================================================<br>
--- /dev/null<br>
+++ test/Sema/PR15826.c<br>
@@ -0,0 +1,19 @@<br>
+// RUN: %clang_cc1 -verify -emit-obj -ffreestanding %s<br>
+<br>
+/* Testcase for PR15826 - clang hits assert in clang::ASTContext::getASTRecordLayout */<br>
+struct sysctl_req {<br>
+  struct aiocblist *p_aio;<br>
+};<br>
+<br>
+struct sysctl_oid {<br>
+  int (*oid_handler)(struct sysctl_req *req);<br>
+};<br>
+<br>
+static struct sysctl_oid sysctl___kern_features_aio;<br>
+<br>
+static void const *const __set_sysctl_set_sym_sysctl___kern_features_aio<br>
+    __attribute__((__used__)) = &sysctl___kern_features_aio;<br>
+<br>
+struct aiocblist {<br>
+  struct aiocb uaiocb; // expected-error {{field has incomplete type}} expected-note {{forward declaration}}<br>
+};<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Thanks,<br>--Serge<br>
</div>