================ @@ -112,6 +112,25 @@ class LangOptionsBase { SOB_Trapping }; + // Used by __attribute__((overflow_behavior())) to describe overflow behavior + // on a per-type basis. + enum OverflowBehaviorKind { + // Default C standard behavior (type dependent). + OB_Unset, + + // __attribute__((overflow_behavior("wrap"))) + OB_Wrap, + + // __attribute__((overflow_behavior("no_wrap"))) + OB_NoWrap, + + // Signed types defined as wrapping via -fwrapv can still be instrumented + // by sanitizers (PR82432). This field is needed to disambiguate canonical + // wrapping type behaviors from -fwrapv behaviors. + // -fwrapv + OB_FWrapv ---------------- JustinStitt wrote:
I am using `getOverflowBehaviorConsideringType()` which considers the `SignedOverflowBehavior` as well as any overflow behavior types. As I am combining both into a common interface, I need to disambiguate between unmodified signed arithmetic and `-fwrapv` arithmetic. I think perhaps renaming this field to `OB_SignedAndDefined` would better represent its meaning. https://github.com/llvm/llvm-project/pull/148914 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits