[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-dev
Subject:    Re: [cfe-dev] =?utf-8?q?How_Variables_and_QualTypes_work=3F?=
From:       "=?utf-8?Q?Aaron_W.Hsu?=" <arcfide () sacrideo ! us>
Date:       2014-11-26 22:45:15
Message-ID: 20141126224606.9513FC0027D () frontend1 ! nyi ! internal
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]

[Attachment #4 (text/plain)]

Of course I might have sent this too soon. I see that what I'm actually dealing with \
is a DeclRefExpr node and not an ImplicitCast node. I'm not sure how to get the \
appropriate type information that I want from such a node.






-- 
Aaron W. Hsu | arcfide@sacrideo.us | http://www.sacrideo.us
Please support my work: https://www.gratipay.com/arcfide/
לֵ֤ב חֲכָמִים֙ בְּבֵ֣ית אֵ֔בֶל וְלֵ֥ב \
כְּסִילִ֖ים בְּבֵ֥ית שִׂמְחָֽה׃





From: Aaron W.Hsu
Sent: ‎Wednesday‎, ‎November‎ ‎26‎, ‎2014 ‎5‎:‎26‎ ‎PM
To: Clang Dev List





Dear Clang Developers:




I'm trying to understand how QualType and Variable references work in the system. \
Basically, I want to make some changes to the way that ActOnBinOp works depending on \
the types of the LHSExpr and the RHSExpr values. In particular, I want to detect when \
one of these expressions has a qualifier that I've added called "Block Size" on the \
type. I've basically implemented it following the Address Space pattern, and I have \
verified that the type information does get added to some node at the handling of \
type attributes. However, the node that I get in the LHS of ActOnBinOp doesn't have \
the expected type information. Here's a small example:




int global(8) *p = …;

p = p + 1;




In this case, I am dealing with "p + 1" and I expect the node representing "p" \
(LHSExpr) to be annotated with my new type attribute information. However, the node \
doesn't have this. I dumped the AST and noticed that there is an ImplicitCast node \
wrapping an internal node. I suspect, but have not verified, that the type \
information is in the contained node, but that, for some reason, this type \
information isn't being pushed up to the implicitcast. At this point, I'm running \
into my ignorance of how Clang does it's AST parsing and handling, so I'm not sure of \
the correct way to deal with this to ensure that such expressions have the type \
information I want on them. 




I would appreciate suggestions on how to properly move forward on this. 






-- 
Aaron W. Hsu | arcfide@sacrideo.us | http://www.sacrideo.us
Please support my work: https://www.gratipay.com/arcfide/
לֵ֤ב חֲכָמִים֙ בְּבֵ֣ית אֵ֔בֶל וְלֵ֥ב \
כְּסִילִ֖ים בְּבֵ֥ית שִׂמְחָֽה׃


[Attachment #5 (text/html)]


<html>
<head>
<meta name="generator" content="Windows Mail 17.5.9600.20689">
<style data-externalstyle="true"><!--
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
}
p.MsoNormal, li.MsoNormal, div.MsoNormal {
margin:0in;
margin-bottom:.0001pt;
}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, \
div.MsoListParagraphCxSpFirst,  p.MsoListParagraphCxSpMiddle, \
li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle,  \
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast \
{ margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
}
--></style></head>
<body dir="ltr">
<div data-externalstyle="false" dir="ltr" style="font-family: 'Calibri', 'Segoe UI', \
'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', \
'sans-serif';font-size:12pt;"><div style="font-size: 13pt;">Of course I might have \
sent this too soon. I see that what I'm actually dealing with is a DeclRefExpr node \
and not an ImplicitCast node. I'm not sure how to get the appropriate type \
information that I want from such a node.<br></div><div style="font-size: 13pt;" \
data-signatureblock="true"><div style="font-size: 13pt;"><br></div><div \
style="font-size: 13pt;">-- <br>Aaron W. Hsu | arcfide@sacrideo.us | \
http://www.sacrideo.us<br>Please support my work: \
https://www.gratipay.com/arcfide/<br>לֵ֤ב חֲכָמִים֙ בְּבֵ֣ית \
אֵ֔בֶל וְלֵ֥ב כְּסִילִ֖ים בְּבֵ֥ית \
שִׂמְחָֽה׃</div><div style="font-size: 13pt;"><br></div></div><div \
style="padding-top: 5px; border-top-color: rgb(229, 229, 229); border-top-width: 1px; \
border-top-style: solid;"><div><font face=" 'Calibri', 'Segoe UI', 'Meiryo', \
'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif'" \
style='line-height: 15pt; letter-spacing: 0.02em; font-family: "Calibri", "Segoe UI", \
"Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", \
"sans-serif"; font-size: 12pt;'><b>From:</b>&nbsp;<a \
href="mailto:arcfide@sacrideo.us" target="_parent">Aaron \
W.Hsu</a><br><b>Sent:</b>&nbsp;‎Wednesday‎, ‎November‎ ‎26‎, ‎2014 \
‎5‎:‎26‎ ‎PM<br><b>To:</b>&nbsp;<a href="mailto:cfe-dev@cs.uiuc.edu" \
target="_parent">Clang Dev List</a></font></div></div><div><br></div><div dir="ltr"> \
<div style="font-size: 13pt;">Dear Clang Developers:</div><div style="font-size: \
13pt;"><br></div><div style="font-size: 13pt;">I'm trying to understand how QualType \
and Variable references work in the system. Basically, I want to make some changes to \
the way that ActOnBinOp works depending on the types of the LHSExpr and the RHSExpr \
values. In particular, I want to detect when one of these expressions has a qualifier \
that I've added called&nbsp;"Block Size" on the type. I've basically implemented it \
following the Address Space pattern, and I have verified that the type information \
does get added to some node at the handling of type attributes. However, the node \
that I get in the LHS of ActOnBinOp doesn't have the expected type information. \
Here's a small example:</div><div style="font-size: 13pt;"><br></div><div \
style="font-size: 13pt;">int global(8) *p = …;</div><div style="font-size: 13pt;">p \
= p + 1;</div><div style="font-size: 13pt;"><br></div><div style="font-size: \
13pt;">In this case, I am dealing with&nbsp;"p + 1" and I expect the node \
representing&nbsp;"p" (LHSExpr) to be annotated with my new type attribute \
information. However, the node doesn't have this. I dumped the AST and noticed that \
there is an ImplicitCast node wrapping an internal node. I suspect, but have not \
verified, that the type information is in the contained node, but that, for some \
reason, this type information isn't being pushed up to the implicitcast. At this \
point, I'm running into my ignorance of how Clang does it's AST parsing and handling, \
so I'm not sure of the correct way to deal with this to ensure that such expressions \
have the type information I want on them. </div><div style="font-size: \
13pt;"><br></div><div style="font-size: 13pt;">I would appreciate suggestions on how \
to properly move forward on this. <br></div><div style="font-size: 13pt;" \
data-signatureblock="true"><div style="font-size: 13pt;"><br></div><div \
style="font-size: 13pt;">-- <br>Aaron W. Hsu | arcfide@sacrideo.us | \
http://www.sacrideo.us<br>Please support my work: \
https://www.gratipay.com/arcfide/<br>לֵ֤ב חֲכָמִים֙ בְּבֵ֣ית \
אֵ֔בֶל וְלֵ֥ב כְּסִילִ֖ים בְּבֵ֥ית \
שִׂמְחָֽה׃</div><div style="font-size: 13pt;"><br></div></div>


</div></div>
</body>
</html>



_______________________________________________
cfe-dev mailing list
cfe-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic