add: if ((TREE_CODE (type) == POINTER_TYPE || TREE_CODE (type) == INTEGER_TYPE) && is_attribute_p ("iptr", identifier)) return 1;
context: valid_m68k_type_attribute (type, attributes, identifier, args)     tree type, attributes, identifier, args;{  if (TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) == METHOD_TYPE)    {      /* 'regparm' accepts one optional argument - number of registers in	 single class that should be used to pass arguments.  */      if (is_attribute_p ("regparm", identifier))	{	  if (lookup_attribute ("stkparm", attributes))	    {	      error ("`regparm' and `stkparm' are mutually exclusive");	      return 0;	    }	  if (args && TREE_CODE (args) == TREE_LIST)	    {	      tree numofregs = TREE_VALUE (args);	      if (numofregs)		if (TREE_CODE (numofregs) != INTEGER_CST		    || TREE_INT_CST_HIGH (numofregs)		    || TREE_INT_CST_LOW (numofregs) < 1		    || TREE_INT_CST_LOW (numofregs) > M68K_MAX_REGPARM)		  {		    error ("invalid argument to `regparm' attribute");		    return 0;		  }	    }	  return 1;	}      if (is_attribute_p ("stkparm", identifier))	{	  if (lookup_attribute ("regparm", attributes))	    {	      error ("`regparm' and `stkparm' are mutually exclusive");	      return 0;	    }	  return 1;	}    }  return 0;}