Skip to content

Commit b32cf75

Browse files
authored
[LLVM-C][OCaml] Make LLVMMetadataKind consistent between C and OCaml (#132268)
- Move LLVMDISubrangeTypeMetadataKind to end of LLVMMetadataKind enum. Inserting a new enum constant in the middle of the enum breaks the ABI for that enum. Commit e298fc2 introduced this issue, which was revealed because the OCaml binding tests failed. - Bring OCaml bindings up to date with LLVMMetadataKind enum.
1 parent 9d92d4b commit b32cf75

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

llvm/bindings/ocaml/debuginfo/llvm_debuginfo.ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,11 @@ module MetadataKind = struct
139139
| DIMacroMetadataKind
140140
| DIMacroFileMetadataKind
141141
| DICommonBlockMetadataKind
142+
| DIStringTypeMetadataKind
143+
| DIGenericSubrangeMetadataKind
144+
| DIArgListMetadataKind
145+
| DIAssignIDMetadataKind
146+
| DISubrangeTypeMetadataKind
142147
end
143148

144149
(** The amount of debug information to emit. *)

llvm/bindings/ocaml/debuginfo/llvm_debuginfo.mli

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,11 @@ module MetadataKind : sig
143143
| DIMacroMetadataKind
144144
| DIMacroFileMetadataKind
145145
| DICommonBlockMetadataKind
146+
| DIStringTypeMetadataKind
147+
| DIGenericSubrangeMetadataKind
148+
| DIArgListMetadataKind
149+
| DIAssignIDMetadataKind
150+
| DISubrangeTypeMetadataKind
146151
end
147152

148153
(** The amount of debug information to emit. *)

llvm/include/llvm-c/DebugInfo.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ typedef enum {
158158
/**
159159
* The kind of metadata nodes.
160160
*/
161+
// NOTE: New entries should always be appended instead of matching the order
162+
// in Metadata.def.
161163
enum {
162164
LLVMMDStringMetadataKind,
163165
LLVMConstantAsMetadataMetadataKind,
@@ -172,7 +174,6 @@ enum {
172174
LLVMDIEnumeratorMetadataKind,
173175
LLVMDIBasicTypeMetadataKind,
174176
LLVMDIDerivedTypeMetadataKind,
175-
LLVMDISubrangeTypeMetadataKind,
176177
LLVMDICompositeTypeMetadataKind,
177178
LLVMDISubroutineTypeMetadataKind,
178179
LLVMDIFileMetadataKind,
@@ -196,6 +197,7 @@ enum {
196197
LLVMDIGenericSubrangeMetadataKind,
197198
LLVMDIArgListMetadataKind,
198199
LLVMDIAssignIDMetadataKind,
200+
LLVMDISubrangeTypeMetadataKind,
199201
};
200202
typedef unsigned LLVMMetadataKind;
201203

0 commit comments

Comments
 (0)