mizvekov wrote:

The test for this should actually go in 
`clang/test/SemaCXX/sugar-common-types.cpp`, following the style in the file.

One example test, without using constexpr: https://godbolt.org/z/8PGa4aTPx
```C++
enum class Z {};

using ConstInt = const int;
using ConstIntArray1 = ConstInt[1];
using ConstIntArrayInc = ConstInt[];

const ConstIntArray1 c = { 5 };
const ConstIntArrayInc d = { 0 };
Z t1 = false ? d : c;
```

Also I note there is a separate bug here in the type printer: 
https://godbolt.org/z/5afcxnor7

We get a diagnostic: `error: cannot initialize a variable of type 'Z' with an 
lvalue of type 'const ConstIntArray1' (aka 'const const int[1]')`. We can drop 
that redundant extra const, because otherwise it does not round trip to that 
doubly qualified type anyway.

About the fix, I think it's at the wrong level and we shouldn't just be 
dropping the qualifiers like that, but it's been a while I implemented this 
functionality and I would need some time to think about it.

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

Reply via email to