[cfe-dev] segmentation fault while building dominator tree in clang

Abu Naser Masud via cfe-dev cfe-dev at lists.llvm.org
Sat Apr 6 06:57:09 PDT 2019


Hello,

This is my first post in this list. I am building an analysis tool in
ClangTool.I am getting segmentation fault while building a dominator tree
in clang. The sample code that I am using to build the dominator tree is
the following:

*const* Decl* D=*static_cast*<Decl *>(f);     // FunctionDecl f

AnalysisDeclContextManager  *analDeclCtxMgr=*new *AnalysisDeclContextManager
(context);

*if*(AnalysisDeclContext  *analDeclCtx=analDeclCtxMgr->getContext(D)){

   DominatorTree domTree;

   domTree.buildDominatorTree(*analDeclCtx);

}


The input function for my tool is the following code from perlbench(CPU
2017)


*static* *bool*

S_adjust_index(pTHX_ AV *av, *const* MAGIC *mg, SSize_t *keyp)

{

    *bool* adjust_index = 1;

    *if* (mg) {

*/* Handle negative array indices 20020222 MJD */*

SV * *const* ref = SvTIED_obj(MUTABLE_SV(av), mg);

SvGETMAGIC(ref);

*if* (SvROK(ref) && SvOBJECT(SvRV(ref))) {

    SV * *const* * *const* negative_indices_glob =

hv_fetchs(SvSTASH(SvRV(ref)), NEGATIVE_INDICES_VAR, 0);


    *if* (negative_indices_glob && isGV(*negative_indices_glob)

    && SvTRUE(GvSV(*negative_indices_glob)))

adjust_index = 0;

}

    }


    *if* (adjust_index) {

*keyp += AvFILL(av) + 1;

*if* (*keyp < 0)

    *return* *FALSE*;

    }

    *return* *TRUE*;

}


Would you please let me know where the problem is?


Thanks,

Masud
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20190406/fccf6fea/attachment.html>


More information about the cfe-dev mailing list