--- p/declarations.c Thu Mar 31 20:04:18 2005 +++ p/declarations.c Thu Jul 6 16:46:20 2006 @@ -2523,6 +2536,13 @@ type_attributes (tree *d, tree attribute PASCAL_TYPE_IOCRITICAL (TREE_TYPE (*d)) = 1; *tt = TREE_CHAIN (*tt); } + else if (IDENTIFIER_IS_BUILT_IN (TREE_PURPOSE (*tt), p_volatile)) + { + if (TREE_VALUE (*tt)) + error ("spurious argument to `%s' attribute", IDENTIFIER_NAME (TREE_PURPOSE (*tt))); + *d = p_build_type_variant (*d, TREE_READONLY (*d), 1); + *tt = TREE_CHAIN (*tt); + } else tt = &TREE_CHAIN (*tt); if ((TREE_CODE (*d) == POINTER_TYPE || TREE_CODE (*d) == REFERENCE_TYPE)