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
Caps3.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
