protected function markReferences(
        $funcName,
        $parameters,
        CompilationContext $compilationContext,
        &$references,
        $expression
    ) {
        if ($this->isBuiltInFunction($funcName)) {
            return;
        }

        $reflector = $this->getReflector($funcName);
        if ($reflector) {
            $numberParameters = \count($parameters);
            if ($numberParameters > 0) {
                $n = 1;
                $funcParameters = $reflector->getParameters();
                $isZendEngine3 = $compilationContext->backend->isZE3();
                foreach ($funcParameters as $parameter) {
                    if ($numberParameters >= $n) {
                        if ($parameter->isPassedByReference()) {
                            /* TODO hack, fix this better */
                            if ($isZendEngine3 && '&' == $parameters[$n - 1][0]) {
                                $parameters[$n - 1] = substr($parameters[$n - 1], 1);
                            }

                            if (!preg_match('/^[a-zA-Z0-9$\_]+$/', $parameters[$n - 1])) {
                                $compilationContext->logger->warning(
                                    'Cannot mark complex expression as reference',
                                    ['invalid-reference', $expression]
                                );
                                continue;
                            }

                            $variable = $compilationContext->symbolTable->getVariable($parameters[$n - 1]);
                            if ($variable) {
                                $variable->setDynamicTypes('undefined');
                                $referenceSymbol = $compilationContext->backend->getVariableCode($variable);
                                $compilationContext->codePrinter->output('ZEPHIR_MAKE_REF('.$referenceSymbol.');');
                                $references[] = $parameters[$n - 1];
                            }
                        }
                    }
                    ++$n;
                }
            }
        }
    }