-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Open
Labels
clang:bounds-safetyIssue/PR relating to the experimental -fbounds-safety feature in ClangIssue/PR relating to the experimental -fbounds-safety feature in Clang
Description
__counted_by should not be allowed to reference struct members from within nested contexts, as this is not supported.
The following cases should be rejected with clear diagnostics:
struct counted_by_function_pointer_param_late {
int (*callback)(int *__counted_by(len)); // Should error: cannot reference member from nested context
int len;
};
struct counted_by_function_pointer_param {
int len;
int (*callback)(int *__counted_by(len)); // Should error: cannot reference member from nested context
};Current behavior:
These cases are currently accepted by the compiler.
Expected behavior:
The compiler should reject __counted_by attributes that attempt to reference struct members from within nested contexts (such as function pointer parameter types), regardless of whether the referenced member is declared before or after.
Rationale:
Referring to a struct member from a nested context is not supported and should be diagnosed as an error.
Metadata
Metadata
Assignees
Labels
clang:bounds-safetyIssue/PR relating to the experimental -fbounds-safety feature in ClangIssue/PR relating to the experimental -fbounds-safety feature in Clang