Skip to content

markOverloadedTemplateInstantiations

Mark any template instatiations that are overloaded (we can't output these since g++ can't resolve them).

Synopsis

Declared in <SageIII/astPostProcessing/markOverloadedTemplateInstantiations.h>

void
markOverloadedTemplateInstantiations(SgNode* node);

Description

This function marks IR nodes that can't be output because of a bug in the GNU g++ compile. Member functions that are overloaded can't be resolved in the template specialization. e.g. template <typename T> class X { X(T t){}; template<typename S> X(S s){} };

This is a work around for a bug in GNU g++ (version 3.3.x, 3.4.x,
  and 4.x (as I understand it)) Note that this bug in g++ prevents the
  transformation of non-template member functions in template classes that are
  overloaded with template member function in the same templated class.

Parameters

Name

Description

node

This class represents the base class for all IR nodes within Sage III.

Created with MrDocs