<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> The one think we need to ensure is that your metadata can be dropped by the<br>
> optimizer and the code remains correct. I'm guessing no vtable would mean<br>
> anything goes (not check)? That's bad security-wise, but it'll at least<br>
> work. We may want to make sure nothing gets dropped through a debug flag,<br>
> so that we can compile Chrome and be confident that all the checks we want<br>
> are there.<br>
<br>
</span>So the flag would determine whether no bitset present means return 1 or<br>
return 0? Sounds reasonable.</blockquote><div><br></div><div>I'd keep it generating the same code, but have a debug output when the debug flag is on. My reasoning is that this wouldn't happen if your feature were a first-class IR construct, but because it's in the let's-try-it-out metadata phase it needs to "just work" when metadata is dropped. Yours being a security-oriented feature we'd want to be able to sanity-check that things compiled as expected for users who care (like Chrome). Once the feature graduates to IR instead of metadata it would be expected to always be correct security-wise (never silently drop information).</div><div><br></div><div>Or maybe I'm being overly cautious when it comes to metadata's ability to be dropped?</div></div></div></div>