add: if ((TREE_CODE (type) == POINTER_TYPE || TREE_CODE (type) == INTEGER_TYPE) && is_attribute_p ("iptr", identifier)) return 1;
context: i386_valid_type_attribute_p (type, attributes, identifier, args)     tree type;     tree attributes ATTRIBUTE_UNUSED;     tree identifier;     tree args;{  if (TREE_CODE (type) != FUNCTION_TYPE      && TREE_CODE (type) != METHOD_TYPE      && TREE_CODE (type) != FIELD_DECL      && TREE_CODE (type) != TYPE_DECL)    return 0;  /* Stdcall attribute says callee is responsible for popping arguments     if they are not variable.  */  if (is_attribute_p ("stdcall", identifier))    return (args == NULL_TREE);  /* Cdecl attribute says the callee is a normal C declaration. */  if (is_attribute_p ("cdecl", identifier))    return (args == NULL_TREE);  /* Regparm attribute specifies how many integer arguments are to be     passed in registers. */  if (is_attribute_p ("regparm", identifier))    {      tree cst;      if (! args || TREE_CODE (args) != TREE_LIST	  || TREE_CHAIN (args) != NULL_TREE	  || TREE_VALUE (args) == NULL_TREE)	return 0;      cst = TREE_VALUE (args);      if (TREE_CODE (cst) != INTEGER_CST)	return 0;      if (TREE_INT_CST_HIGH (cst) != 0	  || TREE_INT_CST_LOW (cst) < 0	  || TREE_INT_CST_LOW (cst) > REGPARM_MAX)	return 0;      return 1;    }  return 0;}