Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clarify that format must be a string literal in OpenCL_C.txt #1327

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

aharon-abramson
Copy link
Contributor

The intent behind "resolvable at compile time" is that format cannot be a kernel argument (see #1325 (comment))

@SunSerega
Copy link
Contributor

I think the old text allowed a constant variable containing format, not just a string literal.

That way, we can define these formats at the top and reuse them for multiple printf calls without #define-s.

The format is in the constant address space and must be resolvable at
compile time, i.e. cannot be dynamically created by the executing program
itself.
The format must be a string literal.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @SunSerega that this is a bit too strong, at least based on the current Clang behavior, which does not require the format string to be a string literal: https://godbolt.org/z/b33jKTe7K

Is there a C or C++ term we could use instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that Clang allows this, but it isn't happy either:

warning: format string is not a string literal (potentially insecure)

Doesn't this warning hint that format should be restricted to string literals?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants