Issue 1095: Inconsistent usage of "based on"

Authors: Joseph Myers
Date: 2026-08-26
Submitted against: C23
Status: Open

The definition of "based on" in C23 6.7.4.2 defines when a pointer expression is based on a pointer object.

However, in 6.7.13.8.1 (Standard attributes for function types: general), "based on" is used four times in a way inconsistent with how it is defined, referring to an lvalue (or an access) that is based on, or not based on, a pointer parameter, when consistency would mean referring to the address of that lvalue being based on a pointer parameter. Care should be taken in fixing this to consider whether there are any issues with non-addressable lvalues.