[clang] [clang][Sema] Fix for enums overflowing (#24667) (PR #78742)

via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 22 06:27:25 PDT 2024


wheatman wrote:

I made the changes, added the tests, and fixed some things that the tests found.

A few questions.
It seems like n3030 is only partially supported, specifically 
```
extern enum forward fwd_val0; /* Constraint violation: incomplete type */
extern enum forward* fwd_ptr0; /* Constraint violation: enums cannot be
                                  used like other incomplete types */
```
However, these seem unrelated to the rest of the changes and I am not really sure how to begin with them so I just labeled the support as partial for now.

Also, I did not touch anything on the msvc side due to this comment
```
      // For MSVC ABI compatibility, unfixed enums must use an underlying type
      // of 'int'. However, if this is an unfixed forward declaration, don't set
      // the underlying type unless the user enables -fms-compatibility. This
      // makes unfixed forward declared enums incomplete and is more conforming.
```
It seems like they don't support these features yet and I figured breaking matched behavior was not desirable.
How do I set up the tests to not run on the msvc side?

https://github.com/llvm/llvm-project/pull/78742


More information about the cfe-commits mailing list