@@ -43,7 +43,15 @@ class TemplateClassHandler : public MatchFinder::MatchCallback {
4343 return ;
4444 }
4545
46- Rewrite.InsertText (ClassNode->getLocStart (), " /*_FORCE_COVER_START_*/" , true , true );
46+ std::string source_range = clang::Lexer::getSourceText (clang::CharSourceRange::getCharRange (ClassNode->getSourceRange ()), Rewrite.getSourceMgr (), Rewrite.getLangOpts ()).str ();
47+ std::size_t loc = source_range.find_first_of (" {" );
48+ if (loc == std::string::npos) {
49+ loc = 0 ;
50+ } else {
51+ loc++;
52+ }
53+
54+ Rewrite.InsertText (ClassNode->getLocStart ().getLocWithOffset (loc), " /*_FORCE_COVER_START_*/" , true , true );
4755 Rewrite.InsertText (ClassNode->getLocEnd ().getLocWithOffset (1 ), " /*_FORCE_COVER_END_*/" , true , true );
4856 }
4957
@@ -64,7 +72,15 @@ class TemplateFunctionHandler : public MatchFinder::MatchCallback {
6472 return ;
6573 }
6674
67- Rewrite.InsertText (FunctionNode->getLocStart (), " /*_FORCE_COVER_START_*/" , true , true );
75+ std::string source_range = clang::Lexer::getSourceText (clang::CharSourceRange::getCharRange (FunctionNode->getSourceRange ()), Rewrite.getSourceMgr (), Rewrite.getLangOpts ()).str ();
76+ std::size_t loc = source_range.find_first_of (" {" );
77+ if (loc == std::string::npos) {
78+ loc = 0 ;
79+ } else {
80+ loc++;
81+ }
82+
83+ Rewrite.InsertText (FunctionNode->getLocStart ().getLocWithOffset (loc), " /*_FORCE_COVER_START_*/" , true , true );
6884 Rewrite.InsertText (FunctionNode->getLocEnd ().getLocWithOffset (1 ), " /*_FORCE_COVER_END_*/" , true , true );
6985
7086 }
0 commit comments