<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0"></p>
<div>Hi Clang list,<br>
<br>
I am implementing a RecursiveASTVisitor so I can rely on a preorder traversal.<br>
In some of the Visit* callbacks I would like to pass some information downwards<br>
and do something like this:<br>
<br>
  bool VisitFunctionDecl(const FunctionDecl *d) {<br>
    ...<br>
    d->getBody()->attachToContext(myAdditionalData);<br>
    ...<br>
  }<br>
<br>
So that I can access it when the callback for the body is called:<br>
<br>
  bool VisitCompoundStmt(const CompoundStmt *n) {<br>
    ...<br>
    MyAdditionalData *myData = n->getFromContext();<br>
    ...<br>
  }<br>
<br>
Right now I am using a std::map with the pointer as key, i.e.<br>
<br>
  bool VisitFunctionDecl(const FunctionDecl *d) {<br>
    ...<br>
    myMap[d->getBody()] = myAdditionalData;<br>
    ...<br>
  }<br>
<br>
and then<br>
<br>
  bool VisitCompoundStmt(const CompoundStmt *n) {<br>
    ...<br>
    MyAdditionalData *myData = myMap[n];<br>
    ...<br>
  }<br>
<br>
That works, but it does not seem to be the right thing.<br>
Is there a way to attach additional information to AST nodes?<br>
Or should I approach that in a completely different way?<br>
<br>
Thank you and best regards,<br>
Benedikt</div>
<br>
<p></p>
</div>
</body>
</html>