r228120 - Sema: Add support for __declspec(restrict)
Aaron Ballman
aaron at aaronballman.com
Wed Feb 4 05:40:32 PST 2015
On Wed, Feb 4, 2015 at 2:23 AM, David Majnemer <david.majnemer at gmail.com> wrote:
> Author: majnemer
> Date: Wed Feb 4 01:23:21 2015
> New Revision: 228120
>
> URL: http://llvm.org/viewvc/llvm-project?rev=228120&view=rev
> Log:
> Sema: Add support for __declspec(restrict)
>
> __declspec(restrict) and __attribute(malloc) are both handled
> identically by clang: they are allowed to the noalias LLVM attribute.
>
> Seeing as how noalias models the C99 notion of 'restrict', rename the
> internal clang attribute to Restrict from Malloc.
>
> Modified:
> cfe/trunk/include/clang/Basic/Attr.td
> cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> cfe/trunk/include/clang/Sema/Sema.h
> cfe/trunk/lib/CodeGen/CGCall.cpp
> cfe/trunk/lib/Sema/SemaDeclAttr.cpp
> cfe/trunk/lib/Sema/SemaExprCXX.cpp
> cfe/trunk/test/Parser/MicrosoftExtensions.c
> cfe/trunk/test/Sema/attr-malloc.c
> cfe/trunk/test/SemaObjC/attr-malloc.m
>
> Modified: cfe/trunk/include/clang/Basic/Attr.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=228120&r1=228119&r2=228120&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/Attr.td (original)
> +++ cfe/trunk/include/clang/Basic/Attr.td Wed Feb 4 01:23:21 2015
> @@ -790,9 +790,9 @@ def IBOutletCollection : InheritableAttr
> let Documentation = [Undocumented];
> }
>
> -def Malloc : InheritableAttr {
> - let Spellings = [GCC<"malloc">];
> -// let Subjects = [Function];
> +def Restrict : InheritableAttr {
> + let Spellings = [Declspec<"restrict">, GCC<"malloc">];
> + let Subjects = SubjectList<[Function]>;
>From memory, isn't __declspec(restrict) basically the function return
type version of the MS extension __restrict? I'm wondering about
adding a Keyword spelling, and how much work it would be to support
that? (If I'm way off-base, that's fine too.)
> let Documentation = [Undocumented];
While I know this is not a new attribute per-se, it would still be
good to have it documented just the same.
Thank you for working on this!
~Aaron
More information about the cfe-commits
mailing list