<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Mehdi,<br>
<br>
thanks a lot for your email. Actually I was disappointed by the fact
that I was not able to get a useful answer to my two questions.<br>
As I observed that the questions move down along the list with time
passing I decided to re-post them in the hope that the questions <br>
will have a better visibility.<br>
<br>
Could you help me with the two questions? Finding an expert in this
area would be of great help. Do you think the questions are not well
stated.<br>
<br>
Regards<br>
Paul<br>
<br>
<div class="moz-cite-prefix">On 12/21/2016 05:31 PM, Mehdi Amini
wrote:<br>
</div>
<blockquote
cite="mid:49A27405-F2CC-46A6-996E-F259F535BA3F@apple.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">Hi
Paul,</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">It is
the 4th time in two weeks that you repost the exact same two
emails, that’s a bit high repost rate for the mailing-list,
especially considering that you already got answers that you
ignored previously:</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">- <a
moz-do-not-send="true"
href="http://lists.llvm.org/pipermail/llvm-dev/2016-December/108060.html"
class=""><a class="moz-txt-link-freetext" href="http://lists.llvm.org/pipermail/llvm-dev/2016-December/108060.html">http://lists.llvm.org/pipermail/llvm-dev/2016-December/108060.html</a></a></div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">- <a
moz-do-not-send="true"
href="http://lists.llvm.org/pipermail/llvm-dev/2016-December/108051.html"
class=""><a class="moz-txt-link-freetext" href="http://lists.llvm.org/pipermail/llvm-dev/2016-December/108051.html">http://lists.llvm.org/pipermail/llvm-dev/2016-December/108051.html</a></a></div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">Adding
an alternate email in case you didn’t receive previous emails.</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">
<table class="vtop" style="border-collapse: collapse;
border-spacing: 0px; padding: 0px; margin: 0px; border:
none; color: rgb(0, 0, 0); font-family: Verdana, Helvetica,
Arial, sans-serif; font-size: 12px;">
<tbody class="">
<tr class="">
<td style="margin: 0px; padding: 10px 1ex 0px 0px;
text-align: justify; vertical-align: top;" class="">Best,</td>
</tr>
</tbody>
</table>
<div class=""><br class="">
</div>
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">— </div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class="">Mehdi</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode:
space; -webkit-line-break: after-white-space;" class=""><br
class="">
<div>
<blockquote type="cite" class="">
<div class="">On Dec 21, 2016, at 2:47 AM, Paul Muntean
via llvm-dev <<a moz-do-not-send="true"
href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">I want to detect bad casts in C++ code by
using the Clang<br class="">
compiler. The approach is similar to what Caver and
TypeSan do but<br class="">
without using the compiler-rt.<br class="">
<br class="">
Caver and TypeSan:<br class="">
<a moz-do-not-send="true"
href="https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-lee.pdf"
class="">https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-lee.pdf</a><br
class="">
<a class="moz-txt-link-freetext" href="https://nebelwelt.net/publications/files/16CCS2.pdf">https://nebelwelt.net/publications/files/16CCS2.pdf</a><br
class="">
<br class="">
For example if I have the following C++ code snippet
where I want to<br class="">
cast object b into<br class="">
object D.<br class="">
<br class="">
D* obj = static_cast<D*>(b);<br class="">
<br class="">
from where (inside Clang, LTO, thinLTO, etc.) can I
get the base class<br class="">
of D and the base class ob b. Is this<br class="">
available in the Clang compiler or LTO?<br class="">
</div>
</div>
</blockquote>
<blockquote type="cite" class="">
<div class="">
<div class=""><br class="">
Also, if b is an object of a virtual Class (class with
inherited or its<br class="">
own virtual functions) can I get its virtual pointer
at compile time<br class="">
by using the LTO?<br class="">
<br class="">
I found out that in CodeGen/CGExpr.cpp the explicit
case "BaseToDerived" is<br class="">
handled and you can retrieve TypeSourceInfo using the
function<br class="">
getTypeInfoAsWritten(). It seems that this information
is enough to get<br class="">
the exact type of this cast at compile-time and should
also work for<br class="">
Template programming, as my, understanding is that
Clang should have<br class="">
abstracted the code into, specific types at this
point.<br class="">
<br class="">
Am I wrong here?<br class="">
<br class="">
Is there any case where the type of the objects used
inside the cast<br class="">
not known at compile time? Can the,<br class="">
'real' type be hidden behind a pointer?<br class="">
_______________________________________________<br
class="">
LLVM Developers mailing list<br class="">
<a moz-do-not-send="true"
href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br
class="">
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Paul Muntean
Lehrstuhl für Sicherheit in der Informatik, I20
Prof. Dr. Claudia Eckert
Institut für Informatik TU-München
Boltzmannstr. 3, 85748 Garching, Germany
Tel.: ++49 (89) 289 - 18566
Fax : ++49 (89) 289 - 18579
Room: 01.08.055
E-Mail: <a class="moz-txt-link-abbreviated" href="mailto:paul@sec.in.tum.de">paul@sec.in.tum.de</a>
<a class="moz-txt-link-freetext" href="https://www.sec.in.tum.de">https://www.sec.in.tum.de</a></pre>
</body>
</html>