Esempio n. 1
0
void ansi_c_convert_typet::read_rec(const typet &type)
{
  if(type.id() == "merged_type")
  {
    forall_subtypes(it, type)
      read_rec(*it);
  }
  else if(type.id() == "signed")
    signed_cnt++;
  else if(type.id() == "unsigned")
    unsigned_cnt++;
  else if(type.id() == "volatile")
    c_qualifiers.is_volatile = true;
  else if(type.id() == "const")
    c_qualifiers.is_constant = true;
  else if(type.id() == "restricted")
    c_qualifiers.is_restricted = true;
  else if(type.id() == "char")
    char_cnt++;
  else if(type.id() == "int")
    int_cnt++;
  else if(type.id() == "int8")
    int8_cnt++;
  else if(type.id() == "int16")
    int16_cnt++;
  else if(type.id() == "int32")
    int32_cnt++;
  else if(type.id() == "int64")
    int64_cnt++;
  else if(type.id() == "ptr32")
    ptr32_cnt++;
  else if(type.id() == "ptr64")
    ptr64_cnt++;
  else if(type.id() == "short")
    short_cnt++;
  else if(type.id() == "long")
    long_cnt++;
  else if(type.id() == "double")
    double_cnt++;
  else if(type.id() == "float")
    float_cnt++;
  else if(type.is_bool())
    bool_cnt++;
  else if(type.id() == "static")
    c_storage_spec.is_static = true;
  else if(type.id() == "inline")
    c_storage_spec.is_inline = true;
  else if(type.id() == "extern")
    c_storage_spec.is_extern = true;
  else if(type.id() == "typedef")
    c_storage_spec.is_typedef = true;
  else if(type.id() == "register")
    c_storage_spec.is_register = true;
  else if(type.id() == "auto")
  {
    // ignore
  }
  else if(type == get_nil_irep())
  {
    // ignore
  }
  else
    other.push_back(type);
}