------- Comment #1 from burnus at gcc dot gnu dot org 2010-04-06 13:50 ------- Some more quotes:
> You can mark parameters 1) unused, 2) pointed-to read-only, > 3) not escaping, 4) only once dereferenced (thus, access only > *p, not **p) > > You can mark return values as being a direct copy of arguments > or as non-aliasing (similar to the malloc attribute). + attr = lookup_attribute ("fnspec", TYPE_ATTRIBUTES (type)); + switch (TREE_STRING_POINTER (attr)[1 + arg]) + { + case 'x': + case 'X': + return EAF_UNUSED; + + case 'R': + return EAF_DIRECT | EAF_NOCLOBBER | EAF_NOESCAPE; + + case 'r': + return EAF_NOCLOBBER | EAF_NOESCAPE; + + case 'W': + return EAF_DIRECT | EAF_NOESCAPE; + + case 'w': + return EAF_NOESCAPE; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43665