MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / MarkSideEffects

Method MarkSideEffects

src/ast/ast_unused.cpp:99–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97 FunctionPtr func = nullptr;
98 public:
99 void MarkSideEffects ( Module & mod ) {
100 for ( auto & fn : mod.functions.each() ) {
101 if (!fn->isTemplate && !fn->builtIn) {
102 fn->knownSideEffects = false;
103 fn->sideEffectFlags &= ~uint32_t(SideEffects::inferredSideEffects);
104 }
105 }
106 for ( auto & fn : mod.functions.each() ) {
107 if (!fn->isTemplate && !fn->builtIn && !fn->knownSideEffects) {
108 asked.clear();
109 getSideEffects(fn);
110 }
111 }
112 for ( auto & var : mod.globals.each() ) {
113 if ( var->init ) {
114 TrackVariableFlags vaf;
115 var->init = var->init->visit(vaf);
116 }
117 }
118 }
119 protected:
120 void propagateAt ( ExprAt * at ) {
121 if ( at->subexpr->type->isHandle() && at->subexpr->type->annotation->isIndexMutable(at->index->type) ) {

Callers 1

buildAccessFlagsMethod · 0.80

Calls 2

clearMethod · 0.45
visitMethod · 0.45

Tested by

no test coverage detected