[llvm] c9497a2 - [OCaml] Fix test with invalid usage of #dbg_declare (#134508)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 6 18:26:48 PDT 2025
Author: Alan
Date: 2025-04-06T21:26:44-04:00
New Revision: c9497a22ef9f9802401cf0cf3352dcbd4f14bcbd
URL: https://github.com/llvm/llvm-project/commit/c9497a22ef9f9802401cf0cf3352dcbd4f14bcbd
DIFF: https://github.com/llvm/llvm-project/commit/c9497a22ef9f9802401cf0cf3352dcbd4f14bcbd.diff
LOG: [OCaml] Fix test with invalid usage of #dbg_declare (#134508)
Even though #dbg_declare can only describe pointers, one of the OCaml
tests tried to add a #dbg_declare to an i32 argument. The change
introduced in ecd4c08 caught this incorrect usage.
Added:
Modified:
llvm/test/Bindings/OCaml/debuginfo.ml
Removed:
################################################################################
diff --git a/llvm/test/Bindings/OCaml/debuginfo.ml b/llvm/test/Bindings/OCaml/debuginfo.ml
index f95800dfcb025..6ebc7c35879a4 100644
--- a/llvm/test/Bindings/OCaml/debuginfo.ml
+++ b/llvm/test/Bindings/OCaml/debuginfo.ml
@@ -112,7 +112,18 @@ let test_get_function m dibuilder file_di m_di =
stdout_metadata int_ty_di;
(* CHECK: [[INT32_PTR:<0x[0-9a-f]*>]] = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
*)
- let param_types = [| null_metadata; int_ty_di |] in
+ let int_ptr_ty_di =
+ Llvm_debuginfo.dibuild_create_pointer_type dibuilder
+ ~pointee_ty:int_ty_di
+ ~size_in_bits:32
+ ~align_in_bits:32
+ ~address_space:0
+ ~name:"ptrint"
+ in
+ stdout_metadata int_ptr_ty_di;
+ (* CHECK: [[PTRINT32_PTR:<0x[0-9a-f]*>]] = !DIDerivedType(tag: DW_TAG_pointer_type, name: "ptrint", baseType: [[INT32_PTR]], size: 32, align: 32, dwarfAddressSpace: 0)
+ *)
+ let param_types = [| null_metadata; int_ty_di; int_ptr_ty_di |] in
let fty_di =
Llvm_debuginfo.dibuild_create_subroutine_type dibuilder ~file:file_di
~param_types flags_zero
@@ -126,7 +137,7 @@ let test_get_function m dibuilder file_di m_di =
Llvm_debuginfo.dibuild_get_or_create_type_array dibuilder ~data:param_types
in
stdout_metadata fty_di_args;
- (* CHECK: [[FARGS_PTR:<0x[0-9a-f]*>]] = !{null, [[INT32_PTR]]}
+ (* CHECK: [[FARGS_PTR:<0x[0-9a-f]*>]] = !{null, [[INT32_PTR]], [[PTRINT32_PTR]]}
*)
stdout_metadata fty_di;
(* CHECK: [[SBRTNTY_PTR:<0x[0-9a-f]*>]] = !DISubroutineType(types: [[FARGS_PTR]])
@@ -134,7 +145,8 @@ let test_get_function m dibuilder file_di m_di =
(* Let's create the LLVM-IR function now. *)
let name = "tfun" in
let fty =
- Llvm.function_type (Llvm.void_type context) [| Llvm.i32_type context |]
+ Llvm.function_type (Llvm.void_type context)
+ [| Llvm.i32_type context; Llvm.pointer_type context |]
in
let f = Llvm.define_function name fty m in
let f_di =
@@ -160,11 +172,12 @@ let test_bbinstr fty f f_di file_di dibuilder =
group "basic_block and instructions tests";
(* Create this pattern:
* if (arg0 != 0) {
- * foo(arg0);
+ * foo(arg0, arg1);
* }
* return;
*)
let arg0 = (Llvm.params f).(0) in
+ let arg1 = (Llvm.params f).(1) in
let builder = Llvm.builder_at_end context (Llvm.entry_block f) in
let zero = Llvm.const_int (Llvm.i32_type context) 0 in
let cmpi = Llvm.build_icmp Llvm.Icmp.Ne zero arg0 "cmpi" builder in
@@ -185,7 +198,7 @@ let test_bbinstr fty f f_di file_di dibuilder =
| Some file_of_f_di', Some file_of_scope' ->
file_of_f_di' = file_di && file_of_scope' = file_di
| _ -> false );
- let foocall = Llvm.build_call fty foodecl [| arg0 |] "" builder in
+ let foocall = Llvm.build_call fty foodecl [| arg0; arg1 |] "" builder in
let foocall_loc =
Llvm_debuginfo.dibuild_create_debug_location context ~line:10 ~column:12
~scope
@@ -290,17 +303,17 @@ let test_variables f dibuilder file_di fun_di =
let () = Printf.printf "%s\n" (Llvm.string_of_lldbgrecord vdi) in
(* CHECK: dbg_declare(ptr %my_alloca, ![[#]], !DIExpression(), ![[#]])
*)
- let arg0 = (Llvm.params f).(0) in
+ let arg1 = (Llvm.params f).(1) in
let arg_var = Llvm_debuginfo.dibuild_create_parameter_variable dibuilder ~scope:fun_di
~name:"my_arg" ~argno:1 ~file:file_di ~line:10 ~ty
~always_preserve:false flags_zero
in
- let argdi = Llvm_debuginfo.dibuild_insert_declare_before dibuilder ~storage:arg0
+ let argdi = Llvm_debuginfo.dibuild_insert_declare_before dibuilder ~storage:arg1
~var_info:arg_var ~expr:(Llvm_debuginfo.dibuild_expression dibuilder [||])
~location ~instr:entry_term
in
let () = Printf.printf "%s\n" (Llvm.string_of_lldbgrecord argdi) in
- (* CHECK: dbg_declare(i32 %0, ![[#]], !DIExpression(), ![[#]])
+ (* CHECK: dbg_declare(ptr %1, ![[#]], !DIExpression(), ![[#]])
*)
()
More information about the llvm-commits
mailing list