Skip to content

Commit

Permalink
Merge pull request #1164 from davis-matthew/master
Browse files Browse the repository at this point in the history
Spelling Fixes
  • Loading branch information
yuleisui authored Aug 14, 2023
2 parents 8d4c268 + 8f57d94 commit f889cfb
Show file tree
Hide file tree
Showing 83 changed files with 163 additions and 163 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@
* [DDA](https://github.com/SVF-tools/SVF/tree/master/svf/include/DDA) (<b>demand-driven analysis</b>): flow-sensitive, context-sensitive points-to analysis ([FSE'16](https://yuleisui.github.io/publications/fse16.pdf), [TSE'18](https://yuleisui.github.io/publications/tse18.pdf));
* [MSSA](https://github.com/SVF-tools/SVF/tree/master/svf/include/MSSA) (<b>memory SSA form construction</b>): memory regions, side-effects, SSA form ([JSS'18](https://yuleisui.github.io/publications/jss18.pdf));
* [SABER](https://github.com/SVF-tools/SVF/tree/master/svf/include/SABER) (<b>memory error checking</b>): memory leaks and double-frees ([ISSTA'12](https://yuleisui.github.io/publications/issta12.pdf), [TSE'14](https://yuleisui.github.io/publications/tse14.pdf), [ICSE'18](https://yuleisui.github.io/publications/icse18a.pdf));
* [MTA](https://github.com/SVF-tools/SVF/tree/master/svf/include/MTA) (<b>analysis of mutithreaded programs</b>): value-flows for multithreaded programs ([CGO'16](https://yuleisui.github.io/publications/cgo16.pdf));
* [MTA](https://github.com/SVF-tools/SVF/tree/master/svf/include/MTA) (<b>analysis of multithreaded programs</b>): value-flows for multithreaded programs ([CGO'16](https://yuleisui.github.io/publications/cgo16.pdf));
* [CFL](https://github.com/SVF-tools/SVF/tree/master/svf/include/CFL) (<b>context-free-reachability analysis</b>): standard CFL solver, graph and grammar ([OOPSLA'22](https://yuleisui.github.io/publications/oopsla22.pdf), [PLDI'23](https://yuleisui.github.io/publications/pldi23.pdf));
* [SVFIR](https://github.com/SVF-tools/SVF/tree/master/svf/include/SVFIR) and [MemoryModel](https://github.com/SVF-tools/SVF/tree/master/svf/include/MemoryModel) (<b>SVFIR</b>): SVFIR, memory abstraction and points-to data structure ([SAS'21](https://yuleisui.github.io/publications/sas21.pdf));
* [Graphs](https://github.com/SVF-tools/SVF/tree/master/svf/include/Graphs): <b> generating a variety of graphs</b>, including call graph, ICFG, class hirachary graph, constraint graph, value-flow graph for static analyses and code embedding ([OOPSLA'20](https://yuleisui.github.io/publications/oopsla20.pdf), [TOSEM'21](https://yuleisui.github.io/publications/tosem21.pdf))
* [Graphs](https://github.com/SVF-tools/SVF/tree/master/svf/include/Graphs): <b> generating a variety of graphs</b>, including call graph, ICFG, class hierarchy graph, constraint graph, value-flow graph for static analyses and code embedding ([OOPSLA'20](https://yuleisui.github.io/publications/oopsla20.pdf), [TOSEM'21](https://yuleisui.github.io/publications/tosem21.pdf))

<b>SVF</b>'s doxygen document is available [here](https://svf-tools.github.io/SVF-doxygen/html).

Expand Down
2 changes: 1 addition & 1 deletion svf-llvm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ else()
set(IN_SOURCE_BUILD 1)
endif()

# SVF-LLVM containes LLVM Libs
# SVF-LLVM contains LLVM Libs
file(GLOB SVFLLVM_SOURCES lib/*.cpp)

add_llvm_library(SvfLLVM STATIC ${SVFLLVM_SOURCES})
Expand Down
2 changes: 1 addition & 1 deletion svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class generic_bridge_gep_type_iterator : public std::iterator<std::forward_itera
}

// non-standard operators, these may not need be bridged but seems it's
// predunt to do so...
// prudent to do so...
Type* operator->() const
{
return operator*();
Expand Down
2 changes: 1 addition & 1 deletion svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ class SymbolTableBuilder
void analyzeStaticObjType(ObjTypeInfo* typeinfo, const Value* val);

///Get a reference to the components of struct_info.
/// Number of flattenned elements of an array or struct
/// Number of flattened elements of an array or struct
u32_t getNumOfFlattenElements(const Type* T);

///Get a reference to StructInfo.
Expand Down
2 changes: 1 addition & 1 deletion svf-llvm/lib/BreakConstantExpr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ BreakConstantGEPs::runOnModule (Module & module)
{
//
// For other instructions, we want to insert instructions replacing
// constant expressions immediently before the instruction using the
// constant expressions immediately before the instruction using the
// constant expression.
//
if (ConstantExpr * CE = hasConstantGEP (I->getOperand(index)))
Expand Down
4 changes: 2 additions & 2 deletions svf-llvm/lib/ICFGBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ using namespace LLVMUtil;
void ICFGBuilder::build(SVFModule* svfModule)
{
DBOUT(DGENERAL, outs() << pasMsg("\t Building ICFG ...\n"));
// Add the unqiue global ICFGNode at the entry of a program (before the main method).
// Add the unique global ICFGNode at the entry of a program (before the main method).
icfg->addGlobalICFGNode();

for (Module &M : LLVMModuleSet::getLLVMModuleSet()->getLLVMModules())
Expand Down Expand Up @@ -79,7 +79,7 @@ void ICFGBuilder::processFunEntry(const Function* fun, WorkList& worklist)
for (InstVec::const_iterator nit = insts.begin(), enit = insts.end();
nit != enit; ++nit)
{
ICFGNode* instNode = getOrAddBlockICFGNode(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(*nit)); //add interprocedure edge
ICFGNode* instNode = getOrAddBlockICFGNode(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(*nit)); //add interprocedural edge
icfg->addIntraEdge(FunEntryICFGNode, instNode);
worklist.push(*nit);
}
Expand Down
6 changes: 3 additions & 3 deletions svf-llvm/lib/LLVMModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ using namespace SVF;
LLVM may generate two global arrays @llvm.global_ctors and @llvm.global_dtors
that contain constructor and destructor functions for global variables. They
are not called explicitly, so we have to add them in the svf.main function.
The order to call these constructor and desctructor functions are also
The order to call these constructor and destructor functions are also
specified in the global arrays.
Related part in LLVM language reference:
https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable
Expand Down Expand Up @@ -466,7 +466,7 @@ void LLVMModuleSet::preProcessBCs(std::vector<std::string> &moduleNameVec)
mset->prePassSchedule();

std::string preProcessSuffix = ".pre.bc";
// Get the existing module names, remove old extention, add preProcessSuffix
// Get the existing module names, remove old extension, add preProcessSuffix
for (u32_t i = 0; i < moduleNameVec.size(); i++)
{
u32_t lastIndex = moduleNameVec[i].find_last_of(".");
Expand Down Expand Up @@ -685,7 +685,7 @@ void LLVMModuleSet::addSVFMain()
}

// Only create svf.main when the original main function is found, and also
// there are global contructor or destructor functions.
// there are global constructor or destructor functions.
if (orgMain && getModuleNum() > 0 &&
(ctor_funcs.size() > 0 || dtor_funcs.size() > 0))
{
Expand Down
10 changes: 5 additions & 5 deletions svf-llvm/lib/SVFIRBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ void SVFIRBuilder::initialiseNodes()
}

assert(pag->getTotalNodeNum() >= symTable->getTotalSymNum()
&& "not all node been inititalize!!!");
&& "not all node have been initialized!!!");

}

Expand Down Expand Up @@ -296,7 +296,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, AccessPath& ap)
const ConstantInt* op = SVFUtil::dyn_cast<ConstantInt>(offsetVal);

// if Options::ModelConsts() is disabled. We will treat whole array as one,
// but we can distinguish different field of an array of struct, e.g. s[1].f1 is differet from s[0].f2
// but we can distinguish different field of an array of struct, e.g. s[1].f1 is different from s[0].f2
if(const ArrayType* arrTy = SVFUtil::dyn_cast<ArrayType>(gepTy))
{
if(!op || (arrTy->getArrayNumElements() <= (u32_t)op->getSExtValue()))
Expand Down Expand Up @@ -433,7 +433,7 @@ void SVFIRBuilder::processCE(const Value* val)
}
else if (SVFUtil::isa<ConstantAggregate>(ref))
{
// we don't handle constant agrgregate like constant vectors
// we don't handle constant aggregate like constant vectors
}
else if (SVFUtil::isa<BlockAddress>(ref))
{
Expand Down Expand Up @@ -492,7 +492,7 @@ void SVFIRBuilder::InitialGlobal(const GlobalVariable *gvar, Constant *C,
if (C->getType()->isSingleValueType())
{
NodeID src = getValueNode(C);
// get the field value if it is avaiable, otherwise we create a dummy field node.
// get the field value if it is available, otherwise we create a dummy field node.
setCurrentLocation(gvar, nullptr);
NodeID field = getGlobalVarField(gvar, offset, LLVMModuleSet::getLLVMModuleSet()->getSVFType(C->getType()));

Expand Down Expand Up @@ -979,7 +979,7 @@ void SVFIRBuilder::visitVAArgInst(VAArgInst &inst)
/// <result> = freeze ty <val>
/// If <val> is undef or poison, ‘freeze’ returns an arbitrary, but fixed value of type `ty`
/// Otherwise, this instruction is a no-op and returns the input <val>
/// For now, we assume <val> is never a posion or undef.
/// For now, we assume <val> is never a poison or undef.
void SVFIRBuilder::visitFreezeInst(FreezeInst &inst)
{
NodeID dst = getValueNode(&inst);
Expand Down
4 changes: 2 additions & 2 deletions svf-llvm/lib/SVFIRExtAPI.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//===- SVFIR.cpp -- Exteral function IR of SVF ---------------------------------------------//
//===- SVFIR.cpp -- External function IR of SVF ---------------------------------------------//
//
// SVF: Static Value-Flow Analysis
//
Expand Down Expand Up @@ -649,7 +649,7 @@ void SVFIRBuilder::handleExtCall(const SVFInstruction* svfInst, const SVFFunctio
}
/// If forkedFun does not pass to spawnee as function type but as void pointer
/// remember to update inter-procedural callgraph/SVFIR/SVFG etc. when indirect call targets are resolved
/// We don't connect the callgraph here, further investigation is need to hanle mod-ref during SVFG construction.
/// We don't connect the callgraph here, further investigation is need to handle mod-ref during SVFG construction.
}

/// create inter-procedural SVFIR edges for hare_parallel_for calls
Expand Down
4 changes: 2 additions & 2 deletions svf-llvm/lib/SymbolTableBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ void SymbolTableBuilder::handleCE(const Value* val)
}
else if (SVFUtil::isa<ConstantAggregate>(ref))
{
// we don't handle constant agrgregate like constant vectors
// we don't handle constant aggregate like constant vectors
collectVal(ref);
}
else
Expand Down Expand Up @@ -795,7 +795,7 @@ u32_t SymbolTableBuilder::getObjSize(const Type* ety)
return numOfFields;
}

/// Number of flattenned elements of an array or struct
/// Number of flattened elements of an array or struct
u32_t SymbolTableBuilder::getNumOfFlattenElements(const Type* T)
{
if(Options::ModelArrays())
Expand Down
2 changes: 1 addition & 1 deletion svf-llvm/tools/MTA/MTAResultValidator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ CallStrCxt MTAResultValidator::getCxtArg(const Instruction* inst, unsigned int a
CallStrCxt cxt;
if (0 == x.size())
return cxt;
// Deal with the the second argument that records all callsites
// Deal with the second argument that records all callsites
for (std::vector<std::string>::iterator i = x.begin(); i != x.end(); i++)
{
std::vector<std::string> y = split((*i), '.');
Expand Down
2 changes: 1 addition & 1 deletion svf/include/AbstractExecution/ConsExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ namespace SVF
* / / | \ \ \
* true ... c0 c1 ... false constant
* \ \ \ | | |
* ⊥ not contant
* ⊥ not constant
*/
class ConsExeState final : public ExeState
{
Expand Down
2 changes: 1 addition & 1 deletion svf/include/AbstractExecution/IntervalExeState.h
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ class IntervalExeState : public ExeState
return (s32_t) e.lb().getNumeral();
}

///TODO: Create new inteval value
///TODO: Create new interval value
IntervalValue createIntervalValue(double lb, double ub, NodeID id)
{
_varToItvVal[id] = IntervalValue(lb, ub);
Expand Down
2 changes: 1 addition & 1 deletion svf/include/AbstractExecution/IntervalValue.h
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ inline IntervalValue operator+(const IntervalValue &lhs,
}
}

/// Substract IntervalValues
/// Subtract IntervalValues
inline IntervalValue operator-(const IntervalValue &lhs,
const IntervalValue &rhs)
{
Expand Down
2 changes: 1 addition & 1 deletion svf/include/AbstractExecution/SymState.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class SymState
/// Constructor
SymState(ConsExeState _es, TypeState _as);

/// Desstructor
/// Destructor
virtual ~SymState() = default;

/// Copy Constructor
Expand Down
2 changes: 1 addition & 1 deletion svf/include/CFL/CFGrammar.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class GrammarBase
/// Default Value for Symbol is 0.
Symbol() : kind(0), attribute(0), variableAttribute(0) {}

/// Contruct from u32_t move the bit to right field
/// Construct from u32_t move the bit to right field
Symbol(const u32_t& num) : kind(num & 0xFF), attribute((num >> 8 ) & 0xFFFF), variableAttribute((num >> 24)) {}

/// Conversion of u32_t
Expand Down
6 changes: 3 additions & 3 deletions svf/include/CFL/GrammarBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,18 @@ namespace SVF
*
* Production Format:
* <symbol> -> <symbol> *;
* LHS and RHS, Seperate by '->', symbol seperate by ' ', end by ';'
* LHS and RHS, Separate by '->', symbol separate by ' ', end by ';'
* support '*', '?', '(', ')'
*
* Input Format:
* Start:
* M // Specify Start Symbol in Second Line
* Terminal:
* Addr Copy Store Load Gep Vgep // Specify the order of terminal Addr->0, Copy->1 ..
* Productions: // Each Symbol seperate by 'Space', production end with ';'
* Productions: // Each Symbol separate by 'Space', production end with ';'
* M -> V d; // Terminal in NonCapital
* M -> dbar V d; // NonTerminal in Capital
* V -> M abar M a M; // LHS and RHS, Seperate by '->'
* V -> M abar M a M; // LHS and RHS, Separate by '->'
* V -> ( M ? abar ) * M ? ( a M ? ) *; // Support '(' ')' '?' '*' four regular expression sign
* Gep_j -> Gep_i F vgep; // Support variable attribute with variable attribute
* Gep_1 -> Gep_2; // Support fix number attribute
Expand Down
8 changes: 4 additions & 4 deletions svf/include/FastCluster/fastcluster.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// C++ standalone verion of fastcluster by Daniel Muellner
// C++ standalone version of fastcluster by Daniel Muellner
//
// Copyright: Daniel Muellner, 2011
// Christoph Dalitz, 2020
Expand All @@ -25,7 +25,7 @@ void cutree_k(int n, const int* merge, int nclust, int* labels);

//
// Assigns cluster labels (0, ..., nclust-1) to the n points such
// that the hierarchical clsutering is stopped at cluster distance cdist
// that the hierarchical clustering is stopped at cluster distance cdist
//
// Input arguments:
// n = number of observables
Expand Down Expand Up @@ -53,7 +53,7 @@ void cutree_cdist(int n, const int* merge, double* height, double cdist, int* la
// Output arguments:
// merge = allocated (n-1)x2 matrix (2*(n-1) array) for storing result.
// Result follows R hclust convention:
// - observabe indices start with one
// - observable indices start with one
// - merge[i][] contains the merged nodes in step i
// - merge[i][j] is negative when the node is an atom
// height = allocated (n-1) array with distances at each merge step
Expand All @@ -68,7 +68,7 @@ enum hclust_fast_methods
HCLUST_METHOD_SINGLE = 0,
// complete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
HCLUST_METHOD_COMPLETE = 1,
// omplete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
// complete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
HCLUST_METHOD_AVERAGE = 2,
// median link with the generic algorithm (Müllner, 2011)
HCLUST_METHOD_MEDIAN = 3,
Expand Down
2 changes: 1 addition & 1 deletion svf/include/Graphs/CHG.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//===----- CHG.h -- Class hirachary graph ---------------------------//
//===----- CHG.h -- Class hierarchy graph ---------------------------//
//
// SVF: Static Value-Flow Analysis
//
Expand Down
6 changes: 3 additions & 3 deletions svf/include/Graphs/ConsG.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class ConstraintGraph : public GenericGraph<ConstraintNode,ConstraintEdge>
return pag->getPTASVFStmtSet(kind);
}

/// Wappers used internally, not expose to Andernsen Pass
/// Wrappers used internally, not expose to Andersen Pass
//@{
inline NodeID getValueNode(const SVFValue* value) const
{
Expand Down Expand Up @@ -214,9 +214,9 @@ class ConstraintGraph : public GenericGraph<ConstraintNode,ConstraintEdge>

/// Used for cycle elimination
//@{
/// Remove edge from old dst target, change edge dst id and add modifed edge into new dst
/// Remove edge from old dst target, change edge dst id and add modified edge into new dst
void reTargetDstOfEdge(ConstraintEdge* edge, ConstraintNode* newDstNode);
/// Remove edge from old src target, change edge dst id and add modifed edge into new src
/// Remove edge from old src target, change edge dst id and add modified edge into new src
void reTargetSrcOfEdge(ConstraintEdge* edge, ConstraintNode* newSrcNode);
/// Remove addr edge from their src and dst edge sets
void removeAddrEdge(AddrCGEdge* edge);
Expand Down
4 changes: 2 additions & 2 deletions svf/include/Graphs/GenericGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ class GenericNode
}
//@}

/// Iterators used for SCC detection, overwrite it in child class if necessory
/// Iterators used for SCC detection, overwrite it in child class if necessary
//@{
virtual inline iterator directOutEdgeBegin()
{
Expand Down Expand Up @@ -460,7 +460,7 @@ class GenericGraph

/* !
* GenericGraphTraits specializations for generic graph algorithms.
* Provide graph traits for tranversing from a node using standard graph traversals.
* Provide graph traits for traversing from a node using standard graph traversals.
*/
namespace SVF
{
Expand Down
2 changes: 1 addition & 1 deletion svf/include/Graphs/GraphTraits.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
//
// This file defines the little GenericGraphTraits<X> template class that should be
// specialized by classes that want to be iteratable by generic graph iterators.
// specialized by classes that want to be iterable by generic graph iterators.
//
// This file also defines the marker class Inverse that is used to iterate over
// graphs in a graph defined, inverse ordering...
Expand Down
2 changes: 1 addition & 1 deletion svf/include/Graphs/GraphWriter.h
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ class GraphWriter
const void *DestNodeID, int DestNodePort,
const std::string &Attrs)
{
if (SrcNodePort > 64) return; // Eminating from truncated part?
if (SrcNodePort > 64) return; // Emanating from truncated part?
if (DestNodePort > 64) DestNodePort = 64; // Targeting the truncated part?

O << "\tNode" << SrcNodeID;
Expand Down
2 changes: 1 addition & 1 deletion svf/include/Graphs/IRGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ namespace SVF

/* !
* GenericGraphTraits specializations of SVFIR to be used for the generic graph algorithms.
* Provide graph traits for tranversing from a SVFIR node using standard graph traversals.
* Provide graph traits for traversing from a SVFIR node using standard graph traversals.
*/
template<> struct GenericGraphTraits<SVF::SVFVar*> : public GenericGraphTraits<SVF::GenericNode<SVF::SVFVar,SVF::SVFStmt>* >
{
Expand Down
2 changes: 1 addition & 1 deletion svf/include/Graphs/PTACallGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ class PTACallGraph : public GenericCallGraphTy
return getCallSitePair(id).second;
}
//@}
/// Whether we have aleady created this call graph edge
/// Whether we have already created this call graph edge
PTACallGraphEdge* hasGraphEdge(PTACallGraphNode* src, PTACallGraphNode* dst,PTACallGraphEdge::CEDGEK kind, CallSiteID csId) const;
/// Get call graph edge via nodes
PTACallGraphEdge* getGraphEdge(PTACallGraphNode* src, PTACallGraphNode* dst,PTACallGraphEdge::CEDGEK kind, CallSiteID csId);
Expand Down
4 changes: 2 additions & 2 deletions svf/include/Graphs/VFGNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -841,7 +841,7 @@ class ArgumentVFGNode : public VFGNode
};

/*
* ICFG Node stands for acutal parameter node (top level pointers)
* ICFG Node stands for actual parameter node (top level pointers)
*/
class ActualParmVFGNode : public ArgumentVFGNode
{
Expand Down Expand Up @@ -962,7 +962,7 @@ class FormalParmVFGNode : public ArgumentVFGNode
};

/*!
* Callsite receive paramter
* Callsite receive parameter
*/
class ActualRetVFGNode: public ArgumentVFGNode
{
Expand Down
4 changes: 2 additions & 2 deletions svf/include/MSSA/MSSAMuChi.h
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ class MSSADEF
MRVer* resVer;

public:
/// Constructor/Destructer for MSSADEF
/// Constructor/Destructor for MSSADEF
//@{
MSSADEF(DEFTYPE t, const MemRegion* m): type(t), mr(m), resVer(nullptr)
{
Expand Down Expand Up @@ -401,7 +401,7 @@ class MSSACHI : public MSSADEF
Cond cond;
public:
typedef typename MSSADEF::DEFTYPE CHITYPE;
/// Constructor/Destructer for MSSACHI
/// Constructor/Destructor for MSSACHI
//@{
MSSACHI(CHITYPE t, const MemRegion* m, Cond c): MSSADEF(t,m), opVer(nullptr), cond(c)
{
Expand Down
Loading

0 comments on commit f889cfb

Please sign in to comment.