aaron.ballman added a comment.

In D126324#3537282 <https://reviews.llvm.org/D126324#3537282>, @jyknight wrote:

> In D126324#3536785 <https://reviews.llvm.org/D126324#3536785>, @aaron.ballman 
> wrote:
>
>> The changes so far look sensible, but I think we should add some more tests 
>> for a few situations. 1) Using a const weak symbol as a valid initializer 
>> should be diagnosed (with a warning? with an error?) so users are alerted to 
>> the behavioral quirks.
>
> I don't feel this is really necessary.

Why?

My thinking is: it's invalid to initialize a file scope variable in C from 
something other than a constant expression. These are not constant expressions. 
Why should the initialization work silently and maybe do something wrong?

>> 2. Using a const weak symbol in a constant expression context should 
>> probably be an error, right? e.g.,
>
> That's already the case (except, using a VLA is not an error in either 
> language mode). Clang previously _only_ treated weak symbols as 
> compile-time-known in the backend; the frontend has treated it as an 
> non-constant-evaluable variable for ages, and that behavior is unchanged by 
> this patch.

Ah, okay, then it sounds like we already have the behavior I was hoping for, 
great.

>> Also, this definitely could use a release note so users know about the 
>> behavioral change.
>>
>> Do you have any ideas on how much code this change is expected to break? (Is 
>> it sufficient enough that we want to have an explicit deprecation period of 
>> the existing behavior before we switch to the new behavior?)
>
> Because it's only changing the optimizer behavior not the frontend constant 
> evaluator, I think it's pretty safe (which is also why I'm OK with it).

+1


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126324/new/

https://reviews.llvm.org/D126324

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to