Exemple #1
0
  const std::string SymbolConstantValue::getCompleteConstantMangledName()
  {
    if(m_state.isScalar(getUlamTypeIdx()))
      return getMangledName();

    std::ostringstream mangledfullname;
    if(isDataMember())
      {
	UTI dmclassuti = getDataMemberClass(); //t3881
	mangledfullname << m_state.getTheInstanceMangledNameByIndex(dmclassuti).c_str();
	mangledfullname << "." << getMangledName().c_str();
      }
    else if(isLocalsFilescopeDef())
      {
	//local filescope constant arrays end with filescope name (e.g. _3Foo4ulam)
	UTI locuti = getLocalsFilescopeType();
	u32 mangledclassid = m_state.getMangledClassNameIdForUlamLocalsFilescope(locuti);
	mangledfullname << m_state.m_pool.getDataAsString(mangledclassid).c_str();
	mangledfullname << "<EC>::THE_INSTANCE." << getMangledName().c_str();
      }
    else if(isClassArgument())
      {
	mangledfullname << m_state.getTheInstanceMangledNameByIndex(m_state.getCompileThisIdx()).c_str();
	mangledfullname << "." << getMangledName().c_str(); //t3894
      }
    else
      mangledfullname << getMangledName().c_str();
    return mangledfullname.str();
  } //getCompleteConstantMangledName
Exemple #2
0
 NNO SymbolWithValue::getDeclNodeNo()
 {
   assert(!isDataMember());
   return m_declnno;
 }