--- c-common.c~ 2006-01-04 09:16:08.000000000 +0000 +++ c-common.c 2006-02-20 19:43:06.000000000 +0000 @@ -5288,8 +5288,9 @@ if (!get_nonnull_operand (TREE_VALUE (args), &arg_num)) { - error ("nonnull argument has invalid operand number (argument %lu)", - (unsigned long) attr_arg_num); + if (!(flags & (int) ATTR_FLAG_BUILT_IN)) + error ("nonnull argument has invalid operand number (argument %lu)", + (unsigned long) attr_arg_num); *no_add_attrs = true; return NULL_TREE; } @@ -5307,16 +5308,18 @@ if (!argument || TREE_CODE (TREE_VALUE (argument)) == VOID_TYPE) { - error ("nonnull argument with out-of-range operand number (argument %lu, operand %lu)", - (unsigned long) attr_arg_num, (unsigned long) arg_num); + if (!(flags & (int) ATTR_FLAG_BUILT_IN)) + error ("nonnull argument with out-of-range operand number (argument %lu, operand %lu)", + (unsigned long) attr_arg_num, (unsigned long) arg_num); *no_add_attrs = true; return NULL_TREE; } if (TREE_CODE (TREE_VALUE (argument)) != POINTER_TYPE) { - error ("nonnull argument references non-pointer operand (argument %lu, operand %lu)", - (unsigned long) attr_arg_num, (unsigned long) arg_num); + if (!(flags & (int) ATTR_FLAG_BUILT_IN)) + error ("nonnull argument references non-pointer operand (argument %lu, operand %lu)", + (unsigned long) attr_arg_num, (unsigned long) arg_num); *no_add_attrs = true; return NULL_TREE; }