Hello, Chris<br><div class="gmail_quote"><div><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="gmail_quote">2010/3/20 Chris Lattner <span dir="ltr"><<a href="mailto:clattner@apple.com" target="_blank">clattner@apple.com</a>></span><div class="im">
<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;"><br><div><div><div>On Mar 19, 2010, at 2:40 PM, Louis Gerbarg wrote:</div><br><blockquote type="cite"><span style="border-collapse: separate; font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div style="word-wrap: break-word;"><div><br>What do you mean by "variable sized pointers"?  What does:</div><div><br></div><div>struct  S {void *X; };</div><div><br></div><div>return for sizeof(struct S); ?</div>

</div></blockquote><div><br></div><div>It doesn't, at least not for Intel's EBC compiler. They error out on any sizeof that include a pointer.  A piece of EBC code can run in either a 32 bit or 64 bit environment, and everything in the compiler either needs to cope with it (by conditionally choosing the size of offsets into structs, for instance) or give up on it and abort. That also means that you cannot compile code that depends on knowing pointer sizes in the preprocessor, etc.</div>

</span></blockquote><div><br></div></div>Ok, that makes sense.  It could be done by generalizing the notions of variably modified types (which are VLAs in C99) to include pointers. <br></div></div></blockquote></div></div>
</blockquote><div><br>I have read the sizeof and VLA in C99<br>
I found a example:<br>EXAMPLE 3 In this example, the size of a variable-length array is computed and returned from a function:<br>#include <stddef.h><br>size_t fsize3(int n)<br>{<br>  char b[n+3]; // variable length array<br>

  return sizeof b; // execution time sizeof<br>}<br>int main()<br>{<br>  size_t size;<br>  size = fsize3(10); // fsize3 returns 13<br>  return 0;<br>}<br>And I found some information with clang about VLA<br>(<a href="http://clang.llvm.org/cxx_compatibility.html#vla" target="_blank">http://clang.llvm.org/cxx_compatibility.html#vla</a>)<br>

Does llvm/clang doesn't support sizeof is evaluated at run time??<br><br>thanks<br><br>ching<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

</blockquote></div><br>