This patch adds the ability to use logical expressions for capability
attributes. This is to allow requirements to be expressed not just in
terms of lists, but in terms of logical expressions. Eg)

void foo(void) __attribute__((requires_capability((FlightControl ||
Worker) && !Logger)));

This functionality is lowered from an Expr into an LExpr (logical
expression) which we can then perform Boolean implication on to
determine whether the capability context satisfies the logical
expression.

It does not hook this functionality into the existing capability
analyses because that is a considerably larger chunk of code to be
implemented in a subsequent patch. Like ThreadSafetyTIL.cpp/h, this is
WIP code.

~Aaron

Attachment: Caps3.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to