<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<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 style="font-family: Î¢ÈíÑźÚ, Tahoma; font-size: 14px; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px;">
Hello Develpers,</div>
<div style="font-family: Î¢ÈíÑźÚ, Tahoma; font-size: 14px; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px;">
     I want to add a filedDec to <span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">CXXRecordDecl  and save it . my code as foloow , but how to save it?</span></div>
<div style="font-family: Î¢ÈíÑźÚ, Tahoma; font-size: 14px; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px;">
<span style="background-color: rgba(0, 0, 0, 0);">bool </span><span style="color: inherit !important; background-color: rgba(0, 0, 0, 0); font-size: 10.5pt; line-height: 1.5;">MyASTVisitor::</span><span style="color: inherit !important; background-color: rgba(0, 0, 0, 0); font-size: 10.5pt; line-height: 1.5;">VisitCXXRecordDecl(CXXRecordDecl *Declaration) {</span></div>
<div style="font-family: Î¢ÈíÑźÚ, Tahoma; font-size: 14px; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px;">
<span style="background-color: rgba(0, 0, 0, 0);"><span style="white-space: pre;"></span><span style="white-space: pre;"></span>DeclContext *declContext = Declaration->getDeclContext();<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>SourceManager &sourceManager_ = TheRewriter.getSourceMgr();<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>clang::ASTContext& astContext = Declaration->getASTContext();<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>SourceLocation startLoc = Declaration->getLocStart();<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>const char* startBuf = sourceManager_.getCharacterData(startLoc);<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>const char* classStartBuf = strchr(startBuf, '{')+1;<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>SourceLocation insertStartLoc = Declaration->getLocStart().getLocWithOffset(std::distance(startBuf, classStartBuf));<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>llvm::APInt apInt(32, 42);<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>clang::IntegerLiteral* intergerLiteral = clang::IntegerLiteral::Create(astContext, apInt, astContext.IntTy, insertStartLoc);<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>clang::TypeSourceInfo* typeSourceInfo = astContext.CreateTypeSourceInfo(astContext.IntTy);<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>clang::IdentifierInfo& id = astContext.Idents.get("test_");<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>clang::FieldDecl* fieldDecl = clang::FieldDecl::Create(astContext, Declaration, insertStartLoc, insertStartLoc, &id, astContext.IntTy, typeSourceInfo, intergerLiteral, false, clang::InClassInitStyle::ICIS_NoInit);<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>fieldDecl->setAccess(clang::AccessSpecifier::AS_private);<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>Declaration->addDecl(fieldDecl);<br>
<br>
<span style="white-space: pre;"></span><span style="white-space: pre;"></span>return true;<br>
<span style="white-space: pre;"></span>}</span></div>
<div style="font-family: Î¢ÈíÑźÚ, Tahoma; font-size: 14px; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px;">
<span style="background-color: rgba(0, 0, 0, 0);"><br>
</span></div>
<div style="font-family: Î¢ÈíÑźÚ, Tahoma; font-size: 14px; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px;">
<div style="line-height: normal; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">
Yours truly<br>
</div>
<div style="line-height: normal; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="line-height: normal; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">
Robert</div>
</div>
<br>
<p></p>
</div>
</body>
</html>