AaronBallman wrote:

> > > (Was out of town...)
> > > As mentioned at [#67360 
> > > (comment)](https://github.com/llvm/llvm-project/pull/67360#issuecomment-1736187374)
> > >  , I think a default error is probably not appropriate. A priority value 
> > > <= 100 may compete with a runtime `__attribute__((constructor(X)))` but 
> > > more often it will work. A warning is fine. GCC defaults to a warning and 
> > > the attribute form with a priority is an obscure feature anyway, 
> > > therefore it doesn't buy us much to make it an error. You can make `> 
> > > 65535` an error, though.
> > 
> > 
> > I disagree -- we decided ages ago with init_priority that using these 
> > reserved priorities should be an error that can be ignored for the few 
> > cases where the reservation does not apply. We should be designing the Ux 
> > for these features around the majority of users, not the majority of people 
> > who will be expert user of the feature. Otherwise, we should not pretend 
> > these are reserved values -- it's far too easy to ignore a warning IMO.
> > That said, I'm abandoning this work regardless. It was unplanned work I 
> > took on only because I noticed how deficient the implementation was 
> > regarding diagnostics when I went to add documentation for the attribute in 
> > the first place. A lot of our attributes from 2000-2012 or so are similarly 
> > problematic, unfortunately. So I wouldn't be surprised to see this come up 
> > again in the future.
> 
> First, it would be a shame if you abandon this over this bit, there is plenty 
> of value to this patch, even as far as the refactoring (which makes some 
> other folks' patches easier to review!). While I agree with you that the 
> error is appropriate, it doesn't seem practical at the moment thanks to GCC's 
> implementation. Abandoning this patch means that those will NEVER be an 
> error, so at least having this patch in gives us an opportunity to make this 
> an error 'someday'.
> 
> IMO, a warning/Warning-as-default-error are both appropriate (with preference 
> towards the latter) 'for now', and we should fight the battle of making this 
> a hard error another time.

That doesn't solve the issue though -- we have `-Werror` bots for compiler-rt, 
so someone still needs to figure out how to beat CMake into shape even if we 
introduce it as a warning. I took several runs at the build system and was 
unsuccessful -- I can't repro locally on Windows and our precommit CI doesn't 
demonstrate the issue, so this requires making a number of speculative commits 
+ watch the bots for fallout and that's where I ran out of time for the 
unexpected effort. I'm totally happy if someone wants to pick this up and run 
it across the finish line, warning-as-error or warning form. I personally think 
warning-as-error form is the correct approach though; "GCC doesn't err" isn't 
really compelling logic to me because GCC attributes (especially the older 
ones) have traditionally had underwhelming diagnostic behavior -- we should 
strive to do better when possible.

https://github.com/llvm/llvm-project/pull/67673
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to