summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ModuleManager.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2014-11-21 02:22:46 +0000
committerHal Finkel <hfinkel@anl.gov>2014-11-21 02:22:46 +0000
commit12d36309c924f7bec2ed2540f9da618eb404a34c (patch)
tree4d8dff028478b74ea00333d8289465e6bafd87d7 /clang/lib/Serialization/ModuleManager.cpp
parent5c2465832874484b13afe9d1aa937d084142e7c1 (diff)
downloadbcm5719-llvm-12d36309c924f7bec2ed2540f9da618eb404a34c.tar.gz
bcm5719-llvm-12d36309c924f7bec2ed2540f9da618eb404a34c.zip
Clarify the description of the noalias attribute
The previous description of the noalias attribute did not accurately specify the implemented semantics, and the terminology used differed unnecessarily from that used by the C specification to define the semantics of restrict. For the argument attribute, the semantics can be precisely specified in terms of objects accessed through pointers based on the arguments, and this is now what is done. Saying that the semantics are 'slightly weaker' than that provided by C99 restrict is not really useful without further elaboration, so that has been removed from the sentence. noalias on a return value is really used to mean that the function is malloc-like (and, in fact, we use this attribute to represent __attribute__((malloc)) in Clang), and this is a stronger guarantee than that provided by restrict (because it is a property of the pointed-to memory region, not just a guarantee on object access). Clarifying this is relevant to fixing (and was motivated by the discussion on) PR21556. llvm-svn: 222497
Diffstat (limited to 'clang/lib/Serialization/ModuleManager.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud