Author: labath Date: Fri Dec 14 06:25:20 2018 New Revision: 349153 URL: http://llvm.org/viewvc/llvm-project?rev=349153&view=rev Log: Fix build with older (<3.0) swigs
It turns out it wasn't the compilers, but swig who had issues with my previous patch -- older versions do not recognise the "constexpr" keyword. Fortunately, that can be fixed the same way we fix all other swig incompatibilities: #ifndef SWIG. Modified: lldb/trunk/include/lldb/lldb-enumerations.h Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=349153&r1=349152&r2=349153&view=diff ============================================================================== --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Fri Dec 14 06:25:20 2018 @@ -12,10 +12,13 @@ #include <type_traits> +#ifndef SWIG // Macro to enable bitmask operations on an enum. Without this, Enum | Enum // gets promoted to an int, so you have to say Enum a = Enum(eFoo | eBar). If // you mark Enum with LLDB_MARK_AS_BITMASK_ENUM(Enum), however, you can simply // write Enum a = eFoo | eBar. +// Unfortunately, swig<3.0 doesn't recognise the constexpr keyword, so remove +// this entire block, as it is not necessary for swig processing. #define LLDB_MARK_AS_BITMASK_ENUM(Enum) \ constexpr Enum operator|(Enum a, Enum b) { \ return static_cast<Enum>( \ @@ -39,6 +42,9 @@ a = a & b; \ return a; \ } +#else +#define LLDB_MARK_AS_BITMASK_ENUM(Enum) +#endif #ifndef SWIG // With MSVC, the default type of an enum is always signed, even if one of the _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits