[Lldb-commits] [lldb] 69f2b5f - Revert an unintentional API ABI break

Adrian Prantl via lldb-commits lldb-commits at lists.llvm.org
Thu Jan 5 13:43:24 PST 2023


Author: Adrian Prantl
Date: 2023-01-05T13:43:12-08:00
New Revision: 69f2b5fcf1be2226181cce21066f072279ba5d14

URL: https://github.com/llvm/llvm-project/commit/69f2b5fcf1be2226181cce21066f072279ba5d14
DIFF: https://github.com/llvm/llvm-project/commit/69f2b5fcf1be2226181cce21066f072279ba5d14.diff

LOG: Revert an unintentional API ABI break

lldb::LanguageType is used as a parameter in
SBExpressionOptions::SetLanguage(), which actually makes this type API
too. Commit 6eaedbb52f2a616e644e5acc7279c8b07c4cfe82 added a
`: uint16_t` to it, which broke binary compatibility for the SBAPI. This
patch reverts to the original enum.

I tried moving the entire enum into include/API, but that created a
cyclic module dependency between API and Utility. To keep things
simple, this just reverts to the original code and adds a warning.

rdar://103415402

Differential Revision: https://reviews.llvm.org/D141087

Added: 
    

Modified: 
    lldb/include/lldb/lldb-enumerations.h

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/lldb-enumerations.h b/lldb/include/lldb/lldb-enumerations.h
index f4748d0030f56..f92e63cc45f42 100644
--- a/lldb/include/lldb/lldb-enumerations.h
+++ b/lldb/include/lldb/lldb-enumerations.h
@@ -437,7 +437,10 @@ FLAGS_ENUM(WatchpointEventType){
 /// specification for ease of use and consistency.
 /// The enum -> string code is in Language.cpp, don't change this
 /// table without updating that code as well.
-enum LanguageType : uint16_t {
+///
+/// This datatype is used in SBExpressionOptions::SetLanguage() which
+/// makes this type API. Do not change its underlying storage type!
+enum LanguageType {
   eLanguageTypeUnknown = 0x0000,        ///< Unknown or invalid language value.
   eLanguageTypeC89 = 0x0001,            ///< ISO C:1989.
   eLanguageTypeC = 0x0002,              ///< Non-standardized C, such as K&R.


        


More information about the lldb-commits mailing list