I’m working with the LLVM C API now.
I see that several functions are deprecated, however the only notion is in comments around the function.
Is there any specific reason why __attribute__((deprecated)) is omitted?
Will it make sense to send a patch with such additions?
I think there’s a two different “levels” of deprecated:
a) There’s a better function you should know about and prefer in new code, but the old one will (probably) not be removed. This sort of deprecation should only be mentioned in comments, since there’s no real reason to have people’s builds start spewing warning messages if they used the old function.
b) There’s a better function, and the old one will be removed soon. These ought to use a deprecated attribute, in order to entice people to switch over before it turns into a “no such function” error.
I’d expect most of the deprecations in the C API to be of the former kind.
Well, I’m not sure: if I’m doing some cleanup, and I reach the C API, I’ll look when the function was deprecated and may decide to remove it if it was not in the last release.
Yeah, honestly they’re more the latter, but we haven’t generally used the attribute here. Mostly because we’d get to conditionalize another attribute. I don’t have a strong opinion either way though. (i.e. feel free to submit something that adds an attribute for all platforms, or not if this is a good enough explanation).
I just have sent patch here:
I will appreciate if somebody can review it.