<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Mikhail,<div class=""><br class=""></div><div class="">Indeed, it seems that the constraint manager is more eager to throw out complex constraints than I’ve anticipated initially.</div><div class="">It might be partly a good thing: now we need to know that evaluating disabling this heuristic and measuring a change in footprint</div><div class="">on a large number of project needs to be a part of the schedule.</div><div class="">An example where a change in this optimization is required would be also beneficial for proposal.</div><div class=""><br class=""></div><div class="">Now onto the example.</div><div class=""><br class=""></div><div class="">1. Unlike SV-COMP, the analyzer treats “assert” as “assume”. So you would need to e.g. perform null pointer dereference to see whether there’s an error.</div><div class="">(or use a debug checker and a special function, consult tests for those)</div><div class="">2. The following function seems to give the desired behavior:</div><div class=""><br class=""></div><div class=""><div class=""><div class="">int foo(int x) {</div><div class=""> int *z = 0;</div><div class=""> if ((x & 1) && ((x & 1) ^ 1))</div><div class=""> return *z;</div><div class=""> return 0;</div><div class="">}</div></div><div class=""><br class=""></div><div class="">In a sense that the analyzer reports a false positive (if x & 1 is true, last bit is one, but then (x & 1) is the last bit and (x & 1) ^ 1 should be zero),</div><div class="">it is non-obvious, and just using Z3 with constraints present in the graph should be sufficient.</div><div class=""><br class=""></div><div class="">Regards,</div><div class="">George</div><div><br class=""><blockquote type="cite" class=""><div class="">On Mar 23, 2018, at 12:48 PM, Mikhail Ramalho <<a href="mailto:mikhail.ramalho@gmail.com" class="">mikhail.ramalho@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi,<div class=""><br class=""></div><div class="">Just a quick update: I still haven't found a suitable case to add to the report but I tried to address every other comment there. </div><div class=""><br class=""></div><div class="">Any feedback is welcome!</div><div class=""><br class=""></div><div class="">Thank you,</div><div class=""><br class=""></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">2018-03-23 18:39 GMT+00:00 Mikhail Ramalho <span dir="ltr" class=""><<a href="mailto:mikhail.ramalho@gmail.com" target="_blank" class="">mikhail.ramalho@gmail.com</a>></span>:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">Indeed the constraints start to appear when there are multiplications/divisions/rema<wbr class="">inders, but I noticed that it only prints the constraints when it's able to solve them.<div class=""><br class=""></div><div class="">Maybe in a higher level it's dropping constraints without querying if the solver can handle it?<br class=""></div><div class=""><br class=""></div><div class="">I'll keep looking into it.</div><div class="gmail_extra"><div class=""><div class="h5"><br class=""><div class="gmail_quote">2018-03-23 18:25 GMT+00:00 Artem Dergachev <span dir="ltr" class=""><<a href="mailto:noqnoqneo@gmail.com" target="_blank" class="">noqnoqneo@gmail.com</a>></span>:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF" class="">
Try making assumptions over 2 * x, these should work if i recall
correctly.<div class=""><div class="m_-2406771488922912429m_7462020983193081322h5"><br class="">
<br class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669moz-cite-prefix">On 3/23/18 10:51 AM, Mikhail Ramalho
via cfe-dev wrote:<br class="">
</div>
<blockquote type="cite" class="">
<div dir="ltr" class="">Hi,
<div class="gmail_extra"><br class="">
<div class="gmail_quote">
<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" class="">
<div class="">
<div class=""><br class="">
</div>
<div class="">We would have to find an easier example first,
where the core modification are not necessary.</div>
<div class="">For the easier example: I think it would have to
be simple arithmetics over integers, even negation
would work.</div>
<div class="">The current solver can not handle any relational
constraints.</div>
<div class=""><br class="">
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">I'm having some problems finding a simple benchmark
where the constraints are not dropped.</div>
<div class=""><br class="">
</div>
<div class="">For instance, consider the following (safe) program:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">void foo(unsigned x, unsigned y)</div>
<div class="">{</div>
<div class=""> if (x > y)</div>
<div class=""> return;</div>
<div class=""><br class="">
</div>
<div class=""> int base;</div>
<div class=""><br class="">
</div>
<div class=""> if (x <= y)</div>
<div class=""> base = 1;</div>
<div class=""><br class="">
</div>
<div class=""> assert(base == 1);</div>
<div class="">}</div>
</div>
<div class=""><br class="">
</div>
<div class="">But the constraints are empty (both when I print the
graph and the SMT formula). I'm calling the analyzer:</div>
<div class=""><br class="">
</div>
<div class="">$ ~/myclang/bin/clang --analyze -Xclang
-analyzer-viz-egraph-graphviz -Xanalyzer
-analyzer-checker=debug.DumpCF<wbr class="">G main2.c<br class="">
</div>
<div class=""><br class="">
</div>
<div class="">I'm assuming that the constraints are being dropped
somehow but is there any other way to check it?</div>
<div class=""><br class="">
</div>
<div class="">Btw, I'm using the head of the release_60 branch.</div>
<div class=""><br class="">
</div>
<div class="">Thank you,</div>
<div class=""> </div>
<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" class="">
<div class="">
<div class="">BTW instead of looking into the
Z3ConstraintManager I think it would be easier to
look at the exploded graph (using the option I have
previously described)</div>
<div class="">and see what formulas are mentioned there.</div>
<div class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-h5"><br class="">
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">Thank you,</div>
<div class=""><br class="">
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2018-03-22 20:34
GMT+00:00 George Karpenkov <span dir="ltr" class=""><<a href="mailto:ekarpenkov@apple.com" target="_blank" class="">ekarpenkov@apple.com</a>></span>:<br class="">
<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" class="">Hi
Mikhail,
<div class=""><br class="">
</div>
<div class="">That’s a good improvement!</div>
<div class=""><br class="">
</div>
<div class="">I think an awesome next step
would be to see whether the
analyzer already has the formula
required to solve your
motivational example.</div>
<div class="">This would be a preliminary
feasibility study: if the formula
is there, it’s just a matter of
converting it and giving it to Z3,
and otherwise,</div>
<div class="">the exercise is much harder and
might require substantial changes.</div>
<div class=""><br class="">
</div>
<div class="">Perhaps an easiest way to see
what formulas the analyzer has is
to launch it with an extra flag</div>
<div class="">`-Xclang
-analyzer-viz-egraph-graphviz`
which would dump a graph in a
GraphViz format containing all the
information analyzer has along all
the states.</div>
<div class=""><br class="">
</div>
<div class="">This is important for judging
feasibility, as it might be the
case that analyzer at some point
decides to get rid of the
“complex” constraint.</div>
<div class="">While it would be possible to
change that, that would be a
second step of the project,</div>
<div class="">and for preliminary evaluation
a simpler example would be needed.</div>
<div class=""><br class="">
</div>
<div class="">Also, the information above
could be helpful for structuring
the project: a first stage would
be checking most trivial examples,
a second stage would be seeing how
far</div>
<div class="">can we get with only minimal
modifications to the core.</div>
<div class=""><br class="">
</div>
<div class="">Regards,</div>
<div class="">George</div>
<div class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086h5">
<div class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On Mar 22, 2018, at
1:19 PM, Mikhail Ramalho
<<a href="mailto:mikhail.ramalho@gmail.com" target="_blank" class="">mikhail.ramalho@gmail.com</a>>
wrote:</div>
<br class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">Hi all,
<div class=""><br class="">
</div>
<div class="">Thank you for the
feedback, George and
Dominic.</div>
<div class=""><br class="">
</div>
<div class="">I updated my
proposal with an
example, showing the
encoded SMT formula
for the program and
a brief explanation
of the verification
process. I used a
simplified program
from a bug report in
Bugzilla.</div>
<div class=""><br class="">
</div>
<div class="">May I ask for
some feedback in
this section?</div>
<div class=""><br class="">
</div>
<div class="">~</div>
<div class=""><br class="">
</div>
<div class="">I addressed most
of the comments,
except for: </div>
<div class=""><span style="color:rgb(51,51,51);font-family:Arial,sans-serif,sans;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline" class=""><br class="">
</span></div>
<div class=""><span style="color:rgb(51,51,51);font-family:Arial,sans-serif,sans;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline" class=""><span style="color:rgb(51,51,51);font-family:Arial,sans-serif,sans;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline" class="">George:
stretch goals
are great, but
for now I think
it would be
better to focus
on writing a
considerably
more detailed
proposal on how
and why the main
goal would be
implemented.<span class=""> </span></span></span></div>
<div class=""><span style="color:rgb(51,51,51);font-family:Arial,sans-serif,sans;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline" class=""><span style="color:rgb(51,51,51);font-family:Arial,sans-serif,sans;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline" class=""><span class=""><br class="">
</span></span></span></div>
<div class=""><font face="Arial,
sans-serif, sans" color="#333333" class="">I
tried to explain
the motivation in
the Overview
section, do you
think a motivation
section would be
better? </font></div>
<div class=""><font face="Arial,
sans-serif, sans" color="#333333" class=""><br class="">
</font></div>
<div class=""><font face="Arial,
sans-serif, sans" color="#333333" class="">Regarding
the how, I'll have
another look in
the
BugReportVisitor
and update the
proposal with a
more concrete
solution.</font></div>
<div class=""><font face="Arial,
sans-serif, sans" color="#333333" class=""><br class="">
</font></div>
<div class=""><font face="Arial,
sans-serif, sans" color="#333333" class="">Thank
you,</font></div>
<div class=""><br class="">
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2018-03-21
17:54 GMT+00:00
George Karpenkov <span dir="ltr" class=""><<a href="mailto:ekarpenkov@apple.com" target="_blank" class="">ekarpenkov@apple.com</a>></span>:<br class="">
<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" class="">Hi
Mikhail,
<div class=""><br class="">
</div>
<div class="">I’ve
added some
feedback.</div>
<div class="">Overall,
I think we
should be
aiming for
something more
low-level and
concrete:</div>
<div class="">adding
examples with
explanations
would be a
great
improvement.</div>
<div class=""><br class="">
</div>
<div class="">Regards,</div>
<div class="">George
<div class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096h5"><br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On Mar
21, 2018, at
10:12 AM,
Mikhail
Ramalho <<a href="mailto:mikhail.ramalho@gmail.com" target="_blank" class="">mikhail.ramalho@gmail.com</a>>
wrote:</div>
<br class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096m_8959840794667446807Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">Hi
all,
<div class=""><br class="">
</div>
<div class="">I've
written a
first draft of
my proposal:</div>
<div class=""><br class="">
</div>
<div class=""><a href="https://docs.google.com/document/d/1-zNSv0l4WyoxYpJUAw8LFnQq_TY4AGjIpPu1VPkmO-g/edit?usp=sharing" target="_blank" class="">https://docs.google.com/docume<wbr class="">nt/d/1-zNSv0l4WyoxYpJUAw8LFnQq<wbr class="">_TY4AGjIpPu1VPkmO-g/edit?usp=s<wbr class="">haring</a><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">I've
added a few
comments in
places I think
need
improvement. </div>
<div class=""><br class="">
</div>
<div class="">May I ask
the community
to have a look
and give some
feedback? </div>
<div class=""><br class="">
</div>
<div class="">Thank
you,</div>
<div class=""><br class="">
</div>
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">2018-03-12
18:24
GMT+00:00
George
Karpenkov <span dir="ltr" class=""><<a href="mailto:ekarpenkov@apple.com" target="_blank" class="">ekarpenkov@apple.com</a>></span>:<br class="">
<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" class="">Hi
Mikhail,
<div class=""><br class="">
</div>
<div class="">I’m
assuming
Dominic have
answered your
questions
regarding the
point (3).</div>
<div class=""><br class="">
</div>
<div class="">On point
(1) I have
recently sent
an email on
the list
answering, I
believe, to
essentially
the same
question:</div>
<div class=""><a href="http://lists.llvm.org/pipermail/cfe-dev/2018-March/057064.html" target="_blank" class="">http://lists.llvm.org/pipermai<wbr class="">l/cfe-dev/2018-March/057064.ht<wbr class="">ml</a></div>
<div class=""><br class="">
</div>
<div class="">(yes,
unfortunately
we do not have
better
archives, so
messages might
be often hard
to track)<br class="">
<div class=""><span class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">
<div class="">2. I
still don't
quite
understand how
dynamic memory
track works in
the analyzer,
is the double
checker
expected to
work for
pointers and
dynamic memory
as well? I'm
assuming yes
here and that
Z3ConstraintManager <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">might
need to be
extended
somehow (a
plan will be
added to the
proposal).</span></div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class="">I think
here we should
get the extra
precision for
free by adding
a bug reporter
visitor, as
described in
the email
thread I have
linked to.</div>
<div class=""><br class="">
</div>
<div class="">Please
feel free to
ask any
further
questions, bug
reporter
visitors are
quite messy in
the analyzer.</div>
<div class=""><br class="">
</div>
<div class="">Regards,</div>
<div class="">George</div>
<br class="">
<blockquote type="cite" class="">
<div class=""><span class="">
<div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><br class="">
</span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">~</span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><br class="">
</span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">3.
This is a list
of the TODOs
in <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">Z3ConstraintManager,
from more
important to
less
important, in
my opinion. I
just want to
know if the
analyzer's
developers
(and the
project
mentor) agree
with this
list, as it
might go into
my proposal:</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><br class="">
</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">3.1. Don't
assume nearest
ties to even
rounding mode:
currently,
only rounding
to even is
supported,
even if the
code changes
the rounding
mode
using fesetround.</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><br class="">
</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">3.2. Don't
add all the
constraints,
only the
relevant ones:
adding
unnecessary
constraints
will slowdown
the solver.</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><br class="">
</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">3.3. Refactor
doTypeConversion to use built-in conversion functions (</span></span>Refactor
to
Sema::FindCompositePointerType<wbr class="">(),
and
Sema::CheckCompareOperands(); <wbr class="">Refine
behavior for
invalid type
casts)</div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">3.4.
Refactor
doIntTypeConversion
to use
Sema::handleIntegerConversion(<wbr class="">)</span></span></div>
<div class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class=""><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline" class="">3.5. Refactor
doFloatTypeConversion to use Sema::handleFloatConversion()</span></span></div>
<div class=""><br class="">
</div>
<div class="">I bundled
this together
because,
although the
conversion
seems
incomplete
(based on the
comments),
it's about
removing
duplicated
code.</div>
<div class=""><br class="">
</div>
<div class="">3.6.
Refactor
getAPSIntType(const
llvm::APSInt
&Int)
const to put
elsewhere.</div>
<div class=""><br class="">
</div>
<div class="">~</div>
<div class=""><br class="">
</div>
<div class="">Thank
you,</div>
<div class=""><br class="">
</div>
</div>
<div class="gmail_extra" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br class="">
<div class="gmail_quote">2018-02-24
1:03 GMT+00:00
Devin Coughlin<span class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096m_8959840794667446807m_-5653580683305685986Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:dcoughlin@apple.com" target="_blank" class="">dcoughlin@apple.com</a>></span><wbr class="">:<br class="">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><br class="">
<br class="">
> On Feb
23, 2018, at
9:29 AM,
Mikhail
Ramalho via
cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" class="">cfe-dev@lists.llvm.org</a>>
wrote:<br class="">
><br class="">
> I also
have a
question about
the proposal.
I understand
that ideas
about the
project will
be discussed
in the mailing
list. However,
once that's
settled and I
write my first
draft
proposal,
should I send
it to the
mailing list
for discussion
again or
should I send
it only to the
mentor?<br class="">
<br class="">
</span>Please
make sure to
keep email
discussions on
the mailing
list rather
than just
personal
email. This is
a topic that
members of the
community will
be interested
in and will
have valuable
feedback on.<br class="">
<span class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096m_8959840794667446807m_-5653580683305685986HOEnZb"><font color="#888888" class=""><br class="">
Devin<br class="">
<br class="">
</font></span></blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
--<span class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096m_8959840794667446807m_-5653580683305685986Apple-converted-space"> </span><br class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096m_8959840794667446807m_-5653580683305685986gmail_signature">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">Mikhail
Ramalho.</div>
</div>
</div>
</div>
</span><span class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline" class="">______________________________<wbr class="">_________________</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">
<span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline" class="">cfe-dev
mailing list</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">
<a href="mailto:cfe-dev@lists.llvm.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank" class="">cfe-dev@lists.llvm.org</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/cfe-dev</a></span></div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096m_8959840794667446807gmail_signature">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">Mikhail
Ramalho.</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086m_4673560789215137001m_3797644012230859096gmail_signature">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">Mikhail
Ramalho.</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail-m_-52597389203126130m_3480453752466103086gmail_signature">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">Mikhail Ramalho.</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<br class="">
</div>
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669gmail-m_-8638169037548414962gmail_signature">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">Mikhail Ramalho.</div>
</div>
</div>
</div>
</div>
<br class="">
<fieldset class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669mimeAttachmentHeader"></fieldset>
<pre class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669moz-quote-pre">______________________________<wbr class="">_________________
cfe-dev mailing list
<a class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669moz-txt-link-abbreviated" href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>
<a class="m_-2406771488922912429m_7462020983193081322m_-4451861523552279669moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/cfe-dev</a>
</pre>
</blockquote>
<br class="">
</div></div></div>
</blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div></div></div><span class="HOEnZb"><font color="#888888" class="">-- <br class=""><div class="m_-2406771488922912429m_7462020983193081322gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Mikhail Ramalho.</div></div></div>
</font></span></div></div>
</blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Mikhail Ramalho.</div></div></div>
</div>
</div></blockquote></div><br class=""></div></body></html>