HomePhabricator

Enhance attribute 'nonnull' to be applicable to parameters directly (infix).
rL199467Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Enhance attribute 'nonnull' to be applicable to parameters directly (infix).

This allows the following syntax:

void baz(__attribute__((nonnull)) const char *str);

instead of:

void baz(const char *str) __attribute__((nonnull(1)));

This also extends to Objective-C methods.

The checking logic in Sema is not as clean as I would like. Effectively
now we need to check both the FunctionDecl/ObjCMethodDecl and the parameters,
so the point of truth is spread in two places, but the logic isn't that
cumbersome.

Implements rdar://problem/14691443.

Details

Committed
kremenekJan 16 2014, 10:24 PM
Parents
rL199466: Add ArrayRef<> interface to get the parameters of a FunctionDecl/ObjCMethodDecl.
Branches
Unknown
Tags
Unknown

Event Timeline