<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi,<br>
    <br>
    Just noting that I have something quite similar hacked into Clang +
    LLVM 2.9<br>
    (<a href="https://bitbucket.org/grrussel/constcpp/wiki/Home">https://bitbucket.org/grrussel/constcpp/wiki/Home</a>)<br>
    <br>
    Regarding you example, perhaps you could use an attribute in the
    define to allow distinguishing immutable from const?<br>
    <br>
    Cheers,<br>
    George<br>
    <br>
    On 02/08/2011 23:08, george moudry wrote:
    <blockquote cite="mid:COL106-W561CF07D86BF857C0125FFE93B0@phx.gbl"
      type="cite">
      <style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
      <div dir="ltr">
        <p class="MsoNormal" style="font-family: Tahoma; font-size:
          10pt;"><br>
        </p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">Dear Clang developers, I am
            experimenting with “poor man’s deep const” in C++.</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">I have the following C++ code:</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2"> </font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">    #define immutable const</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">    struct CC { immutable int myInt;
            };</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2"> </font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">I would like to use Clang to check if
            the type qualifier source code reads “const” or “immutable”.</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">I am able to retrieve the
            clang::FieldDecl and it’s QualType.</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">Is it possible, given my fieldDecl,
            to retrieve it’s DeclSpec?</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">If I had a DeclSpec, I would then
            call DeclSpec::getConstSpecLoc() and retrieve the source
            code at that location.</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2"><br>
          </font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">Here are two of the approaches I
            already tried:</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">1) called
            fieldDecl->getSourceRange(); but that returns range only
            for "int myInt"</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">2) retrieved my field's TypeLoc and
            cast it to a QualifiedTypeLoc.</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">But, as the header file warns, the
            QualifiedTypeLoc does not have valid SourceRange data.</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2"><br>
          </font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">Any ideas?</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2"><br>
          </font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">Thanks for your advice,</font></p>
        <p class="MsoNormal"><font class="Apple-style-span"
            face="Tahoma" size="2">Jiri</font></p>
      </div>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
cfe-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>