Issue 166454
Summary Reject unsupported `__counted_by` use cases in nested contexts
Labels clang:bounds-safety
Assignees
Reporter rapidsna
    `__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:

```C
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.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to