diff --git a/MODULE.bazel b/MODULE.bazel index 7cc4a205db01..d371d5d0a1ee 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -83,8 +83,8 @@ git_override( build_file_content = "# empty", # We pin to specific upstream commits and try to track top-of-tree # reasonably closely rather than pinning to a specific release. - # HEAD as of 2026-08-06. - commit = "a6b0af7536ef0ae8383ec729c5fbf23c73243776", + # HEAD as of 2026-09-08. + commit = "7024b9e1b423b3c3c6ac76ab6a73cb2c9e4ef842", patch_cmds = ["echo \"module(name='llvm-raw')\" > MODULE.bazel"], patch_strip = 1, patches = [ @@ -93,7 +93,6 @@ git_override( "//bazel/llvm_project:0004_Introduce_basic_sources_exporting_for_libunwind.patch", "//bazel/llvm_project:0005_Introduce_basic_sources_exporting_for_libcxx_and_libcxxabi.patch", "//bazel/llvm_project:0006_Add_more_libc_math_excludes.patch", - "//bazel/llvm_project:0009_Introduce_starlark_exporting_compiler-rt_build_information.patch", "//bazel/llvm_project:0011_Temporarily_remove_reference_to_hermetic_toolchain.patch", ], remote = "https://github.com/llvm/llvm-project.git", diff --git a/bazel/llvm_project/0006_Add_more_libc_math_excludes.patch b/bazel/llvm_project/0006_Add_more_libc_math_excludes.patch index a8ee24859b26..be500e2e5e54 100644 --- a/bazel/llvm_project/0006_Add_more_libc_math_excludes.patch +++ b/bazel/llvm_project/0006_Add_more_libc_math_excludes.patch @@ -4,30 +4,34 @@ and https://github.com/llvm/llvm-project/pull/209984 --- --- a/utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel -@@ -473,5 +473,26 @@ - BUILTINS_LIBC_MATH_EXCLUDES = [ - # Sources requiring COMPILER_RT_USE_LIBC_MATH (e.g. LIBC_NAMESPACE::shared::*). -+ "lib/builtins/adddf3.cpp", - "lib/builtins/addtf3.cpp", -+ "lib/builtins/addsf3.cpp", -+ "lib/builtins/divdf3.cpp", -+ "lib/builtins/divsf3.cpp", -+ "lib/builtins/divtf3.cpp", -+ "lib/builtins/extenddftf2.cpp", -+ "lib/builtins/extendsfdf2.cpp", -+ "lib/builtins/extendsftf2.cpp", -+ "lib/builtins/extendxftf2.cpp", -+ "lib/builtins/muldf3.cpp", -+ "lib/builtins/mulsf3.cpp", -+ "lib/builtins/multf3.cpp", -+ "lib/builtins/negdf2.cpp", -+ "lib/builtins/negsf2.cpp", -+ "lib/builtins/subdf3.cpp", -+ "lib/builtins/subsf3.cpp", -+ "lib/builtins/subtf3.cpp", -+ "lib/builtins/truncdfsf2.cpp", -+ "lib/builtins/trunctfdf2.cpp", -+ "lib/builtins/trunctfsf2.cpp", -+ "lib/builtins/trunctfxf2.cpp", - ] - +@@ -303,6 +303,30 @@ + "lib/builtins/extendsfdf2.cpp", + "lib/builtins/extendsftf2.cpp", + "lib/builtins/extendxftf2.cpp", ++ "lib/builtins/fixdfdi.cpp", ++ "lib/builtins/fixdfsi.cpp", ++ "lib/builtins/fixdfti.cpp", ++ "lib/builtins/fixsfdi.cpp", ++ "lib/builtins/fixsfsi.cpp", ++ "lib/builtins/fixsfti.cpp", ++ "lib/builtins/fixunsdfdi.cpp", ++ "lib/builtins/fixunsdfsi.cpp", ++ "lib/builtins/fixunsdfti.cpp", ++ "lib/builtins/fixunssfdi.cpp", ++ "lib/builtins/fixunssfsi.cpp", ++ "lib/builtins/fixunssfti.cpp", ++ "lib/builtins/floatdidf.cpp", ++ "lib/builtins/floatdisf.cpp", ++ "lib/builtins/floatsidf.cpp", ++ "lib/builtins/floatsisf.cpp", ++ "lib/builtins/floattidf.cpp", ++ "lib/builtins/floattisf.cpp", ++ "lib/builtins/floatundidf.cpp", ++ "lib/builtins/floatundisf.cpp", ++ "lib/builtins/floatunsidf.cpp", ++ "lib/builtins/floatunsisf.cpp", ++ "lib/builtins/floatuntidf.cpp", ++ "lib/builtins/floatuntisf.cpp", + "lib/builtins/muldf3.cpp", + "lib/builtins/mulsf3.cpp", + "lib/builtins/multf3.cpp", diff --git a/bazel/llvm_project/0009_Introduce_starlark_exporting_compiler-rt_build_information.patch b/bazel/llvm_project/0009_Introduce_starlark_exporting_compiler-rt_build_information.patch deleted file mode 100644 index 05f4ba730a6a..000000000000 --- a/bazel/llvm_project/0009_Introduce_starlark_exporting_compiler-rt_build_information.patch +++ /dev/null @@ -1,576 +0,0 @@ -From 0ee985a794692a0eba510f54657400d814f5d2fa Mon Sep 17 00:00:00 2001 -From: Chandler Carruth -Date: Wed, 24 Jun 2026 11:29:41 -0400 -Subject: [PATCH] Improve compiler-rt build structure and export compilation - info - -This first improves the structure of the compiler-rt BUILD.bazel, fixing -bugs and exposing more carefully arranged source files. - -It also exposes compilation info for builtins and CRT files for use in -compiling these source files. ---- - .../compiler-rt/BUILD.bazel | 219 +++++++++++++++--- - .../compiler-rt/compiler-rt.bzl | 153 ++++++++++++ - 2 files changed, 336 insertions(+), 36 deletions(-) - create mode 100644 utils/bazel/llvm-project-overlay/compiler-rt/compiler-rt.bzl - -index 0c5e0af4cb48..ae4a99d6885c 100644 -diff --git a/utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel b/utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel ---- a/utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel -+++ b/utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel -@@ -3,6 +3,7 @@ - # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - - load("@rules_cc//cc:defs.bzl", "cc_library") -+load("compiler-rt.bzl", "make_filtered_builtins_srcs_groups") - - package( - default_visibility = ["//visibility:public"], -@@ -188,9 +189,15 @@ filegroup( - srcs = BUILTINS_CRTEND_SRCS, - ) - -+BUILTINS_EMUTLS_SRCS = ["lib/builtins/emutls.c"] -+ -+filegroup( -+ name = "builtins_emutls_srcs", -+ srcs = BUILTINS_EMUTLS_SRCS, -+) -+ - BUILTINS_HOSTED_SRCS = [ - "lib/builtins/clear_cache.c", -- "lib/builtins/emutls.c", - "lib/builtins/enable_execute_stack.c", - "lib/builtins/eprintf.c", - ] -@@ -252,11 +259,11 @@ filegroup( - ), - ) - --BUILTNS_ATOMICS_SRCS = ["lib/builtins/atomic.c"] -+BUILTINS_ATOMICS_SRCS = ["lib/builtins/atomic.c"] - - filegroup( - name = "builtins_atomics_srcs", -- srcs = BUILTNS_ATOMICS_SRCS + ["lib/builtins/assembly.h"], -+ srcs = BUILTINS_ATOMICS_SRCS + ["lib/builtins/assembly.h"], - ) - - BUILTINS_MACOS_ATOMIC_SRCS_PATTERNS = [ -@@ -269,6 +276,55 @@ filegroup( - srcs = glob(BUILTINS_MACOS_ATOMIC_SRCS_PATTERNS), - ) - -+BUILTINS_LIBC_MATH_EXCLUDES = [ -+ # Sources requiring COMPILER_RT_USE_LIBC_MATH (e.g. LIBC_NAMESPACE::shared::*). -+ "lib/builtins/adddf3.cpp", -+ "lib/builtins/addtf3.cpp", -+ "lib/builtins/addsf3.cpp", -+ "lib/builtins/divdf3.cpp", -+ "lib/builtins/divsf3.cpp", -+ "lib/builtins/divtf3.cpp", -+ "lib/builtins/extenddftf2.cpp", -+ "lib/builtins/extendsfdf2.cpp", -+ "lib/builtins/extendsftf2.cpp", -+ "lib/builtins/extendxftf2.cpp", -+ "lib/builtins/muldf3.cpp", -+ "lib/builtins/mulsf3.cpp", -+ "lib/builtins/multf3.cpp", -+ "lib/builtins/negdf2.cpp", -+ "lib/builtins/negsf2.cpp", -+ "lib/builtins/subdf3.cpp", -+ "lib/builtins/subsf3.cpp", -+ "lib/builtins/subtf3.cpp", -+ "lib/builtins/truncdfsf2.cpp", -+ "lib/builtins/trunctfdf2.cpp", -+ "lib/builtins/trunctfsf2.cpp", -+ "lib/builtins/trunctfxf2.cpp", -+] -+ -+# Source files for portable components of the compiler builtins library. -+filegroup( -+ name = "builtins_generic_srcs", -+ srcs = ["lib/builtins/cpu_model/cpu_model.h"] + glob( -+ [ -+ "lib/builtins/*.c", -+ "lib/builtins/*.cpp", -+ "lib/builtins/*.h", -+ "lib/builtins/*.inc", -+ ], -+ allow_empty = True, -+ exclude = ( -+ BUILTINS_CRTBEGIN_SRCS + -+ BUILTINS_CRTEND_SRCS + -+ BUILTINS_TF_EXCLUDES + -+ BUILTINS_TF_SRCS_PATTERNS + -+ BUILTINS_ATOMICS_SRCS + -+ BUILTINS_MACOS_ATOMIC_SRCS_PATTERNS + -+ BUILTINS_LIBC_MATH_EXCLUDES -+ ), -+ ), -+) -+ - # Apple-platform specific SME source file. - filegroup( - name = "builtins_aarch64_apple_sme_srcs", -@@ -341,11 +389,14 @@ AARCH64_OUTLINE_ATOMICS_FMT = "lib/builtins/aarch64/outline_atomic_{0}{1}_{2}.S" - - # Source files for the AArch64 architecture-specific builtins. - filegroup( -- name = "builtins_aarch64_srcs", -+ name = "builtins_unfiltered_aarch64_srcs", - srcs = [ - "lib/builtins/cpu_model/aarch64.c", - "lib/builtins/cpu_model/aarch64.h", - ":builtins_aarch64_sme_os_srcs", -+ ":builtins_bf16_srcs", -+ ":builtins_generic_srcs", -+ ":builtins_tf_srcs", - ] + [ - AARCH64_OUTLINE_ATOMICS_FMT.format(pat, size, model) - for (pat, size, model) in AARCH64_OUTLINE_ATOMICS -@@ -365,10 +416,20 @@ filegroup( - "lib/builtins/aarch64/lse.S", - # These files are provided by SME-specific file groups above. - "lib/builtins/aarch64/*sme*", -+ # This is only used with MinGW. -+ "lib/builtins/aarch64/chkstk.S", -+ # TODO: Remove this once we have a way of accessing `SipHash.h`. -+ "lib/builtins/aarch64/emupac.cpp", - ], - ), - ) - -+make_filtered_builtins_srcs_groups( -+ name = "builtins_aarch64_srcs", -+ srcs = [":builtins_unfiltered_aarch64_srcs"], -+ textual_name = "builtins_aarch64_textual_srcs", -+) -+ - BUILTINS_ARM_VFP_SRCS_PATTERNS = [ - "lib/builtins/arm/*vfp*.S", - "lib/builtins/arm/*vfp*.c", -@@ -385,9 +446,19 @@ filegroup( - ), - ) - -+BUILTINS_ARM_IMPLICIT_IT_SRCS = [ -+ "lib/builtins/arm/mulsf3.S", -+ "lib/builtins/arm/divsf3.S", -+] -+ -+filegroup( -+ name = "builtins_arm_implicit_it_srcs", -+ srcs = BUILTINS_ARM_IMPLICIT_IT_SRCS, -+) -+ - # Source files for the ARM architecture-specific builtins. - filegroup( -- name = "builtins_arm_srcs", -+ name = "builtins_arm_arch_srcs", - srcs = glob( - [ - "lib/builtins/arm/*.S", -@@ -396,14 +467,52 @@ filegroup( - "lib/builtins/arm/*.h", - ], - allow_empty = True, -- exclude = BUILTINS_ARM_VFP_SRCS_PATTERNS, -+ exclude = (BUILTINS_ARM_VFP_SRCS_PATTERNS + -+ BUILTINS_ARM_IMPLICIT_IT_SRCS) + [ -+ # This is only used with MinGW. -+ "lib/builtins/arm/chkstk.S", -+ ], - ), - ) - --# Source files for the PPC architecture-specific builtins. - filegroup( -- name = "builtins_ppc_srcs", -- srcs = glob( -+ name = "builtins_unfiltered_armv7_srcs", -+ srcs = [ -+ ":builtins_arm_arch_srcs", -+ ":builtins_arm_vfp_srcs", -+ ":builtins_bf16_srcs", -+ ":builtins_generic_srcs", -+ ], -+) -+ -+make_filtered_builtins_srcs_groups( -+ name = "builtins_armv7_srcs", -+ srcs = [":builtins_unfiltered_armv7_srcs"], -+ textual_name = "builtins_armv7_textual_srcs", -+) -+ -+filegroup( -+ name = "builtins_unfiltered_aarch32_srcs", -+ srcs = [ -+ ":builtins_arm_arch_srcs", -+ ":builtins_arm_vfp_srcs", -+ ":builtins_bf16_srcs", -+ ":builtins_generic_srcs", -+ ], -+) -+ -+make_filtered_builtins_srcs_groups( -+ name = "builtins_aarch32_srcs", -+ srcs = [":builtins_unfiltered_aarch32_srcs"], -+ textual_name = "builtins_aarch32_textual_srcs", -+) -+ -+filegroup( -+ name = "builtins_unfiltered_ppc64_srcs", -+ srcs = [ -+ ":builtins_generic_srcs", -+ ":builtins_tf_srcs", -+ ] + glob( - [ - "lib/builtins/ppc/*.S", - "lib/builtins/ppc/*.c", -@@ -414,19 +523,66 @@ filegroup( - ), - ) - --# Source files for the RISC-V architecture-specific builtins. -+make_filtered_builtins_srcs_groups( -+ name = "builtins_ppc64_srcs", -+ srcs = [":builtins_unfiltered_ppc64_srcs"], -+ textual_name = "builtins_ppc64_textual_srcs", -+) -+ - filegroup( -- name = "builtins_riscv_srcs", -- srcs = glob( -+ name = "builtins_unfiltered_ppc32_srcs", -+ srcs = [":builtins_generic_srcs"], -+) -+ -+make_filtered_builtins_srcs_groups( -+ name = "builtins_ppc32_srcs", -+ srcs = [":builtins_unfiltered_ppc32_srcs"], -+ textual_name = "builtins_ppc32_textual_srcs", -+) -+ -+filegroup( -+ name = "builtins_unfiltered_riscv64_srcs", -+ srcs = [ -+ ":builtins_generic_srcs", -+ ":builtins_tf_srcs", -+ ] + glob( -+ [ -+ "lib/builtins/riscv/*.S", -+ "lib/builtins/riscv/*.c", -+ "lib/builtins/riscv/*.cpp", -+ "lib/builtins/riscv/*.h", -+ ], -+ allow_empty = True, -+ ), -+) -+ -+make_filtered_builtins_srcs_groups( -+ name = "builtins_riscv64_srcs", -+ srcs = [":builtins_unfiltered_riscv64_srcs"], -+ textual_name = "builtins_riscv64_textual_srcs", -+) -+ -+filegroup( -+ name = "builtins_unfiltered_riscv32_srcs", -+ srcs = [ -+ ":builtins_generic_srcs", -+ ] + glob( - [ - "lib/builtins/riscv/*.S", - "lib/builtins/riscv/*.c", - "lib/builtins/riscv/*.cpp", -+ "lib/builtins/riscv/*.h", - ], - allow_empty = True, - ), - ) - -+make_filtered_builtins_srcs_groups( -+ name = "builtins_riscv32_srcs", -+ srcs = [":builtins_unfiltered_riscv32_srcs"], -+ textual_name = "builtins_riscv32_textual_srcs", -+) -+ - # Source files for the x86 architecture specific builtins (both 32-bit and - # 64-bit). - filegroup( -@@ -439,8 +595,14 @@ filegroup( - - # Source files for the x86-64 architecture specific builtins. - filegroup( -- name = "builtins_x86_64_srcs", -- srcs = glob( -+ name = "builtins_unfiltered_x86_64_srcs", -+ srcs = [ -+ ":builtins_bf16_srcs", -+ ":builtins_generic_srcs", -+ ":builtins_tf_srcs", -+ ":builtins_x86_arch_srcs", -+ ":builtins_x86_fp80_srcs", -+ ] + glob( - [ - "lib/builtins/x86_64/*.S", - "lib/builtins/x86_64/*.c", -@@ -448,13 +610,29 @@ filegroup( - "lib/builtins/x86_64/*.h", - ], - allow_empty = True, -+ exclude = [ -+ # This is a Windows-specific routine. -+ # TODO: We should expose this as a Windows source at some point. -+ "lib/builtins/x86_64/chkstk.S", -+ ], - ), - ) - -+make_filtered_builtins_srcs_groups( -+ name = "builtins_x86_64_srcs", -+ srcs = [":builtins_unfiltered_x86_64_srcs"], -+ textual_name = "builtins_x86_64_textual_srcs", -+) -+ - # Source files for the 32-bit-specific x86 architecture specific builtins. - filegroup( -- name = "builtins_i386_srcs", -- srcs = glob( -+ name = "builtins_unfiltered_i386_srcs", -+ srcs = [ -+ ":builtins_bf16_srcs", -+ ":builtins_generic_srcs", -+ ":builtins_x86_arch_srcs", -+ ":builtins_x86_fp80_srcs", -+ ] + glob( - [ - "lib/builtins/i386/*.S", - "lib/builtins/i386/*.c", -@@ -466,6 +644,10 @@ filegroup( - # This file is used for both i386 and x86_64 and so included in the - # broader x86 sources. - "lib/builtins/i386/fp_mode.c", -+ # These are Windows-specific routines. -+ # TODO: We should expose these as Windows source at some point. -+ "lib/builtins/i386/chkstk.S", -+ "lib/builtins/i386/chkstk2.S", - ], - ), - ) -@@ -473,48 +655,5 @@ --BUILTINS_LIBC_MATH_EXCLUDES = [ -- # Sources requiring COMPILER_RT_USE_LIBC_MATH (e.g. LIBC_NAMESPACE::shared::*). -- "lib/builtins/adddf3.cpp", -- "lib/builtins/addtf3.cpp", -- "lib/builtins/addsf3.cpp", -- "lib/builtins/divdf3.cpp", -- "lib/builtins/divsf3.cpp", -- "lib/builtins/divtf3.cpp", -- "lib/builtins/extenddftf2.cpp", -- "lib/builtins/extendsfdf2.cpp", -- "lib/builtins/extendsftf2.cpp", -- "lib/builtins/extendxftf2.cpp", -- "lib/builtins/muldf3.cpp", -- "lib/builtins/mulsf3.cpp", -- "lib/builtins/multf3.cpp", -- "lib/builtins/negdf2.cpp", -- "lib/builtins/negsf2.cpp", -- "lib/builtins/subdf3.cpp", -- "lib/builtins/subsf3.cpp", -- "lib/builtins/subtf3.cpp", -- "lib/builtins/truncdfsf2.cpp", -- "lib/builtins/trunctfdf2.cpp", -- "lib/builtins/trunctfsf2.cpp", -- "lib/builtins/trunctfxf2.cpp", --] -- --# Source files for portable components of the compiler builtins library. --filegroup( -- name = "builtins_generic_srcs", -- srcs = ["lib/builtins/cpu_model/cpu_model.h"] + glob( -- [ -- "lib/builtins/*.c", -- "lib/builtins/*.cpp", -- "lib/builtins/*.h", -- "lib/builtins/*.inc", -- ], -- allow_empty = True, -- exclude = ( -- BUILTINS_CRTBEGIN_SRCS + -- BUILTINS_CRTEND_SRCS + -- BUILTINS_TF_EXCLUDES + -- BUILTINS_TF_SRCS_PATTERNS + -- BUILTNS_ATOMICS_SRCS + -- BUILTINS_MACOS_ATOMIC_SRCS_PATTERNS + -- BUILTINS_LIBC_MATH_EXCLUDES -- ), -- ), -+make_filtered_builtins_srcs_groups( -+ name = "builtins_i386_srcs", -+ srcs = [":builtins_unfiltered_i386_srcs"], -+ textual_name = "builtins_i386_textual_srcs", - ) -diff --git a/utils/bazel/llvm-project-overlay/compiler-rt/compiler-rt.bzl b/utils/bazel/llvm-project-overlay/compiler-rt/compiler-rt.bzl -new file mode 100644 -index 000000000000..e33ceb6a89da ---- /dev/null -+++ b/utils/bazel/llvm-project-overlay/compiler-rt/compiler-rt.bzl -@@ -0,0 +1,153 @@ -+# This file is licensed under the Apache License v2.0 with LLVM Exceptions. -+# See https://llvm.org/LICENSE.txt for license information. -+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -+ -+"""Starlark for building parts of compiler-rt. -+ -+Variables provide baseline information for how to build various parts of -+compiler-rt. These can be used to generate non-Bazel builds of the library. -+ -+Rules and macros support building the relevant filegroups of source files. -+ -+TODO: Add macros that provide a convenient way to construct a Bazel target for -+the Clang resource directory with builtins and crt files. -+""" -+ -+_common_copts = [ -+ "-O3", -+ "-fPIC", -+ "-ffreestanding", -+ "-std=c11", -+] -+ -+crt_copts = _common_copts + [ -+ "-DCRT_HAS_INITFINI_ARRAY", -+ "-DEH_USE_FRAME_REGISTRY", -+ "-fno-lto", -+] -+ -+builtins_copts = _common_copts + [ -+ "-fno-builtin", -+ "-fomit-frame-pointer", -+ "-fvisibility=hidden", -+ "-Wno-missing-prototypes", -+ "-Wno-unused-parameter", -+] -+ -+def _get_rel_path(path_str): -+ rel_path = path_str.rpartition("/lib/builtins/")[2] -+ if rel_path == path_str: -+ fail("Expected '/lib/builtins/' in path " + path_str) -+ return rel_path -+ -+def _filtered_builtins_srcs_impl(ctx): -+ """Implementation of filter_builtins_srcs rule.""" -+ -+ # Build a map from generic file basename to list of overriding files. -+ overrides = {} -+ for f in ctx.files.srcs: -+ rel_path = _get_rel_path(f.short_path) -+ if "/" in rel_path: -+ base_file = rel_path.rpartition("/")[2] -+ if base_file.endswith(".S"): -+ base_file = base_file.removesuffix(".S") + ".c" -+ overrides[base_file] = True -+ -+ filtered_files = [] -+ for f in ctx.files.srcs: -+ rel_path = _get_rel_path(f.short_path) -+ if "/" not in rel_path: -+ # This is a generic file. Check if it's overridden. -+ if rel_path not in overrides: -+ filtered_files.append(f) -+ else: -+ # This is an arch-specific file, include it. -+ filtered_files.append(f) -+ -+ # Remove any textual sources from this list. -+ filtered_files = [ -+ f -+ for f in filtered_files -+ if f.extension not in ["inc", "def"] -+ ] -+ -+ return [DefaultInfo(files = depset(filtered_files))] -+ -+filtered_builtins_srcs = rule( -+ implementation = _filtered_builtins_srcs_impl, -+ attrs = { -+ "srcs": attr.label_list( -+ mandatory = True, -+ allow_files = True, -+ doc = "Input files.", -+ ), -+ }, -+ doc = """Build a filtered filegroup of non-textual srcs for builtins. -+ -+ Accepts a filegroup whose files are in lib/builtins/, and produces a target -+ behaving like a filegroup containing filtered files. -+ -+ This removes any textual source files (`.inc` or `.def`) from the input. -+ -+ It also replaces generic srcs that are overridden by architecture-specific -+ sources. For example, given a list of sources from filegroup of the form: -+ -+ - `.../lib/builtins/file_0.c` -+ - `.../lib/builtins/file_1.c` -+ - `.../lib/builtins/file_2.c` -+ - `.../lib/builtins/arch/file_0.c` -+ - `.../lib/builtins/arch/file_1.S` -+ -+ It removes any source-file at the top level of lib/builtins/ (e.g. -+ lib/builtins/file_0.c) that has a corresponding source-file in an arch -+ directory (e.g. lib/builtins/arch/file_0.c or lib/builtins/arch/file_1.S), -+ producing a list like: -+ -+ - `.../lib/builtins/file_2.c` -+ - `.../lib/builtins/arch/file_0.c` -+ - `.../lib/builtins/arch/file_1.S` -+ -+ This allows a target architecture to simply add a specialized file to the -+ list of sources with the architecture prefix and have the specialized -+ version override the generic version. -+ """, -+) -+ -+def _filtered_builtins_textual_srcs_impl(ctx): -+ """Implementation of filter_builtins_textual_srcs rule.""" -+ -+ filtered_files = [ -+ f -+ for f in ctx.files.srcs -+ if f.extension in ["inc", "def"] -+ ] -+ -+ return [DefaultInfo(files = depset(filtered_files))] -+ -+filtered_builtins_textual_srcs = rule( -+ implementation = _filtered_builtins_textual_srcs_impl, -+ attrs = { -+ "srcs": attr.label_list( -+ mandatory = True, -+ allow_files = True, -+ doc = "Input files.", -+ ), -+ }, -+ doc = """Build a filegroup of the textual srcs for builtins. -+ -+ Textual sources are those that can't be compiled directly and aren't -+ recognized as header files by Bazel. The extensions recognized here are -+ `.inc` and `.def`. -+ """, -+) -+ -+def make_filtered_builtins_srcs_groups(name, textual_name, srcs): -+ """Macro to expand both the non-textual and textual filtered srcs groups.""" -+ filtered_builtins_srcs( -+ name = name, -+ srcs = srcs, -+ ) -+ filtered_builtins_textual_srcs( -+ name = textual_name, -+ srcs = srcs, -+ ) --- -2.55.0.rc0.799.gd6f94ed593-goog - diff --git a/bazel/llvm_project/0011_Temporarily_remove_reference_to_hermetic_toolchain.patch b/bazel/llvm_project/0011_Temporarily_remove_reference_to_hermetic_toolchain.patch index d0d02c4231fb..6e9329bc8ffa 100644 --- a/bazel/llvm_project/0011_Temporarily_remove_reference_to_hermetic_toolchain.patch +++ b/bazel/llvm_project/0011_Temporarily_remove_reference_to_hermetic_toolchain.patch @@ -6,15 +6,15 @@ point we can remove this patch. --- --- a/utils/bazel/llvm-project-overlay/llvm/config.bzl +++ b/utils/bazel/llvm-project-overlay/llvm/config.bzl -@@ -48,7 +48,6 @@ - +@@ -72,7 +72,6 @@ backtrace_defines = select({ + "@platforms//os:emscripten": [], "@platforms//os:windows": [], - "@llvm//platforms/config:musl": [], "//conditions:default": [ "HAVE_BACKTRACE=1", "BACKTRACE_HEADER=", -@@ -56,7 +55,6 @@ +@@ -80,7 +79,6 @@ }) mallinfo_defines = select({ diff --git a/toolchain/check/cpp/export.cpp b/toolchain/check/cpp/export.cpp index 3d9b228c726a..a96de44478e0 100644 --- a/toolchain/check/cpp/export.cpp +++ b/toolchain/check/cpp/export.cpp @@ -192,8 +192,9 @@ static auto CreateClassTemplateSpecializationDecl( template_args, /*StrictPackMatch=*/false, /*PrevDecl=*/nullptr); - class_template_decl->AddSpecialization(class_template_specialization_decl, - /*InsertPos=*/nullptr); + class_template_decl->AddSpecialization( + class_template_specialization_decl, + /*InsertPos=*/llvm::FoldingSetInsertToken()); class_template_specialization_decl->setHasExternalLexicalStorage(); class_template_specialization_decl->setHasExternalVisibleStorage(); @@ -1451,7 +1452,8 @@ auto ExportFunctionSpecializationToCpp( context.ast_context(), template_args); function_decl->setFunctionTemplateSpecialization( function_template_decl, template_arg_list, - /*InsertPos=*/nullptr, clang::TSK_ExplicitSpecialization, + /*InsertPos=*/llvm::FoldingSetInsertToken(), + clang::TSK_ExplicitSpecialization, /*TemplateArgsAsWritten=*/nullptr, /*PointOfInstantiation=*/clang::SourceLocation()); diff --git a/toolchain/check/testdata/interop/cpp/function/import/class.carbon b/toolchain/check/testdata/interop/cpp/function/import/class.carbon index 86fc5194cf26..530812618619 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/class.carbon @@ -523,9 +523,9 @@ fn F() { // CHECK:STDERR: class DeclValueReturnClass; // CHECK:STDERR: ^ // CHECK:STDERR: fail_import_decl_value_return_type.carbon:[[@LINE-14]]:10: in file included here [InCppInclude] - // CHECK:STDERR: ./decl_value_return_type.h:4:1: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: ./decl_value_return_type.h:4:33: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: auto foo_decl_value_return() -> DeclValueReturnClass; - // CHECK:STDERR: ^ + // CHECK:STDERR: ^ // CHECK:STDERR: Cpp.foo_decl_value_return(); } diff --git a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon index ed736d2d16a4..97662d549e3e 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon @@ -418,9 +418,9 @@ fn F() { // CHECK:STDERR: struct DeclValueReturnStruct; // CHECK:STDERR: ^ // CHECK:STDERR: fail_import_decl_value_return_type.carbon:[[@LINE-14]]:10: in file included here [InCppInclude] - // CHECK:STDERR: ./decl_value_return_type.h:4:1: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: ./decl_value_return_type.h:4:33: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: auto foo_decl_value_return() -> DeclValueReturnStruct; - // CHECK:STDERR: ^ + // CHECK:STDERR: ^ // CHECK:STDERR: Cpp.foo_decl_value_return(); } diff --git a/toolchain/check/testdata/interop/cpp/function/import/union.carbon b/toolchain/check/testdata/interop/cpp/function/import/union.carbon index 9b6d0773e700..e6c6e0113bc3 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/union.carbon @@ -378,9 +378,9 @@ fn F() { // CHECK:STDERR: union DeclValueReturnUnion; // CHECK:STDERR: ^ // CHECK:STDERR: fail_import_decl_value_return_type.carbon:[[@LINE-14]]:10: in file included here [InCppInclude] - // CHECK:STDERR: ./decl_value_return_type.h:4:1: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: ./decl_value_return_type.h:4:33: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: auto foo_decl_value_return() -> DeclValueReturnUnion; - // CHECK:STDERR: ^ + // CHECK:STDERR: ^ // CHECK:STDERR: Cpp.foo_decl_value_return(); } diff --git a/toolchain/driver/testdata/compile/optimize/clang_no_optimize_twice.carbon b/toolchain/driver/testdata/compile/optimize/clang_no_optimize_twice.carbon index 5ab3e5cb4d6e..b6056636667f 100644 --- a/toolchain/driver/testdata/compile/optimize/clang_no_optimize_twice.carbon +++ b/toolchain/driver/testdata/compile/optimize/clang_no_optimize_twice.carbon @@ -48,36 +48,36 @@ fn Call() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define i32 @_CCall.Main() #2 !dbg !12 { +// CHECK:STDOUT: define i32 @_CCall.Main() #2 !dbg !5 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %g.call = call i32 @_Z1gv(), !dbg !16 -// CHECK:STDOUT: ret i32 %g.call, !dbg !17 +// CHECK:STDOUT: %g.call = call i32 @_Z1gv(), !dbg !8 +// CHECK:STDOUT: ret i32 %g.call, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { noinline nounwind optnone } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} +// CHECK:STDOUT: !llvm.module.flags = !{!10, !11, !12, !18, !19} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!17} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "foo.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 10, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 13, column: 3, scope: !12) +// CHECK:STDOUT: !0 = !DIFile(filename: "foo.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !2 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !3 = !{!2} +// CHECK:STDOUT: !4 = !DISubroutineType(types: !3) +// CHECK:STDOUT: !5 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !0, line: 12, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 10, scope: !5) +// CHECK:STDOUT: !9 = !DILocation(line: 13, column: 3, scope: !5) +// CHECK:STDOUT: !10 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !11 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !12 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !13 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !14 = !{!"omnipotent char", !13, i64 0} +// CHECK:STDOUT: !15 = !{!"int", !14, i64 0} +// CHECK:STDOUT: !16 = !{!"__libc_errno", !15, i64 0} +// CHECK:STDOUT: !17 = !{!16, !15, i64 0} +// CHECK:STDOUT: !18 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !19 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: diff --git a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon index e484bce55295..5a34a397c080 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon @@ -39,41 +39,41 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: declare i32 @_CRand.Main() local_unnamed_addr // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() local_unnamed_addr #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() local_unnamed_addr #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15 = tail call i32 @_CRand.Main() #0, !dbg !8 -// CHECK:STDOUT: %Rand.call.loc4_24 = tail call i32 @_CRand.Main() #0, !dbg !9 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_24, %Rand.call.loc4_15, !dbg !8 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !10 +// CHECK:STDOUT: %Rand.call.loc4_15 = tail call i32 @_CRand.Main() #0, !dbg !13 +// CHECK:STDOUT: %Rand.call.loc4_24 = tail call i32 @_CRand.Main() #0, !dbg !14 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_24, %Rand.call.loc4_15, !dbg !13 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() local_unnamed_addr #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() local_unnamed_addr #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15.i = tail call i32 @_CRand.Main() #0, !dbg !12 -// CHECK:STDOUT: %Rand.call.loc4_24.i = tail call i32 @_CRand.Main() #0, !dbg !14 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.i = add i32 %Rand.call.loc4_24.i, %Rand.call.loc4_15.i, !dbg !12 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.i, !dbg !15 +// CHECK:STDOUT: %Rand.call.loc4_15.i = tail call i32 @_CRand.Main() #0, !dbg !81 +// CHECK:STDOUT: %Rand.call.loc4_24.i = tail call i32 @_CRand.Main() #0, !dbg !82 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.i = add i32 %Rand.call.loc4_24.i, %Rand.call.loc4_15.i, !dbg !81 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.i, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) -// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr nofree captures(none) %a) local_unnamed_addr #1 !dbg !16 { +// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr nofree captures(none) %a) local_unnamed_addr #1 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br label %while.body, !dbg !22 +// CHECK:STDOUT: br label %while.body, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %entry, %while.body // CHECK:STDOUT: %n.var.03 = phi i32 [ 0, %entry ], [ %1, %while.body ] -// CHECK:STDOUT: %0 = zext nneg i32 %n.var.03 to i64, !dbg !23 -// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %0, !dbg !23 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !23 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = shl i32 %Int.as.MulAssignWith.impl.Op.call, 1, !dbg !23 -// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !23 -// CHECK:STDOUT: %1 = add nuw nsw i32 %n.var.03, 1, !dbg !24 -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp samesign ult i32 %n.var.03, 65535, !dbg !39 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !22 +// CHECK:STDOUT: %0 = zext nneg i32 %n.var.03 to i64, !dbg !31 +// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %0, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = shl i32 %Int.as.MulAssignWith.impl.Op.call, 1, !dbg !31 +// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: %1 = add nuw nsw i32 %n.var.03, 1, !dbg !90 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp samesign ult i32 %n.var.03, 65535, !dbg !27 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.body -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder label %while.body, { 1, 0 } @@ -82,60 +82,60 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nofree norecurse nosync nounwind memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} +// CHECK:STDOUT: !llvm.module.flags = !{!75, !76} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "foo.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 4, column: 10, scope: !4, inlinedAt: !13) -// CHECK:STDOUT: !13 = distinct !DILocation(line: 9, column: 10, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !4, inlinedAt: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !1, line: 12, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null, !19} -// CHECK:STDOUT: !19 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 9, scope: !16) -// CHECK:STDOUT: !23 = !DILocation(line: 16, column: 5, scope: !16) -// CHECK:STDOUT: !24 = !DILocation(line: 331, column: 3, scope: !25, inlinedAt: !32) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !26, line: 331, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !26 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !7, !7} -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !25, type: !7) -// CHECK:STDOUT: !32 = distinct !DILocation(line: 398, column: 5, scope: !33, inlinedAt: !38) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !26, line: 396, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !34 = !DISubroutineType(types: !35) -// CHECK:STDOUT: !35 = !{null, !7} -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !33, type: !7) -// CHECK:STDOUT: !38 = distinct !DILocation(line: 17, column: 5, scope: !16) -// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 10, scope: !16) -// CHECK:STDOUT: !40 = !DILocation(line: 12, column: 1, scope: !16) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 14, column: 3, scope: !41) +// CHECK:STDOUT: !0 = !DIFile(filename: "foo.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !2 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !3 = !{!2} +// CHECK:STDOUT: !4 = !DISubroutineType(types: !3) +// CHECK:STDOUT: !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !6 = !{null, !5} +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = !{null, !2} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !0, line: 3, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !13 = !DILocation(line: 4, column: 10, scope: !10) +// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !10) +// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 3, scope: !10) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !0, line: 7, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !16) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !0, line: 12, type: !7, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !36) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !5) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 9, scope: !21) +// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 10, scope: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) +// CHECK:STDOUT: !36 = !{!22} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !41, line: 396, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !2) +// CHECK:STDOUT: !46 = !{null, !2, !2} +// CHECK:STDOUT: !47 = !DISubroutineType(types: !46) +// CHECK:STDOUT: !49 = !{!43} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !41, line: 331, type: !47, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !57) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !2) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !2) +// CHECK:STDOUT: !57 = !{!51, !52} +// CHECK:STDOUT: !75 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !76 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !80 = distinct !DILocation(line: 9, column: 10, scope: !16) +// CHECK:STDOUT: !81 = distinct !DILocation(line: 4, column: 10, scope: !10, inlinedAt: !80) +// CHECK:STDOUT: !82 = distinct !DILocation(line: 4, column: 19, scope: !10, inlinedAt: !80) +// CHECK:STDOUT: !88 = distinct !DILocation(line: 17, column: 5, scope: !21) +// CHECK:STDOUT: !89 = distinct !DILocation(line: 398, column: 5, scope: !42, inlinedAt: !88) +// CHECK:STDOUT: !90 = distinct !DILocation(line: 331, column: 3, scope: !50, inlinedAt: !89) // CHECK:STDOUT: diff --git a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon index b32a53da58b7..e2af8e1e8a48 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon @@ -39,41 +39,41 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: declare i32 @_CRand.Main() local_unnamed_addr // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() local_unnamed_addr #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() local_unnamed_addr #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15 = tail call i32 @_CRand.Main() #0, !dbg !8 -// CHECK:STDOUT: %Rand.call.loc4_24 = tail call i32 @_CRand.Main() #0, !dbg !9 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_24, %Rand.call.loc4_15, !dbg !8 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !10 +// CHECK:STDOUT: %Rand.call.loc4_15 = tail call i32 @_CRand.Main() #0, !dbg !13 +// CHECK:STDOUT: %Rand.call.loc4_24 = tail call i32 @_CRand.Main() #0, !dbg !14 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_24, %Rand.call.loc4_15, !dbg !13 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() local_unnamed_addr #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() local_unnamed_addr #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15.i = tail call i32 @_CRand.Main() #0, !dbg !12 -// CHECK:STDOUT: %Rand.call.loc4_24.i = tail call i32 @_CRand.Main() #0, !dbg !14 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.i = add i32 %Rand.call.loc4_24.i, %Rand.call.loc4_15.i, !dbg !12 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.i, !dbg !15 +// CHECK:STDOUT: %Rand.call.loc4_15.i = tail call i32 @_CRand.Main() #0, !dbg !81 +// CHECK:STDOUT: %Rand.call.loc4_24.i = tail call i32 @_CRand.Main() #0, !dbg !82 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.i = add i32 %Rand.call.loc4_24.i, %Rand.call.loc4_15.i, !dbg !81 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.i, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) -// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr nofree captures(none) %a) local_unnamed_addr #1 !dbg !16 { +// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr nofree captures(none) %a) local_unnamed_addr #1 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br label %while.body, !dbg !22 +// CHECK:STDOUT: br label %while.body, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %entry, %while.body // CHECK:STDOUT: %n.var.03 = phi i32 [ 0, %entry ], [ %1, %while.body ] -// CHECK:STDOUT: %0 = zext nneg i32 %n.var.03 to i64, !dbg !23 -// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %0, !dbg !23 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !23 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = shl i32 %Int.as.MulAssignWith.impl.Op.call, 1, !dbg !23 -// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !23 -// CHECK:STDOUT: %1 = add nuw nsw i32 %n.var.03, 1, !dbg !24 -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp samesign ult i32 %n.var.03, 65535, !dbg !39 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !22 +// CHECK:STDOUT: %0 = zext nneg i32 %n.var.03 to i64, !dbg !31 +// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %0, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = shl i32 %Int.as.MulAssignWith.impl.Op.call, 1, !dbg !31 +// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: %1 = add nuw nsw i32 %n.var.03, 1, !dbg !90 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp samesign ult i32 %n.var.03, 65535, !dbg !27 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.body -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder label %while.body, { 1, 0 } @@ -82,60 +82,60 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nofree norecurse nosync nounwind memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} +// CHECK:STDOUT: !llvm.module.flags = !{!75, !76} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "foo.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 4, column: 10, scope: !4, inlinedAt: !13) -// CHECK:STDOUT: !13 = distinct !DILocation(line: 9, column: 10, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !4, inlinedAt: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !1, line: 12, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null, !19} -// CHECK:STDOUT: !19 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 9, scope: !16) -// CHECK:STDOUT: !23 = !DILocation(line: 16, column: 5, scope: !16) -// CHECK:STDOUT: !24 = !DILocation(line: 331, column: 3, scope: !25, inlinedAt: !32) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !26, line: 331, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !26 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !7, !7} -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !25, type: !7) -// CHECK:STDOUT: !32 = distinct !DILocation(line: 398, column: 5, scope: !33, inlinedAt: !38) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !26, line: 396, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !34 = !DISubroutineType(types: !35) -// CHECK:STDOUT: !35 = !{null, !7} -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !33, type: !7) -// CHECK:STDOUT: !38 = distinct !DILocation(line: 17, column: 5, scope: !16) -// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 10, scope: !16) -// CHECK:STDOUT: !40 = !DILocation(line: 12, column: 1, scope: !16) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 14, column: 3, scope: !41) +// CHECK:STDOUT: !0 = !DIFile(filename: "foo.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !2 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !3 = !{!2} +// CHECK:STDOUT: !4 = !DISubroutineType(types: !3) +// CHECK:STDOUT: !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !6 = !{null, !5} +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = !{null, !2} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !0, line: 3, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !13 = !DILocation(line: 4, column: 10, scope: !10) +// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !10) +// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 3, scope: !10) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !0, line: 7, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !16) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !0, line: 12, type: !7, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !36) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !5) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 9, scope: !21) +// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 10, scope: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) +// CHECK:STDOUT: !36 = !{!22} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !41, line: 396, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !2) +// CHECK:STDOUT: !46 = !{null, !2, !2} +// CHECK:STDOUT: !47 = !DISubroutineType(types: !46) +// CHECK:STDOUT: !49 = !{!43} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !41, line: 331, type: !47, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !57) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !2) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !2) +// CHECK:STDOUT: !57 = !{!51, !52} +// CHECK:STDOUT: !75 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !76 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !80 = distinct !DILocation(line: 9, column: 10, scope: !16) +// CHECK:STDOUT: !81 = distinct !DILocation(line: 4, column: 10, scope: !10, inlinedAt: !80) +// CHECK:STDOUT: !82 = distinct !DILocation(line: 4, column: 19, scope: !10, inlinedAt: !80) +// CHECK:STDOUT: !88 = distinct !DILocation(line: 17, column: 5, scope: !21) +// CHECK:STDOUT: !89 = distinct !DILocation(line: 398, column: 5, scope: !42, inlinedAt: !88) +// CHECK:STDOUT: !90 = distinct !DILocation(line: 331, column: 3, scope: !50, inlinedAt: !89) // CHECK:STDOUT: diff --git a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon index 158bd8e252d6..fee41bef7695 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon @@ -39,146 +39,146 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: declare i32 @_CRand.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15 = call i32 @_CRand.Main(), !dbg !8 -// CHECK:STDOUT: %Rand.call.loc4_24 = call i32 @_CRand.Main(), !dbg !9 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_15, %Rand.call.loc4_24, !dbg !8 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !10 +// CHECK:STDOUT: %Rand.call.loc4_15 = call i32 @_CRand.Main(), !dbg !13 +// CHECK:STDOUT: %Rand.call.loc4_24 = call i32 @_CRand.Main(), !dbg !14 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_15, %Rand.call.loc4_24, !dbg !13 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %NoInlineWithOz.call = call i32 @_CNoInlineWithOz.Main(), !dbg !12 -// CHECK:STDOUT: ret i32 %NoInlineWithOz.call, !dbg !13 +// CHECK:STDOUT: %NoInlineWithOz.call = call i32 @_CNoInlineWithOz.Main(), !dbg !19 +// CHECK:STDOUT: ret i32 %NoInlineWithOz.call, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr %a) #0 !dbg !14 { +// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr %a) #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !20 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !20 -// CHECK:STDOUT: br label %while.cond, !dbg !21 -// CHECK:STDOUT: -// CHECK:STDOUT: while.cond: ; preds = %while.body, %entry -// CHECK:STDOUT: %.loc15_10 = load i32, ptr %n.var, align 4, !dbg !22 -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp slt i32 %.loc15_10, 65536, !dbg !22 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !21 -// CHECK:STDOUT: -// CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: %.loc16_10 = load i32, ptr %n.var, align 4, !dbg !23 -// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds [65536 x i32], ptr %a, i32 0, i32 %.loc16_10, !dbg !24 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !24 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = mul i32 %Int.as.MulAssignWith.impl.Op.call, 2, !dbg !24 -// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !24 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %n.var), !dbg !25 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !24 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !24 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !24 // CHECK:STDOUT: br label %while.cond, !dbg !26 // CHECK:STDOUT: +// CHECK:STDOUT: while.cond: ; preds = %while.body, %entry +// CHECK:STDOUT: %.loc15_10 = load i32, ptr %n.var, align 4, !dbg !27 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp slt i32 %.loc15_10, 65536, !dbg !27 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !26 +// CHECK:STDOUT: +// CHECK:STDOUT: while.body: ; preds = %while.cond +// CHECK:STDOUT: %.loc16_10 = load i32, ptr %n.var, align 4, !dbg !30 +// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds [65536 x i32], ptr %a, i32 0, i32 %.loc16_10, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = mul i32 %Int.as.MulAssignWith.impl.Op.call, 2, !dbg !31 +// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %n.var), !dbg !33 +// CHECK:STDOUT: br label %while.cond, !dbg !34 +// CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !38 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #0 !dbg !40 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !46 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !47 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !47 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !47 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #0 !dbg !50 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !53 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !54 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !54 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !54 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !48 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !53 -// CHECK:STDOUT: ret i32 %1, !dbg !54 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !58 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !63 +// CHECK:STDOUT: ret i32 %1, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !55 { -// CHECK:STDOUT: ret i32 %self, !dbg !58 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !67 { +// CHECK:STDOUT: ret i32 %self, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { noinline nounwind optnone } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} +// CHECK:STDOUT: !llvm.module.flags = !{!75, !76} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "foo.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 10, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !1, line: 12, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 14, column: 3, scope: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 15, column: 9, scope: !14) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 10, scope: !14) -// CHECK:STDOUT: !23 = !DILocation(line: 16, column: 10, scope: !14) -// CHECK:STDOUT: !24 = !DILocation(line: 16, column: 5, scope: !14) -// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 5, scope: !14) -// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 3, scope: !14) -// CHECK:STDOUT: !27 = !DILocation(line: 12, column: 1, scope: !14) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !7} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !7) -// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !35, line: 396, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !35 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !34, type: !7) -// CHECK:STDOUT: !38 = !DILocation(line: 398, column: 5, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 396, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !35, line: 331, type: !41, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !41 = !DISubroutineType(types: !42) -// CHECK:STDOUT: !42 = !{null, !7, !7} -// CHECK:STDOUT: !43 = !{!44, !45} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !40, type: !7) -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !40, type: !7) -// CHECK:STDOUT: !46 = !DILocation(line: 0, scope: !40) -// CHECK:STDOUT: !47 = !DILocation(line: 331, column: 3, scope: !40) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !35, line: 64, type: !49, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !49 = !DISubroutineType(types: !50) -// CHECK:STDOUT: !50 = !{!7, !7} -// CHECK:STDOUT: !51 = !{!52} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !48, type: !7) -// CHECK:STDOUT: !53 = !DILocation(line: 66, column: 17, scope: !48) -// CHECK:STDOUT: !54 = !DILocation(line: 66, column: 5, scope: !48) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !35, line: 59, type: !49, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !7) -// CHECK:STDOUT: !58 = !DILocation(line: 59, column: 28, scope: !55) +// CHECK:STDOUT: !0 = !DIFile(filename: "foo.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !2 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !3 = !{!2} +// CHECK:STDOUT: !4 = !DISubroutineType(types: !3) +// CHECK:STDOUT: !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !6 = !{null, !5} +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = !{null, !2} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !0, line: 3, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !13 = !DILocation(line: 4, column: 10, scope: !10) +// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !10) +// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 3, scope: !10) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !0, line: 7, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 10, scope: !16) +// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !16) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !0, line: 12, type: !7, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !36) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !5) +// CHECK:STDOUT: !24 = !DILocation(line: 14, column: 3, scope: !21) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 9, scope: !21) +// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 10, scope: !21) +// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 10, scope: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 5, scope: !21) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) +// CHECK:STDOUT: !36 = !{!22} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !41, line: 396, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !2) +// CHECK:STDOUT: !45 = !DILocation(line: 398, column: 5, scope: !42) +// CHECK:STDOUT: !46 = !{null, !2, !2} +// CHECK:STDOUT: !47 = !DISubroutineType(types: !46) +// CHECK:STDOUT: !48 = !DILocation(line: 396, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !{!43} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !41, line: 331, type: !47, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !57) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !2) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !2) +// CHECK:STDOUT: !53 = !DILocation(line: 0, scope: !50) +// CHECK:STDOUT: !54 = !DILocation(line: 331, column: 3, scope: !50) +// CHECK:STDOUT: !55 = !{!2, !2} +// CHECK:STDOUT: !56 = !DISubroutineType(types: !55) +// CHECK:STDOUT: !57 = !{!51, !52} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !41, line: 64, type: !56, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !66) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !2) +// CHECK:STDOUT: !63 = !DILocation(line: 66, column: 17, scope: !58) +// CHECK:STDOUT: !65 = !DILocation(line: 66, column: 5, scope: !58) +// CHECK:STDOUT: !66 = !{!59} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !41, line: 59, type: !56, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !74) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !2) +// CHECK:STDOUT: !73 = !DILocation(line: 59, column: 28, scope: !67) +// CHECK:STDOUT: !74 = !{!68} +// CHECK:STDOUT: !75 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !76 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: diff --git a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon index 55a82a936643..dce9a776f846 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon @@ -38,147 +38,147 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: declare i32 @_CRand.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15 = call i32 @_CRand.Main(), !dbg !8 -// CHECK:STDOUT: %Rand.call.loc4_24 = call i32 @_CRand.Main(), !dbg !9 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_15, %Rand.call.loc4_24, !dbg !8 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !10 +// CHECK:STDOUT: %Rand.call.loc4_15 = call i32 @_CRand.Main(), !dbg !13 +// CHECK:STDOUT: %Rand.call.loc4_24 = call i32 @_CRand.Main(), !dbg !14 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_15, %Rand.call.loc4_24, !dbg !13 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %NoInlineWithOz.call = call i32 @_CNoInlineWithOz.Main(), !dbg !12 -// CHECK:STDOUT: ret i32 %NoInlineWithOz.call, !dbg !13 +// CHECK:STDOUT: %NoInlineWithOz.call = call i32 @_CNoInlineWithOz.Main(), !dbg !19 +// CHECK:STDOUT: ret i32 %NoInlineWithOz.call, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr %a) #0 !dbg !14 { +// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr %a) #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !20 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !20 -// CHECK:STDOUT: br label %while.cond, !dbg !21 -// CHECK:STDOUT: -// CHECK:STDOUT: while.cond: ; preds = %while.body, %entry -// CHECK:STDOUT: %.loc15_10 = load i32, ptr %n.var, align 4, !dbg !22 -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp slt i32 %.loc15_10, 65536, !dbg !22 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !21 -// CHECK:STDOUT: -// CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: %.loc16_10 = load i32, ptr %n.var, align 4, !dbg !23 -// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds [65536 x i32], ptr %a, i32 0, i32 %.loc16_10, !dbg !24 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !24 -// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = mul i32 %Int.as.MulAssignWith.impl.Op.call, 2, !dbg !24 -// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !24 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %n.var), !dbg !25 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !24 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !24 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !24 // CHECK:STDOUT: br label %while.cond, !dbg !26 // CHECK:STDOUT: +// CHECK:STDOUT: while.cond: ; preds = %while.body, %entry +// CHECK:STDOUT: %.loc15_10 = load i32, ptr %n.var, align 4, !dbg !27 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call = icmp slt i32 %.loc15_10, 65536, !dbg !27 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Less.call, label %while.body, label %while.done, !dbg !26 +// CHECK:STDOUT: +// CHECK:STDOUT: while.body: ; preds = %while.cond +// CHECK:STDOUT: %.loc16_10 = load i32, ptr %n.var, align 4, !dbg !30 +// CHECK:STDOUT: %.loc16_11.array.index = getelementptr inbounds [65536 x i32], ptr %a, i32 0, i32 %.loc16_10, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call = load i32, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: %Int.as.MulAssignWith.impl.Op.call1 = mul i32 %Int.as.MulAssignWith.impl.Op.call, 2, !dbg !31 +// CHECK:STDOUT: store i32 %Int.as.MulAssignWith.impl.Op.call1, ptr %.loc16_11.array.index, align 4, !dbg !31 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %n.var), !dbg !33 +// CHECK:STDOUT: br label %while.cond, !dbg !34 +// CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !38 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !40 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !46 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !47 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !47 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !47 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !50 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !53 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !54 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !54 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !54 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !48 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !53 -// CHECK:STDOUT: ret i32 %1, !dbg !54 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !58 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !63 +// CHECK:STDOUT: ret i32 %1, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !55 { -// CHECK:STDOUT: ret i32 %self, !dbg !58 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !67 { +// CHECK:STDOUT: ret i32 %self, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { minsize nounwind optsize } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline minsize nounwind optsize } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} +// CHECK:STDOUT: !llvm.module.flags = !{!75, !76} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "foo.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 10, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !1, line: 12, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 14, column: 3, scope: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 15, column: 9, scope: !14) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 10, scope: !14) -// CHECK:STDOUT: !23 = !DILocation(line: 16, column: 10, scope: !14) -// CHECK:STDOUT: !24 = !DILocation(line: 16, column: 5, scope: !14) -// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 5, scope: !14) -// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 3, scope: !14) -// CHECK:STDOUT: !27 = !DILocation(line: 12, column: 1, scope: !14) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !7} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !7) -// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !35, line: 396, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !35 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !34, type: !7) -// CHECK:STDOUT: !38 = !DILocation(line: 398, column: 5, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 396, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !35, line: 331, type: !41, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !41 = !DISubroutineType(types: !42) -// CHECK:STDOUT: !42 = !{null, !7, !7} -// CHECK:STDOUT: !43 = !{!44, !45} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !40, type: !7) -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !40, type: !7) -// CHECK:STDOUT: !46 = !DILocation(line: 0, scope: !40) -// CHECK:STDOUT: !47 = !DILocation(line: 331, column: 3, scope: !40) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !35, line: 64, type: !49, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !49 = !DISubroutineType(types: !50) -// CHECK:STDOUT: !50 = !{!7, !7} -// CHECK:STDOUT: !51 = !{!52} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !48, type: !7) -// CHECK:STDOUT: !53 = !DILocation(line: 66, column: 17, scope: !48) -// CHECK:STDOUT: !54 = !DILocation(line: 66, column: 5, scope: !48) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !35, line: 59, type: !49, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !7) -// CHECK:STDOUT: !58 = !DILocation(line: 59, column: 28, scope: !55) +// CHECK:STDOUT: !0 = !DIFile(filename: "foo.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !2 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !3 = !{!2} +// CHECK:STDOUT: !4 = !DISubroutineType(types: !3) +// CHECK:STDOUT: !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !6 = !{null, !5} +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = !{null, !2} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !0, line: 3, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !13 = !DILocation(line: 4, column: 10, scope: !10) +// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !10) +// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 3, scope: !10) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !0, line: 7, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 10, scope: !16) +// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !16) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !0, line: 12, type: !7, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !36) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !5) +// CHECK:STDOUT: !24 = !DILocation(line: 14, column: 3, scope: !21) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 9, scope: !21) +// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 10, scope: !21) +// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 10, scope: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 5, scope: !21) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) +// CHECK:STDOUT: !36 = !{!22} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !41, line: 396, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !2) +// CHECK:STDOUT: !45 = !DILocation(line: 398, column: 5, scope: !42) +// CHECK:STDOUT: !46 = !{null, !2, !2} +// CHECK:STDOUT: !47 = !DISubroutineType(types: !46) +// CHECK:STDOUT: !48 = !DILocation(line: 396, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !{!43} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !41, line: 331, type: !47, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !57) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !2) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !2) +// CHECK:STDOUT: !53 = !DILocation(line: 0, scope: !50) +// CHECK:STDOUT: !54 = !DILocation(line: 331, column: 3, scope: !50) +// CHECK:STDOUT: !55 = !{!2, !2} +// CHECK:STDOUT: !56 = !DISubroutineType(types: !55) +// CHECK:STDOUT: !57 = !{!51, !52} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !41, line: 64, type: !56, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !66) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !2) +// CHECK:STDOUT: !63 = !DILocation(line: 66, column: 17, scope: !58) +// CHECK:STDOUT: !65 = !DILocation(line: 66, column: 5, scope: !58) +// CHECK:STDOUT: !66 = !{!59} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !41, line: 59, type: !56, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !74) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !2) +// CHECK:STDOUT: !73 = !DILocation(line: 59, column: 28, scope: !67) +// CHECK:STDOUT: !74 = !{!68} +// CHECK:STDOUT: !75 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !76 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: diff --git a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon index df175e5c72fd..5be192704986 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon @@ -39,55 +39,55 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: declare i32 @_CRand.Main() local_unnamed_addr // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() local_unnamed_addr #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CNoInlineWithOz.Main() local_unnamed_addr #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15 = tail call i32 @_CRand.Main() #0, !dbg !8 -// CHECK:STDOUT: %Rand.call.loc4_24 = tail call i32 @_CRand.Main() #0, !dbg !9 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_24, %Rand.call.loc4_15, !dbg !8 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !10 +// CHECK:STDOUT: %Rand.call.loc4_15 = tail call i32 @_CRand.Main() #0, !dbg !13 +// CHECK:STDOUT: %Rand.call.loc4_24 = tail call i32 @_CRand.Main() #0, !dbg !14 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Rand.call.loc4_24, %Rand.call.loc4_15, !dbg !13 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() local_unnamed_addr #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CCallNoInlineWithOptSize.Main() local_unnamed_addr #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Rand.call.loc4_15.i = tail call i32 @_CRand.Main() #0, !dbg !12 -// CHECK:STDOUT: %Rand.call.loc4_24.i = tail call i32 @_CRand.Main() #0, !dbg !14 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.i = add i32 %Rand.call.loc4_24.i, %Rand.call.loc4_15.i, !dbg !12 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.i, !dbg !15 +// CHECK:STDOUT: %Rand.call.loc4_15.i = tail call i32 @_CRand.Main() #0, !dbg !81 +// CHECK:STDOUT: %Rand.call.loc4_24.i = tail call i32 @_CRand.Main() #0, !dbg !82 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.i = add i32 %Rand.call.loc4_24.i, %Rand.call.loc4_15.i, !dbg !81 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.i, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) -// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr nofree captures(none) %a) local_unnamed_addr #1 !dbg !16 { +// CHECK:STDOUT: define void @_CVectorizedWithOptSpeed.Main(ptr nofree captures(none) %a) local_unnamed_addr #1 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br label %vector.body, !dbg !22 +// CHECK:STDOUT: br label %vector.body, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: vector.body: ; preds = %vector.body, %entry -// CHECK:STDOUT: %index = phi i32 [ 0, %entry ], [ %index.next.1, %vector.body ], !dbg !23 -// CHECK:STDOUT: %0 = zext nneg i32 %index to i64, !dbg !38 -// CHECK:STDOUT: %1 = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %0, !dbg !38 -// CHECK:STDOUT: %2 = getelementptr inbounds nuw i8, ptr %1, i64 16, !dbg !38 -// CHECK:STDOUT: %wide.load = load <4 x i32>, ptr %1, align 4, !dbg !38 -// CHECK:STDOUT: %wide.load4 = load <4 x i32>, ptr %2, align 4, !dbg !38 -// CHECK:STDOUT: %3 = shl <4 x i32> %wide.load, splat (i32 1), !dbg !38 -// CHECK:STDOUT: %4 = shl <4 x i32> %wide.load4, splat (i32 1), !dbg !38 -// CHECK:STDOUT: store <4 x i32> %3, ptr %1, align 4, !dbg !38 -// CHECK:STDOUT: store <4 x i32> %4, ptr %2, align 4, !dbg !38 -// CHECK:STDOUT: %5 = zext nneg i32 %index to i64, !dbg !38 -// CHECK:STDOUT: %6 = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %5, !dbg !38 -// CHECK:STDOUT: %7 = getelementptr inbounds nuw i8, ptr %6, i64 32, !dbg !38 -// CHECK:STDOUT: %8 = getelementptr inbounds nuw i8, ptr %6, i64 48, !dbg !38 -// CHECK:STDOUT: %wide.load.1 = load <4 x i32>, ptr %7, align 4, !dbg !38 -// CHECK:STDOUT: %wide.load4.1 = load <4 x i32>, ptr %8, align 4, !dbg !38 -// CHECK:STDOUT: %9 = shl <4 x i32> %wide.load.1, splat (i32 1), !dbg !38 -// CHECK:STDOUT: %10 = shl <4 x i32> %wide.load4.1, splat (i32 1), !dbg !38 -// CHECK:STDOUT: store <4 x i32> %9, ptr %7, align 4, !dbg !38 -// CHECK:STDOUT: store <4 x i32> %10, ptr %8, align 4, !dbg !38 -// CHECK:STDOUT: %index.next.1 = add nuw nsw i32 %index, 16, !dbg !23 -// CHECK:STDOUT: %11 = icmp eq i32 %index.next.1, 65536, !dbg !22 -// CHECK:STDOUT: br i1 %11, label %while.done, label %vector.body, !dbg !22, !llvm.loop !39 +// CHECK:STDOUT: %index = phi i32 [ 0, %entry ], [ %index.next.1, %vector.body ], !dbg !90 +// CHECK:STDOUT: %0 = zext nneg i32 %index to i64, !dbg !31 +// CHECK:STDOUT: %1 = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %0, !dbg !31 +// CHECK:STDOUT: %2 = getelementptr inbounds nuw i8, ptr %1, i64 16, !dbg !31 +// CHECK:STDOUT: %wide.load = load <4 x i32>, ptr %1, align 4, !dbg !31 +// CHECK:STDOUT: %wide.load4 = load <4 x i32>, ptr %2, align 4, !dbg !31 +// CHECK:STDOUT: %3 = shl <4 x i32> %wide.load, splat (i32 1), !dbg !31 +// CHECK:STDOUT: %4 = shl <4 x i32> %wide.load4, splat (i32 1), !dbg !31 +// CHECK:STDOUT: store <4 x i32> %3, ptr %1, align 4, !dbg !31 +// CHECK:STDOUT: store <4 x i32> %4, ptr %2, align 4, !dbg !31 +// CHECK:STDOUT: %5 = zext nneg i32 %index to i64, !dbg !31 +// CHECK:STDOUT: %6 = getelementptr inbounds nuw [4 x i8], ptr %a, i64 %5, !dbg !31 +// CHECK:STDOUT: %7 = getelementptr inbounds nuw i8, ptr %6, i64 32, !dbg !31 +// CHECK:STDOUT: %8 = getelementptr inbounds nuw i8, ptr %6, i64 48, !dbg !31 +// CHECK:STDOUT: %wide.load.1 = load <4 x i32>, ptr %7, align 4, !dbg !31 +// CHECK:STDOUT: %wide.load4.1 = load <4 x i32>, ptr %8, align 4, !dbg !31 +// CHECK:STDOUT: %9 = shl <4 x i32> %wide.load.1, splat (i32 1), !dbg !31 +// CHECK:STDOUT: %10 = shl <4 x i32> %wide.load4.1, splat (i32 1), !dbg !31 +// CHECK:STDOUT: store <4 x i32> %9, ptr %7, align 4, !dbg !31 +// CHECK:STDOUT: store <4 x i32> %10, ptr %8, align 4, !dbg !31 +// CHECK:STDOUT: %index.next.1 = add nuw nsw i32 %index, 16, !dbg !90 +// CHECK:STDOUT: %11 = icmp eq i32 %index.next.1, 65536, !dbg !26 +// CHECK:STDOUT: br i1 %11, label %while.done, label %vector.body, !dbg !26, !llvm.loop !98 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %vector.body -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder i32 %index, { 1, 0, 2 } @@ -98,62 +98,62 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nofree norecurse nosync nounwind memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} +// CHECK:STDOUT: !llvm.module.flags = !{!75, !76} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "foo.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 4, column: 10, scope: !4, inlinedAt: !13) -// CHECK:STDOUT: !13 = distinct !DILocation(line: 9, column: 10, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !4, inlinedAt: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !1, line: 12, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null, !19} -// CHECK:STDOUT: !19 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 9, scope: !16) -// CHECK:STDOUT: !23 = !DILocation(line: 331, column: 3, scope: !24, inlinedAt: !31) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !25, line: 331, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !25 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{null, !7, !7} -// CHECK:STDOUT: !28 = !{!29, !30} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !24, type: !7) -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 2, scope: !24, type: !7) -// CHECK:STDOUT: !31 = distinct !DILocation(line: 398, column: 5, scope: !32, inlinedAt: !37) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !25, line: 396, type: !33, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !33 = !DISubroutineType(types: !34) -// CHECK:STDOUT: !34 = !{null, !7} -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !37 = distinct !DILocation(line: 17, column: 5, scope: !16) -// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 5, scope: !16) -// CHECK:STDOUT: !39 = distinct !{!39, !40, !41} -// CHECK:STDOUT: !40 = !{!"llvm.loop.isvectorized", i32 1} -// CHECK:STDOUT: !41 = !{!"llvm.loop.unroll.runtime.disable"} -// CHECK:STDOUT: !42 = !DILocation(line: 12, column: 1, scope: !16) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !33, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !46 = !DILocation(line: 14, column: 3, scope: !43) +// CHECK:STDOUT: !0 = !DIFile(filename: "foo.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !2 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !3 = !{!2} +// CHECK:STDOUT: !4 = !DISubroutineType(types: !3) +// CHECK:STDOUT: !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !6 = !{null, !5} +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = !{null, !2} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "NoInlineWithOz", linkageName: "_CNoInlineWithOz.Main", scope: null, file: !0, line: 3, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !13 = !DILocation(line: 4, column: 10, scope: !10) +// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 19, scope: !10) +// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 3, scope: !10) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "CallNoInlineWithOptSize", linkageName: "_CCallNoInlineWithOptSize.Main", scope: null, file: !0, line: 7, type: !4, spFlags: DISPFlagDefinition, unit: !1) +// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !16) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "VectorizedWithOptSpeed", linkageName: "_CVectorizedWithOptSpeed.Main", scope: null, file: !0, line: 12, type: !7, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !36) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !5) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 9, scope: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 12, column: 1, scope: !21) +// CHECK:STDOUT: !36 = !{!22} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !0, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !2) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !41, line: 396, type: !9, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !2) +// CHECK:STDOUT: !46 = !{null, !2, !2} +// CHECK:STDOUT: !47 = !DISubroutineType(types: !46) +// CHECK:STDOUT: !49 = !{!43} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !41, line: 331, type: !47, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !57) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !2) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !2) +// CHECK:STDOUT: !57 = !{!51, !52} +// CHECK:STDOUT: !75 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !76 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !80 = distinct !DILocation(line: 9, column: 10, scope: !16) +// CHECK:STDOUT: !81 = distinct !DILocation(line: 4, column: 10, scope: !10, inlinedAt: !80) +// CHECK:STDOUT: !82 = distinct !DILocation(line: 4, column: 19, scope: !10, inlinedAt: !80) +// CHECK:STDOUT: !88 = distinct !DILocation(line: 17, column: 5, scope: !21) +// CHECK:STDOUT: !89 = distinct !DILocation(line: 398, column: 5, scope: !42, inlinedAt: !88) +// CHECK:STDOUT: !90 = distinct !DILocation(line: 331, column: 3, scope: !50, inlinedAt: !89) +// CHECK:STDOUT: !95 = !{!"llvm.loop.isvectorized", i32 1} +// CHECK:STDOUT: !97 = !{!"llvm.loop.unroll.runtime.disable"} +// CHECK:STDOUT: !98 = distinct !{!98, !95, !97} // CHECK:STDOUT: diff --git a/toolchain/driver/testdata/stdin.carbon b/toolchain/driver/testdata/stdin.carbon index 1310a773b8d2..e5857613b394 100644 --- a/toolchain/driver/testdata/stdin.carbon +++ b/toolchain/driver/testdata/stdin.carbon @@ -106,11 +106,11 @@ // CHECK:STDOUT: ; ModuleID = '-' // CHECK:STDOUT: source_filename = "-" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "-", directory: "") +// CHECK:STDOUT: !0 = !DIFile(filename: "-", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/alias/var.carbon b/toolchain/lower/testdata/alias/var.carbon index b82759890574..7b2f16651d02 100644 --- a/toolchain/lower/testdata/alias/var.carbon +++ b/toolchain/lower/testdata/alias/var.carbon @@ -25,37 +25,37 @@ fn F() -> i32 { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17 = load i32, ptr @_Ca.Main, align 4, !dbg !8 -// CHECK:STDOUT: ret i32 %.loc17, !dbg !9 +// CHECK:STDOUT: %.loc17 = load i32, ptr @_Ca.Main, align 4, !dbg !26 +// CHECK:STDOUT: ret i32 %.loc17, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !10 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 0, ptr @_Ca.Main, align 4, !dbg !13 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: store i32 0, ptr @_Ca.Main, align 4, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !11, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null} -// CHECK:STDOUT: !13 = !DILocation(line: 13, column: 1, scope: !10) -// CHECK:STDOUT: !14 = !DILocation(line: 0, scope: !10) +// CHECK:STDOUT: !18 = !DIFile(filename: "var.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 17, column: 10, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 17, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !29, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 13, column: 1, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 0, scope: !30) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/array_in_place.carbon b/toolchain/lower/testdata/array/array_in_place.carbon index d307cce77b12..0014d6d661b2 100644 --- a/toolchain/lower/testdata/array/array_in_place.carbon +++ b/toolchain/lower/testdata/array/array_in_place.carbon @@ -23,34 +23,34 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr sret({ i32, i32, i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [2 x { i32, i32, i32 }], align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !7 -// CHECK:STDOUT: %.loc16_47.6.array.index = getelementptr inbounds [2 x { i32, i32, i32 }], ptr %_.var, i32 0, i64 0, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.6.array.index), !dbg !9 -// CHECK:STDOUT: %.loc16_47.5.array.index = getelementptr inbounds [2 x { i32, i32, i32 }], ptr %_.var, i32 0, i64 1, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.5.array.index), !dbg !10 -// CHECK:STDOUT: call void @"_COp.338262943cb44ff5:core.Destroy.Core"(ptr %_.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var = alloca [2 x { i32, i32, i32 }], align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !31 +// CHECK:STDOUT: %.loc16_47.6.array.index = getelementptr inbounds [2 x { i32, i32, i32 }], ptr %_.var, i32 0, i64 0, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.6.array.index), !dbg !33 +// CHECK:STDOUT: %.loc16_47.5.array.index = getelementptr inbounds [2 x { i32, i32, i32 }], ptr %_.var, i32 0, i64 1, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.5.array.index), !dbg !34 +// CHECK:STDOUT: call void @"_COp.338262943cb44ff5:core.Destroy.Core"(ptr %_.var), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.338262943cb44ff5:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.338262943cb44ff5:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -59,37 +59,37 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "array_in_place.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 38, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 39, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 44, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.338262943cb44ff5:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) -// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) +// CHECK:STDOUT: !18 = !DIFile(filename: "array_in_place.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 38, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 39, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 16, column: 44, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !21) +// CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.338262943cb44ff5:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) +// CHECK:STDOUT: !47 = !DILocation(line: 16, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/assign_return_value.carbon b/toolchain/lower/testdata/array/assign_return_value.carbon index 1cc0defa5cc7..1cd7cfb6a327 100644 --- a/toolchain/lower/testdata/array/assign_return_value.carbon +++ b/toolchain/lower/testdata/array/assign_return_value.carbon @@ -23,51 +23,51 @@ fn Run() { // CHECK:STDOUT: @tuple.1cd.loc13_39 = internal constant { i32, i32 } { i32 12, i32 24 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.1cd.loc13_39, i64 8, i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.1cd.loc13_39, i64 8, i1 false), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !10 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [2 x i32], align 4, !dbg !14 -// CHECK:STDOUT: %.loc16_28.1.temp = alloca { i32, i32 }, align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_28.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_28.1.temp), !dbg !15 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_28.1.temp, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: %.loc16_28.3 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !15 -// CHECK:STDOUT: %.loc16_28.4.array.index = getelementptr inbounds [2 x i32], ptr %_.var, i32 0, i64 0, !dbg !15 -// CHECK:STDOUT: store i32 %.loc16_28.3, ptr %.loc16_28.4.array.index, align 4, !dbg !15 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_28.1.temp, i32 0, i32 1, !dbg !15 -// CHECK:STDOUT: %.loc16_28.6 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !15 -// CHECK:STDOUT: %.loc16_28.7.array.index = getelementptr inbounds [2 x i32], ptr %_.var, i32 0, i64 1, !dbg !15 -// CHECK:STDOUT: store i32 %.loc16_28.6, ptr %.loc16_28.7.array.index, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc16_28.1.temp), !dbg !15 -// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %_.var), !dbg !14 -// CHECK:STDOUT: ret i32 0, !dbg !16 +// CHECK:STDOUT: %_.var = alloca [2 x i32], align 4, !dbg !36 +// CHECK:STDOUT: %.loc16_28.1.temp = alloca { i32, i32 }, align 4, !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_28.1.temp), !dbg !37 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_28.1.temp), !dbg !37 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_28.1.temp, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: %.loc16_28.3 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !37 +// CHECK:STDOUT: %.loc16_28.4.array.index = getelementptr inbounds [2 x i32], ptr %_.var, i32 0, i64 0, !dbg !37 +// CHECK:STDOUT: store i32 %.loc16_28.3, ptr %.loc16_28.4.array.index, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_28.1.temp, i32 0, i32 1, !dbg !37 +// CHECK:STDOUT: %.loc16_28.6 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !37 +// CHECK:STDOUT: %.loc16_28.7.array.index = getelementptr inbounds [2 x i32], ptr %_.var, i32 0, i64 1, !dbg !37 +// CHECK:STDOUT: store i32 %.loc16_28.6, ptr %.loc16_28.7.array.index, align 4, !dbg !37 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc16_28.1.temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %_.var), !dbg !36 +// CHECK:STDOUT: ret i32 0, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -82,40 +82,40 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "assign_return_value.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 31, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 13, column: 24, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !10) -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 26, scope: !10) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !13} -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !13) -// CHECK:STDOUT: !22 = !DILocation(line: 16, column: 26, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{null, !7} -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 26, scope: !23) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc700786da40234:core.Destroy.Core", scope: null, file: !1, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !7) -// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 3, scope: !29) +// CHECK:STDOUT: !18 = !DIFile(filename: "assign_return_value.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 13, column: 31, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 13, column: 24, scope: !30) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !35) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 26, scope: !35) +// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 1, scope: !35) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) +// CHECK:STDOUT: !42 = !DILocation(line: 16, column: 26, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !21) +// CHECK:STDOUT: !46 = !DILocation(line: 16, column: 26, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc700786da40234:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !21) +// CHECK:STDOUT: !50 = !DILocation(line: 16, column: 3, scope: !48) +// CHECK:STDOUT: !51 = !{!49} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/base.carbon b/toolchain/lower/testdata/array/base.carbon index 570918638eac..fb4106b66043 100644 --- a/toolchain/lower/testdata/array/base.carbon +++ b/toolchain/lower/testdata/array/base.carbon @@ -28,93 +28,93 @@ fn Run() { // CHECK:STDOUT: @tuple.479.loc17_3 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc14 = alloca [1 x i32], align 4, !dbg !8 -// CHECK:STDOUT: %_.var.loc15 = alloca [2 x double], align 8, !dbg !9 -// CHECK:STDOUT: %_.var.loc16 = alloca [5 x {}], align 1, !dbg !10 -// CHECK:STDOUT: %d.var = alloca { i32, i32, i32 }, align 4, !dbg !11 -// CHECK:STDOUT: %_.var.loc18 = alloca [3 x i32], align 4, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !8 -// CHECK:STDOUT: %.loc14_29.3.array.index = getelementptr inbounds [1 x i32], ptr %_.var.loc14, i32 0, i64 0, !dbg !13 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc14, ptr align 4 @array.a00.loc14_3, i64 4, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !9 -// CHECK:STDOUT: %.loc15_37.3.array.index = getelementptr inbounds [2 x double], ptr %_.var.loc15, i32 0, i64 0, !dbg !14 -// CHECK:STDOUT: %.loc15_37.6.array.index = getelementptr inbounds [2 x double], ptr %_.var.loc15, i32 0, i64 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc15, ptr align 8 @array.541.loc15_3, i64 16, i1 false), !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !10 -// CHECK:STDOUT: %.loc16_45.2.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 0, !dbg !15 -// CHECK:STDOUT: %.loc16_45.5.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 1, !dbg !15 -// CHECK:STDOUT: %.loc16_45.8.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 2, !dbg !15 -// CHECK:STDOUT: %.loc16_45.11.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 3, !dbg !15 -// CHECK:STDOUT: %.loc16_45.14.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @array.1cb.loc16_3, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !11 -// CHECK:STDOUT: %tuple.elem0.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 0, !dbg !16 -// CHECK:STDOUT: %tuple.elem1.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 1, !dbg !16 -// CHECK:STDOUT: %tuple.elem2.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 2, !dbg !16 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %d.var, ptr align 4 @tuple.479.loc17_3, i64 12, i1 false), !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !12 -// CHECK:STDOUT: %tuple.elem0.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc18_26.1 = load i32, ptr %tuple.elem0.loc18.tuple.elem, align 4, !dbg !17 -// CHECK:STDOUT: %.loc18_26.2.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 0, !dbg !17 -// CHECK:STDOUT: store i32 %.loc18_26.1, ptr %.loc18_26.2.array.index, align 4, !dbg !17 -// CHECK:STDOUT: %tuple.elem1.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 1, !dbg !17 -// CHECK:STDOUT: %.loc18_26.4 = load i32, ptr %tuple.elem1.loc18.tuple.elem, align 4, !dbg !17 -// CHECK:STDOUT: %.loc18_26.5.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 1, !dbg !17 -// CHECK:STDOUT: store i32 %.loc18_26.4, ptr %.loc18_26.5.array.index, align 4, !dbg !17 -// CHECK:STDOUT: %tuple.elem2.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 2, !dbg !17 -// CHECK:STDOUT: %.loc18_26.7 = load i32, ptr %tuple.elem2.loc18.tuple.elem, align 4, !dbg !17 -// CHECK:STDOUT: %.loc18_26.8.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 2, !dbg !17 -// CHECK:STDOUT: store i32 %.loc18_26.7, ptr %.loc18_26.8.array.index, align 4, !dbg !17 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %_.var.loc18), !dbg !12 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %d.var), !dbg !11 -// CHECK:STDOUT: call void @"_COp.04d2b1153eb4b676:core.Destroy.Core"(ptr %_.var.loc16), !dbg !10 -// CHECK:STDOUT: call void @"_COp.d8cac0765303fe17:core.Destroy.Core"(ptr %_.var.loc15), !dbg !9 -// CHECK:STDOUT: call void @"_COp.7f998d5ee0e4ec3f:core.Destroy.Core"(ptr %_.var.loc14), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !18 +// CHECK:STDOUT: %_.var.loc14 = alloca [1 x i32], align 4, !dbg !43 +// CHECK:STDOUT: %_.var.loc15 = alloca [2 x double], align 8, !dbg !46 +// CHECK:STDOUT: %_.var.loc16 = alloca [5 x {}], align 1, !dbg !49 +// CHECK:STDOUT: %d.var = alloca { i32, i32, i32 }, align 4, !dbg !52 +// CHECK:STDOUT: %_.var.loc18 = alloca [3 x i32], align 4, !dbg !55 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !43 +// CHECK:STDOUT: %.loc14_29.3.array.index = getelementptr inbounds [1 x i32], ptr %_.var.loc14, i32 0, i64 0, !dbg !44 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc14, ptr align 4 @array.a00.loc14_3, i64 4, i1 false), !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !46 +// CHECK:STDOUT: %.loc15_37.3.array.index = getelementptr inbounds [2 x double], ptr %_.var.loc15, i32 0, i64 0, !dbg !47 +// CHECK:STDOUT: %.loc15_37.6.array.index = getelementptr inbounds [2 x double], ptr %_.var.loc15, i32 0, i64 1, !dbg !47 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc15, ptr align 8 @array.541.loc15_3, i64 16, i1 false), !dbg !46 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !49 +// CHECK:STDOUT: %.loc16_45.2.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 0, !dbg !50 +// CHECK:STDOUT: %.loc16_45.5.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 1, !dbg !50 +// CHECK:STDOUT: %.loc16_45.8.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 2, !dbg !50 +// CHECK:STDOUT: %.loc16_45.11.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 3, !dbg !50 +// CHECK:STDOUT: %.loc16_45.14.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 4, !dbg !50 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @array.1cb.loc16_3, i64 0, i1 false), !dbg !49 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !52 +// CHECK:STDOUT: %tuple.elem0.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 0, !dbg !53 +// CHECK:STDOUT: %tuple.elem1.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 1, !dbg !53 +// CHECK:STDOUT: %tuple.elem2.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 2, !dbg !53 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %d.var, ptr align 4 @tuple.479.loc17_3, i64 12, i1 false), !dbg !52 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !55 +// CHECK:STDOUT: %tuple.elem0.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 0, !dbg !56 +// CHECK:STDOUT: %.loc18_26.1 = load i32, ptr %tuple.elem0.loc18.tuple.elem, align 4, !dbg !56 +// CHECK:STDOUT: %.loc18_26.2.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 0, !dbg !56 +// CHECK:STDOUT: store i32 %.loc18_26.1, ptr %.loc18_26.2.array.index, align 4, !dbg !56 +// CHECK:STDOUT: %tuple.elem1.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 1, !dbg !56 +// CHECK:STDOUT: %.loc18_26.4 = load i32, ptr %tuple.elem1.loc18.tuple.elem, align 4, !dbg !56 +// CHECK:STDOUT: %.loc18_26.5.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 1, !dbg !56 +// CHECK:STDOUT: store i32 %.loc18_26.4, ptr %.loc18_26.5.array.index, align 4, !dbg !56 +// CHECK:STDOUT: %tuple.elem2.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 2, !dbg !56 +// CHECK:STDOUT: %.loc18_26.7 = load i32, ptr %tuple.elem2.loc18.tuple.elem, align 4, !dbg !56 +// CHECK:STDOUT: %.loc18_26.8.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 2, !dbg !56 +// CHECK:STDOUT: store i32 %.loc18_26.7, ptr %.loc18_26.8.array.index, align 4, !dbg !56 +// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %_.var.loc18), !dbg !55 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %d.var), !dbg !52 +// CHECK:STDOUT: call void @"_COp.04d2b1153eb4b676:core.Destroy.Core"(ptr %_.var.loc16), !dbg !49 +// CHECK:STDOUT: call void @"_COp.d8cac0765303fe17:core.Destroy.Core"(ptr %_.var.loc15), !dbg !46 +// CHECK:STDOUT: call void @"_COp.7f998d5ee0e4ec3f:core.Destroy.Core"(ptr %_.var.loc14), !dbg !43 +// CHECK:STDOUT: ret i32 0, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.04d2b1153eb4b676:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.04d2b1153eb4b676:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !43 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8cac0765303fe17:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8cac0765303fe17:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7f998d5ee0e4ec3f:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.7f998d5ee0e4ec3f:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !51 +// CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -130,59 +130,59 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "base.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 14, column: 26, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 15, column: 26, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 25, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 28, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 26, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !7} -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !1, line: 18, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{null, !28} -// CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !28) -// CHECK:STDOUT: !31 = !DILocation(line: 18, column: 3, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 17, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !28) -// CHECK:STDOUT: !35 = !DILocation(line: 17, column: 3, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.04d2b1153eb4b676:core.Destroy.Core", scope: null, file: !1, line: 16, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !28) -// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !36) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !28) -// CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !40) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8cac0765303fe17:core.Destroy.Core", scope: null, file: !1, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !28) -// CHECK:STDOUT: !47 = !DILocation(line: 15, column: 3, scope: !44) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7f998d5ee0e4ec3f:core.Destroy.Core", scope: null, file: !1, line: 14, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !49 = !{!50} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !48, type: !28) -// CHECK:STDOUT: !51 = !DILocation(line: 14, column: 3, scope: !48) +// CHECK:STDOUT: !32 = !DIFile(filename: "base.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !{null, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{null, !39} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !32, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !43 = !DILocation(line: 14, column: 3, scope: !42) +// CHECK:STDOUT: !44 = !DILocation(line: 14, column: 26, scope: !42) +// CHECK:STDOUT: !46 = !DILocation(line: 15, column: 3, scope: !42) +// CHECK:STDOUT: !47 = !DILocation(line: 15, column: 26, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 16, column: 3, scope: !42) +// CHECK:STDOUT: !50 = !DILocation(line: 16, column: 25, scope: !42) +// CHECK:STDOUT: !52 = !DILocation(line: 17, column: 3, scope: !42) +// CHECK:STDOUT: !53 = !DILocation(line: 17, column: 28, scope: !42) +// CHECK:STDOUT: !55 = !DILocation(line: 18, column: 3, scope: !42) +// CHECK:STDOUT: !56 = !DILocation(line: 18, column: 26, scope: !42) +// CHECK:STDOUT: !58 = !DILocation(line: 13, column: 1, scope: !42) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 18, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !62) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !34) +// CHECK:STDOUT: !61 = !DILocation(line: 18, column: 3, scope: !59) +// CHECK:STDOUT: !62 = !{!60} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !32, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !66) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !39) +// CHECK:STDOUT: !65 = !DILocation(line: 18, column: 3, scope: !63) +// CHECK:STDOUT: !66 = !{!64} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !32, line: 17, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !70) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !39) +// CHECK:STDOUT: !69 = !DILocation(line: 17, column: 3, scope: !67) +// CHECK:STDOUT: !70 = !{!68} +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.04d2b1153eb4b676:core.Destroy.Core", scope: null, file: !32, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !74) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !39) +// CHECK:STDOUT: !73 = !DILocation(line: 16, column: 3, scope: !71) +// CHECK:STDOUT: !74 = !{!72} +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !78) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !39) +// CHECK:STDOUT: !77 = !DILocation(line: 15, column: 3, scope: !75) +// CHECK:STDOUT: !78 = !{!76} +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8cac0765303fe17:core.Destroy.Core", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !39) +// CHECK:STDOUT: !81 = !DILocation(line: 15, column: 3, scope: !79) +// CHECK:STDOUT: !82 = !{!80} +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7f998d5ee0e4ec3f:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !86) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !39) +// CHECK:STDOUT: !85 = !DILocation(line: 14, column: 3, scope: !83) +// CHECK:STDOUT: !86 = !{!84} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/field.carbon b/toolchain/lower/testdata/array/field.carbon index f67babcd5628..affacdb01da0 100644 --- a/toolchain/lower/testdata/array/field.carbon +++ b/toolchain/lower/testdata/array/field.carbon @@ -32,34 +32,34 @@ class A { // CHECK:STDOUT: @A.val.loc16_40 = internal constant { [2 x i32] } { [2 x i32] [i32 1, i32 2] } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInit.A.Main(ptr sret({ [2 x i32] }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CInit.A.Main(ptr sret({ [2 x i32] }) %return) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc16_39.2.v = getelementptr inbounds nuw { [2 x i32] }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc16_38.3.array.index = getelementptr inbounds [2 x i32], ptr %.loc16_39.2.v, i32 0, i64 0, !dbg !9 -// CHECK:STDOUT: %.loc16_38.6.array.index = getelementptr inbounds [2 x i32], ptr %.loc16_39.2.v, i32 0, i64 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @A.val.loc16_40, i64 8, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %.loc16_39.2.v = getelementptr inbounds nuw { [2 x i32] }, ptr %return, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc16_38.3.array.index = getelementptr inbounds [2 x i32], ptr %.loc16_39.2.v, i32 0, i64 0, !dbg !30 +// CHECK:STDOUT: %.loc16_38.6.array.index = getelementptr inbounds [2 x i32], ptr %.loc16_39.2.v, i32 0, i64 1, !dbg !30 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @A.val.loc16_40, i64 8, i1 false), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccess.A.Main(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CAccess.A.Main(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc19_16.1.v = getelementptr inbounds nuw { [2 x i32] }, ptr %self, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc19_20.2.array.index = getelementptr inbounds [2 x i32], ptr %.loc19_16.1.v, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc19_20.3 = load i32, ptr %.loc19_20.2.array.index, align 4, !dbg !17 -// CHECK:STDOUT: ret i32 %.loc19_20.3, !dbg !18 +// CHECK:STDOUT: %.loc19_16.1.v = getelementptr inbounds nuw { [2 x i32] }, ptr %self, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: %.loc19_20.2.array.index = getelementptr inbounds [2 x i32], ptr %.loc19_16.1.v, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: %.loc19_20.3 = load i32, ptr %.loc19_20.2.array.index, align 4, !dbg !37 +// CHECK:STDOUT: ret i32 %.loc19_20.3, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CUse.A.Main(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define i32 @_CUse.A.Main(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc23_9.v = getelementptr inbounds nuw { [2 x i32] }, ptr %self, i32 0, i32 0, !dbg !22 -// CHECK:STDOUT: %.loc23_13.array.index = getelementptr inbounds [2 x i32], ptr %.loc23_9.v, i32 0, i32 0, !dbg !22 -// CHECK:STDOUT: store i32 1, ptr %.loc23_13.array.index, align 4, !dbg !22 -// CHECK:STDOUT: %.loc24_16.v = getelementptr inbounds nuw { [2 x i32] }, ptr %self, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: %.loc24_20.1.array.index = getelementptr inbounds [2 x i32], ptr %.loc24_16.v, i32 0, i32 1, !dbg !23 -// CHECK:STDOUT: %.loc24_20.2 = load i32, ptr %.loc24_20.1.array.index, align 4, !dbg !23 -// CHECK:STDOUT: ret i32 %.loc24_20.2, !dbg !24 +// CHECK:STDOUT: %.loc23_9.v = getelementptr inbounds nuw { [2 x i32] }, ptr %self, i32 0, i32 0, !dbg !45 +// CHECK:STDOUT: %.loc23_13.array.index = getelementptr inbounds [2 x i32], ptr %.loc23_9.v, i32 0, i32 0, !dbg !45 +// CHECK:STDOUT: store i32 1, ptr %.loc23_13.array.index, align 4, !dbg !45 +// CHECK:STDOUT: %.loc24_16.v = getelementptr inbounds nuw { [2 x i32] }, ptr %self, i32 0, i32 0, !dbg !46 +// CHECK:STDOUT: %.loc24_20.1.array.index = getelementptr inbounds [2 x i32], ptr %.loc24_16.v, i32 0, i32 1, !dbg !46 +// CHECK:STDOUT: %.loc24_20.2 = load i32, ptr %.loc24_20.1.array.index, align 4, !dbg !46 +// CHECK:STDOUT: ret i32 %.loc24_20.2, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -68,32 +68,32 @@ class A { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "field.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Init", linkageName: "_CInit.A.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 27, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 33, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 20, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Access", linkageName: "_CAccess.A.Main", scope: null, file: !1, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!14, !7} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 12, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 5, scope: !11) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.A.Main", scope: null, file: !1, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 5, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 24, column: 12, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 24, column: 5, scope: !19) +// CHECK:STDOUT: !18 = !DIFile(filename: "field.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Init", linkageName: "_CInit.A.Main", scope: null, file: !18, line: 16, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 27, scope: !26) +// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 33, scope: !26) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 20, scope: !26) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Access", linkageName: "_CAccess.A.Main", scope: null, file: !18, line: 18, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 19, column: 12, scope: !32) +// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 5, scope: !32) +// CHECK:STDOUT: !39 = !{!33} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.A.Main", scope: null, file: !18, line: 22, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !21) +// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 5, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 24, column: 12, scope: !40) +// CHECK:STDOUT: !47 = !DILocation(line: 24, column: 5, scope: !40) +// CHECK:STDOUT: !48 = !{!41} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/function_param.carbon b/toolchain/lower/testdata/array/function_param.carbon index 86fb49c86032..de745c190e7a 100644 --- a/toolchain/lower/testdata/array/function_param.carbon +++ b/toolchain/lower/testdata/array/function_param.carbon @@ -26,36 +26,36 @@ fn G() -> i32 { // CHECK:STDOUT: @array.loc18_20.15 = internal constant [3 x i32] [i32 1, i32 2, i32 3] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main(ptr %arr, i32 %i) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main(ptr %arr, i32 %i) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_15.2.array.index = getelementptr inbounds [3 x i32], ptr %arr, i32 0, i32 %i, !dbg !12 -// CHECK:STDOUT: %.loc14_15.3 = load i32, ptr %.loc14_15.2.array.index, align 4, !dbg !12 -// CHECK:STDOUT: ret i32 %.loc14_15.3, !dbg !13 +// CHECK:STDOUT: %.loc14_15.2.array.index = getelementptr inbounds [3 x i32], ptr %arr, i32 0, i32 %i, !dbg !37 +// CHECK:STDOUT: %.loc14_15.3 = load i32, ptr %.loc14_15.2.array.index, align 4, !dbg !37 +// CHECK:STDOUT: ret i32 %.loc14_15.3, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CG.Main() #0 !dbg !14 { +// CHECK:STDOUT: define i32 @_CG.Main() #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_20.3.temp = alloca [3 x i32], align 4, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_20.3.temp), !dbg !17 -// CHECK:STDOUT: %.loc18_20.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 0, !dbg !17 -// CHECK:STDOUT: %.loc18_20.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 1, !dbg !17 -// CHECK:STDOUT: %.loc18_20.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 2, !dbg !17 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr @array.loc18_20.15, i32 1), !dbg !18 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !17 -// CHECK:STDOUT: ret i32 %F.call, !dbg !19 +// CHECK:STDOUT: %.loc18_20.3.temp = alloca [3 x i32], align 4, !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_20.3.temp), !dbg !44 +// CHECK:STDOUT: %.loc18_20.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 0, !dbg !44 +// CHECK:STDOUT: %.loc18_20.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 1, !dbg !44 +// CHECK:STDOUT: %.loc18_20.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 2, !dbg !44 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr @array.loc18_20.15, i32 1), !dbg !45 +// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !44 +// CHECK:STDOUT: ret i32 %F.call, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -64,39 +64,39 @@ fn G() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "function_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10, !11} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 17, type: !15, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{!7} -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 12, scope: !14) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 10, scope: !14) -// CHECK:STDOUT: !19 = !DILocation(line: 18, column: 3, scope: !14) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !7} -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !25 = !DILocation(line: 18, column: 12, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !8} -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !8) -// CHECK:STDOUT: !31 = !DILocation(line: 18, column: 12, scope: !26) +// CHECK:STDOUT: !18 = !DIFile(filename: "function_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21, !20} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !21) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 2, scope: !30, type: !20) +// CHECK:STDOUT: !37 = !DILocation(line: 14, column: 10, scope: !30) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 3, scope: !30) +// CHECK:STDOUT: !40 = !{!31, !32} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 17, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !44 = !DILocation(line: 18, column: 12, scope: !41) +// CHECK:STDOUT: !45 = !DILocation(line: 18, column: 10, scope: !41) +// CHECK:STDOUT: !46 = !DILocation(line: 18, column: 3, scope: !41) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !20) +// CHECK:STDOUT: !49 = !DILocation(line: 18, column: 12, scope: !47) +// CHECK:STDOUT: !50 = !{!48} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !18, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !21) +// CHECK:STDOUT: !53 = !DILocation(line: 18, column: 12, scope: !51) +// CHECK:STDOUT: !54 = !{!52} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/global.carbon b/toolchain/lower/testdata/array/global.carbon index a27a2730b40b..da57f15847b8 100644 --- a/toolchain/lower/testdata/array/global.carbon +++ b/toolchain/lower/testdata/array/global.carbon @@ -28,16 +28,16 @@ fn Get() -> ref array(i32, 4) { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CGet.Main() #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CGet.Main() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_Ca.Main, !dbg !8 +// CHECK:STDOUT: ret ptr @_Ca.Main, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !9 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Ca.Main, ptr align 4 @array.loc3_1, i64 16, i1 false), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Ca.Main, ptr align 4 @array.loc3_1, i64 16, i1 false), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -46,21 +46,21 @@ fn Get() -> ref array(i32, 4) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "global_array_reference.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !10, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null} -// CHECK:STDOUT: !12 = !DILocation(line: 3, column: 1, scope: !9) -// CHECK:STDOUT: !13 = !DILocation(line: 0, scope: !9) +// CHECK:STDOUT: !18 = !DIFile(filename: "global_array_reference.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Main", scope: null, file: !18, line: 5, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !27 = !DILocation(line: 6, column: 3, scope: !24) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !29, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !32 = !DILocation(line: 3, column: 1, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 0, scope: !30) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/iterate.carbon b/toolchain/lower/testdata/array/iterate.carbon index babe9aad8913..0e5f54aa8cfb 100644 --- a/toolchain/lower/testdata/array/iterate.carbon +++ b/toolchain/lower/testdata/array/iterate.carbon @@ -29,193 +29,193 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc16_43.3.temp = alloca [6 x i32], align 4, !dbg !7 -// CHECK:STDOUT: %var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %.loc17_19.5.temp = alloca <{ i32, i1 }>, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_43.3.temp), !dbg !7 -// CHECK:STDOUT: %.loc16_43.4.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 0, !dbg !7 -// CHECK:STDOUT: %.loc16_43.7.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 1, !dbg !7 -// CHECK:STDOUT: %.loc16_43.10.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 2, !dbg !7 -// CHECK:STDOUT: %.loc16_43.13.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 3, !dbg !7 -// CHECK:STDOUT: %.loc16_43.16.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 4, !dbg !7 -// CHECK:STDOUT: %.loc16_43.19.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 5, !dbg !7 -// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr @array.loc16_43.24), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 -// CHECK:STDOUT: store i32 %array_type.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !8 +// CHECK:STDOUT: %.loc16_43.3.temp = alloca [6 x i32], align 4, !dbg !15 +// CHECK:STDOUT: %var = alloca i32, align 4, !dbg !20 +// CHECK:STDOUT: %.loc17_19.5.temp = alloca <{ i32, i1 }>, align 4, !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_43.3.temp), !dbg !15 +// CHECK:STDOUT: %.loc16_43.4.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 0, !dbg !15 +// CHECK:STDOUT: %.loc16_43.7.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 1, !dbg !15 +// CHECK:STDOUT: %.loc16_43.10.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 2, !dbg !15 +// CHECK:STDOUT: %.loc16_43.13.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 3, !dbg !15 +// CHECK:STDOUT: %.loc16_43.16.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 4, !dbg !15 +// CHECK:STDOUT: %.loc16_43.19.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 5, !dbg !15 +// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr @array.loc16_43.24), !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !20 +// CHECK:STDOUT: store i32 %array_type.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !20 +// CHECK:STDOUT: br label %for.next, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_19.5.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr %.loc17_19.5.temp, ptr @array.loc16_43.24, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc17_19.5.temp), !dbg !8 -// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: call void @"_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr %.loc17_19.5.temp, ptr @array.loc16_43.24, ptr %var), !dbg !20 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc17_19.5.temp), !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(i32 %Optional.Get.call), !dbg !9 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !10 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: call void @_CG.Main(i32 %Optional.Get.call), !dbg !28 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: br label %for.next, !dbg !29 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.fd19f3506b5fdce5:core.Destroy.Core"(ptr @array), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc17_19.5.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !20 +// CHECK:STDOUT: call void @"_COp.fd19f3506b5fdce5:core.Destroy.Core"(ptr @array), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !19 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !26 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fd19f3506b5fdce5:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !49 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !53 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.fd19f3506b5fdce5:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !57 +// CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr %self) #0 !dbg !46 { -// CHECK:STDOUT: ret i32 0, !dbg !52 +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr %self) #0 !dbg !60 { +// CHECK:STDOUT: ret i32 0, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !53 { -// CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !59 -// CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !59 -// CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !60 +// CHECK:STDOUT: define linkonce_odr void @"_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !67 { +// CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !75 +// CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !75 +// CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !76 // CHECK:STDOUT: // CHECK:STDOUT: 3: ; preds = %0 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !61 -// CHECK:STDOUT: %4 = load i32, ptr %cursor, align 4, !dbg !62 -// CHECK:STDOUT: %5 = sub i32 %4, 1, !dbg !62 -// CHECK:STDOUT: %array.index = getelementptr inbounds [6 x i32], ptr %self, i32 0, i32 %5, !dbg !63 -// CHECK:STDOUT: %6 = load i32, ptr %array.index, align 4, !dbg !63 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %6), !dbg !64 -// CHECK:STDOUT: ret void, !dbg !65 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !79 +// CHECK:STDOUT: %4 = load i32, ptr %cursor, align 4, !dbg !82 +// CHECK:STDOUT: %5 = sub i32 %4, 1, !dbg !82 +// CHECK:STDOUT: %array.index = getelementptr inbounds [6 x i32], ptr %self, i32 0, i32 %5, !dbg !80 +// CHECK:STDOUT: %6 = load i32, ptr %array.index, align 4, !dbg !80 +// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %6), !dbg !83 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !66 -// CHECK:STDOUT: ret void, !dbg !67 +// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !87 +// CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !68 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !74 -// CHECK:STDOUT: ret i1 %1, !dbg !75 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !93 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !99 +// CHECK:STDOUT: ret i1 %1, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !76 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !79 -// CHECK:STDOUT: ret i32 %1, !dbg !80 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !102 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !108 +// CHECK:STDOUT: ret i32 %1, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !81 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !85 -// CHECK:STDOUT: ret void, !dbg !86 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !112 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !115 +// CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !87 { -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !92 -// CHECK:STDOUT: ret void, !dbg !93 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !120 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !125 +// CHECK:STDOUT: ret void, !dbg !126 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !94 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !97 -// CHECK:STDOUT: ret void, !dbg !98 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !128 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !131 +// CHECK:STDOUT: ret void, !dbg !132 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !99 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !102 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !102 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !102 -// CHECK:STDOUT: ret i1 %2, !dbg !103 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !133 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !138 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !138 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !138 +// CHECK:STDOUT: ret i1 %2, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !104 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !107 -// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !107 -// CHECK:STDOUT: ret i32 %1, !dbg !108 +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !141 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !146 +// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !146 +// CHECK:STDOUT: ret i32 %1, !dbg !147 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !109 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !115 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !116 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !116 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !116 -// CHECK:STDOUT: ret void, !dbg !116 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !149 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !152 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !153 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !153 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !153 +// CHECK:STDOUT: ret void, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !117 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !120 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !120 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !121 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !121 -// CHECK:STDOUT: ret void, !dbg !122 +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !157 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !166 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !166 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !168 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !168 +// CHECK:STDOUT: ret void, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !123 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !124 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !124 -// CHECK:STDOUT: ret void, !dbg !125 +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !171 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !178 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !178 +// CHECK:STDOUT: ret void, !dbg !179 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !126 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !131 -// CHECK:STDOUT: ret i32 %1, !dbg !132 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !180 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !185 +// CHECK:STDOUT: ret i32 %1, !dbg !187 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !133 { -// CHECK:STDOUT: ret i32 %self, !dbg !136 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !189 { +// CHECK:STDOUT: ret i32 %self, !dbg !195 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -226,144 +226,144 @@ fn F() { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "iterate.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 26, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 5, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 7, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 7, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !15) -// CHECK:STDOUT: !29 = !DILocation(line: 17, column: 7, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !22) -// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 7, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !22) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 7, scope: !34) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !22) -// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 7, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd19f3506b5fdce5:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !22) -// CHECK:STDOUT: !45 = !DILocation(line: 16, column: 26, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf", scope: null, file: !47, line: 23, type: !48, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !47 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") -// CHECK:STDOUT: !48 = !DISubroutineType(types: !49) -// CHECK:STDOUT: !49 = !{!15, !22} -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !46, type: !22) -// CHECK:STDOUT: !52 = !DILocation(line: 23, column: 38, scope: !46) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf", scope: null, file: !47, line: 24, type: !54, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !54 = !DISubroutineType(types: !55) -// CHECK:STDOUT: !55 = !{!22, !22, !22} -// CHECK:STDOUT: !56 = !{!57, !58} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !53, type: !22) -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 2, scope: !53, type: !22) -// CHECK:STDOUT: !59 = !DILocation(line: 25, column: 9, scope: !53) -// CHECK:STDOUT: !60 = !DILocation(line: 25, column: 8, scope: !53) -// CHECK:STDOUT: !61 = !DILocation(line: 26, column: 7, scope: !53) -// CHECK:STDOUT: !62 = !DILocation(line: 27, column: 36, scope: !53) -// CHECK:STDOUT: !63 = !DILocation(line: 27, column: 31, scope: !53) -// CHECK:STDOUT: !64 = !DILocation(line: 27, column: 14, scope: !53) -// CHECK:STDOUT: !65 = !DILocation(line: 27, column: 7, scope: !53) -// CHECK:STDOUT: !66 = !DILocation(line: 29, column: 14, scope: !53) -// CHECK:STDOUT: !67 = !DILocation(line: 29, column: 7, scope: !53) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !69, line: 36, type: !70, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !69 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !70 = !DISubroutineType(types: !71) -// CHECK:STDOUT: !71 = !{!22, !22} -// CHECK:STDOUT: !72 = !{!73} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !68, type: !22) -// CHECK:STDOUT: !74 = !DILocation(line: 37, column: 12, scope: !68) -// CHECK:STDOUT: !75 = !DILocation(line: 37, column: 5, scope: !68) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !69, line: 39, type: !48, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !77) -// CHECK:STDOUT: !77 = !{!78} -// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !76, type: !22) -// CHECK:STDOUT: !79 = !DILocation(line: 40, column: 12, scope: !76) -// CHECK:STDOUT: !80 = !DILocation(line: 40, column: 5, scope: !76) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !82, line: 396, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !83) -// CHECK:STDOUT: !82 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !83 = !{!84} -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !81, type: !15) -// CHECK:STDOUT: !85 = !DILocation(line: 398, column: 5, scope: !81) -// CHECK:STDOUT: !86 = !DILocation(line: 396, column: 3, scope: !81) -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !69, line: 33, type: !88, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !90) -// CHECK:STDOUT: !88 = !DISubroutineType(types: !89) -// CHECK:STDOUT: !89 = !{!22, !15} -// CHECK:STDOUT: !90 = !{!91} -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !87, type: !15) -// CHECK:STDOUT: !92 = !DILocation(line: 34, column: 12, scope: !87) -// CHECK:STDOUT: !93 = !DILocation(line: 34, column: 5, scope: !87) -// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !69, line: 30, type: !95, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !95 = !DISubroutineType(types: !96) -// CHECK:STDOUT: !96 = !{!22} -// CHECK:STDOUT: !97 = !DILocation(line: 31, column: 12, scope: !94) -// CHECK:STDOUT: !98 = !DILocation(line: 31, column: 5, scope: !94) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !69, line: 141, type: !70, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !100) -// CHECK:STDOUT: !100 = !{!101} -// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !99, type: !22) -// CHECK:STDOUT: !102 = !DILocation(line: 142, column: 12, scope: !99) -// CHECK:STDOUT: !103 = !DILocation(line: 142, column: 5, scope: !99) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !69, line: 144, type: !48, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !105) -// CHECK:STDOUT: !105 = !{!106} -// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !104, type: !22) -// CHECK:STDOUT: !107 = !DILocation(line: 145, column: 12, scope: !104) -// CHECK:STDOUT: !108 = !DILocation(line: 145, column: 5, scope: !104) -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !82, line: 331, type: !110, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !112) -// CHECK:STDOUT: !110 = !DISubroutineType(types: !111) -// CHECK:STDOUT: !111 = !{null, !15, !15} -// CHECK:STDOUT: !112 = !{!113, !114} -// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !109, type: !15) -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 2, scope: !109, type: !15) -// CHECK:STDOUT: !115 = !DILocation(line: 0, scope: !109) -// CHECK:STDOUT: !116 = !DILocation(line: 331, column: 3, scope: !109) -// CHECK:STDOUT: !117 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !69, line: 131, type: !88, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !118) -// CHECK:STDOUT: !118 = !{!119} -// CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !117, type: !15) -// CHECK:STDOUT: !120 = !DILocation(line: 137, column: 5, scope: !117) -// CHECK:STDOUT: !121 = !DILocation(line: 138, column: 5, scope: !117) -// CHECK:STDOUT: !122 = !DILocation(line: 139, column: 5, scope: !117) -// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !69, line: 125, type: !95, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !124 = !DILocation(line: 128, column: 5, scope: !123) -// CHECK:STDOUT: !125 = !DILocation(line: 129, column: 5, scope: !123) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !82, line: 64, type: !127, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !129) -// CHECK:STDOUT: !127 = !DISubroutineType(types: !128) -// CHECK:STDOUT: !128 = !{!15, !15} -// CHECK:STDOUT: !129 = !{!130} -// CHECK:STDOUT: !130 = !DILocalVariable(arg: 1, scope: !126, type: !15) -// CHECK:STDOUT: !131 = !DILocation(line: 66, column: 17, scope: !126) -// CHECK:STDOUT: !132 = !DILocation(line: 66, column: 5, scope: !126) -// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !82, line: 59, type: !127, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !134) -// CHECK:STDOUT: !134 = !{!135} -// CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !133, type: !15) -// CHECK:STDOUT: !136 = !DILocation(line: 59, column: 28, scope: !133) +// CHECK:STDOUT: !4 = !DIFile(filename: "iterate.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{null} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !12 = !{null, !11} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !4, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 26, scope: !14) +// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 7, scope: !14) +// CHECK:STDOUT: !21 = !{!6, !11} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{!11, !11, !11} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !{!11, !11} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !28 = !DILocation(line: 18, column: 5, scope: !14) +// CHECK:STDOUT: !29 = !DILocation(line: 17, column: 3, scope: !14) +// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 1, scope: !14) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !6) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 7, scope: !31) +// CHECK:STDOUT: !34 = !{!32} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !11) +// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 7, scope: !35) +// CHECK:STDOUT: !38 = !{!36} +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !6) +// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 7, scope: !39) +// CHECK:STDOUT: !42 = !{!40} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !11) +// CHECK:STDOUT: !45 = !DILocation(line: 17, column: 7, scope: !43) +// CHECK:STDOUT: !46 = !{!44} +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !11) +// CHECK:STDOUT: !49 = !DILocation(line: 17, column: 7, scope: !47) +// CHECK:STDOUT: !50 = !{!48} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !11) +// CHECK:STDOUT: !53 = !DILocation(line: 17, column: 7, scope: !51) +// CHECK:STDOUT: !54 = !{!52} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd19f3506b5fdce5:core.Destroy.Core", scope: null, file: !4, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !11) +// CHECK:STDOUT: !57 = !DILocation(line: 16, column: 26, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf", scope: null, file: !59, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !66) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !11) +// CHECK:STDOUT: !65 = !DILocation(line: 23, column: 38, scope: !60) +// CHECK:STDOUT: !66 = !{!61} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.e163a239f9fa927c:Iterate.Core.9c4042a9412793cf", scope: null, file: !59, line: 24, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !91) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !11) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !67, type: !11) +// CHECK:STDOUT: !75 = !DILocation(line: 25, column: 9, scope: !67) +// CHECK:STDOUT: !76 = !DILocation(line: 25, column: 8, scope: !67) +// CHECK:STDOUT: !79 = !DILocation(line: 26, column: 7, scope: !67) +// CHECK:STDOUT: !80 = !DILocation(line: 27, column: 31, scope: !67) +// CHECK:STDOUT: !82 = !DILocation(line: 27, column: 36, scope: !67) +// CHECK:STDOUT: !83 = !DILocation(line: 27, column: 14, scope: !67) +// CHECK:STDOUT: !84 = !{!11, !6} +// CHECK:STDOUT: !85 = !DISubroutineType(types: !84) +// CHECK:STDOUT: !86 = !DILocation(line: 27, column: 7, scope: !67) +// CHECK:STDOUT: !87 = !DILocation(line: 29, column: 14, scope: !67) +// CHECK:STDOUT: !88 = !{!11} +// CHECK:STDOUT: !89 = !DISubroutineType(types: !88) +// CHECK:STDOUT: !90 = !DILocation(line: 29, column: 7, scope: !67) +// CHECK:STDOUT: !91 = !{!68, !69} +// CHECK:STDOUT: !92 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !101) +// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !93, type: !11) +// CHECK:STDOUT: !99 = !DILocation(line: 37, column: 12, scope: !93) +// CHECK:STDOUT: !100 = !DILocation(line: 37, column: 5, scope: !93) +// CHECK:STDOUT: !101 = !{!94} +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 39, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !110) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !11) +// CHECK:STDOUT: !108 = !DILocation(line: 40, column: 12, scope: !102) +// CHECK:STDOUT: !109 = !DILocation(line: 40, column: 5, scope: !102) +// CHECK:STDOUT: !110 = !{!103} +// CHECK:STDOUT: !111 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !111, line: 396, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) +// CHECK:STDOUT: !115 = !DILocation(line: 398, column: 5, scope: !112) +// CHECK:STDOUT: !116 = !{null, !6, !6} +// CHECK:STDOUT: !117 = !DISubroutineType(types: !116) +// CHECK:STDOUT: !118 = !DILocation(line: 396, column: 3, scope: !112) +// CHECK:STDOUT: !119 = !{!113} +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 33, type: !85, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !127) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !6) +// CHECK:STDOUT: !125 = !DILocation(line: 34, column: 12, scope: !120) +// CHECK:STDOUT: !126 = !DILocation(line: 34, column: 5, scope: !120) +// CHECK:STDOUT: !127 = !{!121} +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !92, line: 30, type: !89, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !131 = !DILocation(line: 31, column: 12, scope: !128) +// CHECK:STDOUT: !132 = !DILocation(line: 31, column: 5, scope: !128) +// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !140) +// CHECK:STDOUT: !134 = !DILocalVariable(arg: 1, scope: !133, type: !11) +// CHECK:STDOUT: !138 = !DILocation(line: 142, column: 12, scope: !133) +// CHECK:STDOUT: !139 = !DILocation(line: 142, column: 5, scope: !133) +// CHECK:STDOUT: !140 = !{!134} +// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 144, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !148) +// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !141, type: !11) +// CHECK:STDOUT: !146 = !DILocation(line: 145, column: 12, scope: !141) +// CHECK:STDOUT: !147 = !DILocation(line: 145, column: 5, scope: !141) +// CHECK:STDOUT: !148 = !{!142} +// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !111, line: 331, type: !117, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !156) +// CHECK:STDOUT: !150 = !DILocalVariable(arg: 1, scope: !149, type: !6) +// CHECK:STDOUT: !151 = !DILocalVariable(arg: 2, scope: !149, type: !6) +// CHECK:STDOUT: !152 = !DILocation(line: 0, scope: !149) +// CHECK:STDOUT: !153 = !DILocation(line: 331, column: 3, scope: !149) +// CHECK:STDOUT: !154 = !{!6, !6} +// CHECK:STDOUT: !155 = !DISubroutineType(types: !154) +// CHECK:STDOUT: !156 = !{!150, !151} +// CHECK:STDOUT: !157 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 131, type: !85, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !170) +// CHECK:STDOUT: !158 = !DILocalVariable(arg: 1, scope: !157, type: !6) +// CHECK:STDOUT: !166 = !DILocation(line: 137, column: 5, scope: !157) +// CHECK:STDOUT: !168 = !DILocation(line: 138, column: 5, scope: !157) +// CHECK:STDOUT: !169 = !DILocation(line: 139, column: 5, scope: !157) +// CHECK:STDOUT: !170 = !{!158} +// CHECK:STDOUT: !171 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !92, line: 125, type: !89, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !178 = !DILocation(line: 128, column: 5, scope: !171) +// CHECK:STDOUT: !179 = !DILocation(line: 129, column: 5, scope: !171) +// CHECK:STDOUT: !180 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !111, line: 64, type: !155, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !188) +// CHECK:STDOUT: !181 = !DILocalVariable(arg: 1, scope: !180, type: !6) +// CHECK:STDOUT: !185 = !DILocation(line: 66, column: 17, scope: !180) +// CHECK:STDOUT: !187 = !DILocation(line: 66, column: 5, scope: !180) +// CHECK:STDOUT: !188 = !{!181} +// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !111, line: 59, type: !155, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !196) +// CHECK:STDOUT: !190 = !DILocalVariable(arg: 1, scope: !189, type: !6) +// CHECK:STDOUT: !195 = !DILocation(line: 59, column: 28, scope: !189) +// CHECK:STDOUT: !196 = !{!190} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/array/layout.carbon b/toolchain/lower/testdata/array/layout.carbon index 69f788f380ba..f5c52c21dd56 100644 --- a/toolchain/lower/testdata/array/layout.carbon +++ b/toolchain/lower/testdata/array/layout.carbon @@ -37,39 +37,39 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: declare void @_CCheck.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTest.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CTest.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %v.var = alloca [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !7 -// CHECK:STDOUT: %.loc10_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc10_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc10_13.array.index, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc10_14.b), !dbg !9 -// CHECK:STDOUT: %.loc11_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: %.loc11_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc11_13.array.index, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc11_14.b), !dbg !11 -// CHECK:STDOUT: %.loc12_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 2, !dbg !12 -// CHECK:STDOUT: %.loc12_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc12_13.array.index, i32 0, i32 1, !dbg !12 -// CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc12_14.b), !dbg !13 -// CHECK:STDOUT: call void @"_COp.fcdfc34c2770c9a2:core.Destroy.Core"(ptr %v.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: %v.var = alloca [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], align 8, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !29 +// CHECK:STDOUT: %.loc10_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 0, !dbg !31 +// CHECK:STDOUT: %.loc10_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc10_13.array.index, i32 0, i32 1, !dbg !31 +// CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc10_14.b), !dbg !33 +// CHECK:STDOUT: %.loc11_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 1, !dbg !34 +// CHECK:STDOUT: %.loc11_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc11_13.array.index, i32 0, i32 1, !dbg !34 +// CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc11_14.b), !dbg !36 +// CHECK:STDOUT: %.loc12_13.array.index = getelementptr inbounds [3 x <{ <{ ptr, i32 }>, [4 x i8] }>], ptr %v.var, i32 0, i32 2, !dbg !37 +// CHECK:STDOUT: %.loc12_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc12_13.array.index, i32 0, i32 1, !dbg !37 +// CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc12_14.b), !dbg !39 +// CHECK:STDOUT: call void @"_COp.fcdfc34c2770c9a2:core.Destroy.Core"(ptr %v.var), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2aa353f1055a0cc5:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.2aa353f1055a0cc5:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fcdfc34c2770c9a2:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.fcdfc34c2770c9a2:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -78,42 +78,42 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "element_tail_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 10, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 11, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 11, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 12, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 9, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 9, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2aa353f1055a0cc5:core.Destroy.Core", scope: null, file: !1, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 9, column: 3, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fcdfc34c2770c9a2:core.Destroy.Core", scope: null, file: !1, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !25) -// CHECK:STDOUT: !32 = !DILocation(line: 9, column: 3, scope: !29) +// CHECK:STDOUT: !18 = !DIFile(filename: "element_tail_padding.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !18, line: 5, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 9, column: 3, scope: !28) +// CHECK:STDOUT: !31 = !DILocation(line: 10, column: 10, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 10, column: 3, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 11, column: 10, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 11, column: 3, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 12, column: 10, scope: !28) +// CHECK:STDOUT: !39 = !DILocation(line: 12, column: 3, scope: !28) +// CHECK:STDOUT: !40 = !DILocation(line: 5, column: 1, scope: !28) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 9, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2aa353f1055a0cc5:core.Destroy.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) +// CHECK:STDOUT: !47 = !DILocation(line: 9, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fcdfc34c2770c9a2:core.Destroy.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !21) +// CHECK:STDOUT: !51 = !DILocation(line: 9, column: 3, scope: !49) +// CHECK:STDOUT: !52 = !{!50} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'constant_with_padding.carbon' @@ -124,10 +124,10 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 32 @_Cc.Main, ptr align 32 @array.loc3_1, i64 320, i1 false), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 32 @_Cc.Main, ptr align 32 @array.loc3_1, i64 320, i1 false), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -136,16 +136,16 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!54} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "constant_with_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 3, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !53 = !DIFile(filename: "constant_with_padding.carbon", directory: "") +// CHECK:STDOUT: !54 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !53, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !53, type: !25, spFlags: DISPFlagDefinition, unit: !54) +// CHECK:STDOUT: !58 = !DILocation(line: 3, column: 1, scope: !56) +// CHECK:STDOUT: !59 = !DILocation(line: 0, scope: !56) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/basics/empty.carbon b/toolchain/lower/testdata/basics/empty.carbon index 21450f87409b..5ea8abcd25c9 100644 --- a/toolchain/lower/testdata/basics/empty.carbon +++ b/toolchain/lower/testdata/basics/empty.carbon @@ -14,11 +14,11 @@ // CHECK:STDOUT: ; ModuleID = 'empty.carbon' // CHECK:STDOUT: source_filename = "empty.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !14 = !DIFile(filename: "empty.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/bool.carbon b/toolchain/lower/testdata/builtins/bool.carbon index d9272afc8feb..a3cca0e61a8b 100644 --- a/toolchain/lower/testdata/builtins/bool.carbon +++ b/toolchain/lower/testdata/builtins/bool.carbon @@ -28,62 +28,62 @@ fn IfEq(a: Bool(), b: Bool()) -> Bool() { // CHECK:STDOUT: source_filename = "bool.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq.Main(i1 %a, i1 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CTestEq.Main(i1 %a, i1 %b) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq.call = icmp eq i1 %a, %b, !dbg !11 -// CHECK:STDOUT: ret i1 %Eq.call, !dbg !12 +// CHECK:STDOUT: %Eq.call = icmp eq i1 %a, %b, !dbg !28 +// CHECK:STDOUT: ret i1 %Eq.call, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestNeq.Main(i1 %a, i1 %b) #0 !dbg !13 { +// CHECK:STDOUT: define i1 @_CTestNeq.Main(i1 %a, i1 %b) #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Neq.call = icmp ne i1 %a, %b, !dbg !17 -// CHECK:STDOUT: ret i1 %Neq.call, !dbg !18 +// CHECK:STDOUT: %Neq.call = icmp ne i1 %a, %b, !dbg !40 +// CHECK:STDOUT: ret i1 %Neq.call, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CIfEq.Main(i1 %a, i1 %b) #0 !dbg !19 { +// CHECK:STDOUT: define i1 @_CIfEq.Main(i1 %a, i1 %b) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq.call = icmp eq i1 %a, %b, !dbg !23 -// CHECK:STDOUT: br i1 %Eq.call, label %if.then, label %if.else, !dbg !24 +// CHECK:STDOUT: %Eq.call = icmp eq i1 %a, %b, !dbg !52 +// CHECK:STDOUT: br i1 %Eq.call, label %if.then, label %if.else, !dbg !53 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i1 true, !dbg !25 +// CHECK:STDOUT: ret i1 true, !dbg !54 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: ret i1 false, !dbg !26 +// CHECK:STDOUT: ret i1 false, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "bool.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 52, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 45, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !13, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 53, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 46, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "IfEq", linkageName: "_CIfEq.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21, !22} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 2, scope: !19, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 22, column: 7, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 6, scope: !19) -// CHECK:STDOUT: !25 = !DILocation(line: 22, column: 19, scope: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 23, column: 3, scope: !19) +// CHECK:STDOUT: !14 = !DIFile(filename: "bool.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{!16, !16, !16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !14, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !30) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !16) +// CHECK:STDOUT: !21 = !DILocalVariable(arg: 2, scope: !19, type: !16) +// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 52, scope: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 45, scope: !19) +// CHECK:STDOUT: !30 = !{!20, !21} +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !14, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !42) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !16) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !31, type: !16) +// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 53, scope: !31) +// CHECK:STDOUT: !41 = !DILocation(line: 19, column: 46, scope: !31) +// CHECK:STDOUT: !42 = !{!32, !33} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "IfEq", linkageName: "_CIfEq.Main", scope: null, file: !14, line: 21, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !56) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !16) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !43, type: !16) +// CHECK:STDOUT: !52 = !DILocation(line: 22, column: 7, scope: !43) +// CHECK:STDOUT: !53 = !DILocation(line: 22, column: 6, scope: !43) +// CHECK:STDOUT: !54 = !DILocation(line: 22, column: 19, scope: !43) +// CHECK:STDOUT: !55 = !DILocation(line: 23, column: 3, scope: !43) +// CHECK:STDOUT: !56 = !{!44, !45} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/char.carbon b/toolchain/lower/testdata/builtins/char.carbon index 2c624870c831..f0388de7a454 100644 --- a/toolchain/lower/testdata/builtins/char.carbon +++ b/toolchain/lower/testdata/builtins/char.carbon @@ -24,56 +24,56 @@ fn Example() -> char { // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @_CExample.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i8 @_CExample.Main() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca i8, align 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 -// CHECK:STDOUT: store i8 97, ptr %c.var, align 1, !dbg !8 -// CHECK:STDOUT: %.loc6 = load i8, ptr %c.var, align 1, !dbg !9 -// CHECK:STDOUT: call void @"_COp.da789d153bec1921:core.Destroy.Core"(ptr %c.var), !dbg !8 -// CHECK:STDOUT: ret i8 %.loc6, !dbg !10 +// CHECK:STDOUT: %c.var = alloca i8, align 1, !dbg !14 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 +// CHECK:STDOUT: store i8 97, ptr %c.var, align 1, !dbg !14 +// CHECK:STDOUT: %.loc6 = load i8, ptr %c.var, align 1, !dbg !16 +// CHECK:STDOUT: call void @"_COp.da789d153bec1921:core.Destroy.Core"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: ret i8 %.loc6, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !11 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.da789d153bec1921:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.da789d153bec1921:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Example", linkageName: "_CExample.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 6, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !1, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 5, column: 3, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.da789d153bec1921:core.Destroy.Core", scope: null, file: !1, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 5, column: 3, scope: !17) +// CHECK:STDOUT: !4 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !7 = !{!6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{null, !6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Example", linkageName: "_CExample.Main", scope: null, file: !4, line: 4, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !14 = !DILocation(line: 5, column: 3, scope: !11) +// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 10, scope: !11) +// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 3, scope: !11) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !6) +// CHECK:STDOUT: !20 = !DILocation(line: 5, column: 3, scope: !18) +// CHECK:STDOUT: !21 = !{!19} +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.da789d153bec1921:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) +// CHECK:STDOUT: !24 = !DILocation(line: 5, column: 3, scope: !22) +// CHECK:STDOUT: !25 = !{!23} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/cpp.carbon b/toolchain/lower/testdata/builtins/cpp.carbon index e5cc1858d498..b7b23445d81e 100644 --- a/toolchain/lower/testdata/builtins/cpp.carbon +++ b/toolchain/lower/testdata/builtins/cpp.carbon @@ -53,49 +53,49 @@ fn Test() { // CHECK:STDOUT: declare void @_CTakePointerSize.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTest.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CTest.Main() #0 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc25_53.1.temp = alloca [16 x i8], align 8, !dbg !15 -// CHECK:STDOUT: %.loc25_52.3.temp = alloca [4 x i32], align 4, !dbg !16 -// CHECK:STDOUT: %.loc26_47.1.temp = alloca [16 x i8], align 8, !dbg !17 -// CHECK:STDOUT: %.loc26_46.3.temp = alloca [4 x i32], align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_53.1.temp), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_52.3.temp), !dbg !16 -// CHECK:STDOUT: %.loc25_52.4.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 0, !dbg !16 -// CHECK:STDOUT: %.loc25_52.7.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 1, !dbg !16 -// CHECK:STDOUT: %.loc25_52.10.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 2, !dbg !16 -// CHECK:STDOUT: %.loc25_52.13.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 3, !dbg !16 -// CHECK:STDOUT: %MakePointerPointer.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc25_53.1.temp, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: store ptr @array.loc25_52.18, ptr %MakePointerPointer.call.init_list.begin, align 8, !dbg !15 -// CHECK:STDOUT: %MakePointerPointer.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %.loc25_53.1.temp, i32 0, i32 8, !dbg !15 -// CHECK:STDOUT: store ptr getelementptr inbounds ([4 x i32], ptr @array.loc25_52.18, i32 1), ptr %MakePointerPointer.call.init_list.end, align 8, !dbg !15 -// CHECK:STDOUT: call void @_CTakePointerPointer.Main(ptr %.loc25_53.1.temp), !dbg !19 -// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr @array), !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_47.1.temp), !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_46.3.temp), !dbg !18 -// CHECK:STDOUT: %.loc26_46.4.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 0, !dbg !18 -// CHECK:STDOUT: %.loc26_46.7.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 1, !dbg !18 -// CHECK:STDOUT: %.loc26_46.10.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 2, !dbg !18 -// CHECK:STDOUT: %.loc26_46.13.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 3, !dbg !18 -// CHECK:STDOUT: %MakePointerSize.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc26_47.1.temp, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: store ptr @array.loc25_52.18, ptr %MakePointerSize.call.init_list.begin, align 8, !dbg !17 -// CHECK:STDOUT: %MakePointerSize.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %.loc26_47.1.temp, i32 0, i32 8, !dbg !17 -// CHECK:STDOUT: store i64 4, ptr %MakePointerSize.call.init_list.size, align 8, !dbg !17 -// CHECK:STDOUT: call void @_CTakePointerSize.Main(ptr %.loc26_47.1.temp), !dbg !20 -// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr @array), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %.loc25_53.1.temp = alloca [16 x i8], align 8, !dbg !16 +// CHECK:STDOUT: %.loc25_52.3.temp = alloca [4 x i32], align 4, !dbg !17 +// CHECK:STDOUT: %.loc26_47.1.temp = alloca [16 x i8], align 8, !dbg !19 +// CHECK:STDOUT: %.loc26_46.3.temp = alloca [4 x i32], align 4, !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_53.1.temp), !dbg !16 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_52.3.temp), !dbg !17 +// CHECK:STDOUT: %.loc25_52.4.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 0, !dbg !17 +// CHECK:STDOUT: %.loc25_52.7.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 1, !dbg !17 +// CHECK:STDOUT: %.loc25_52.10.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 2, !dbg !17 +// CHECK:STDOUT: %.loc25_52.13.array.index = getelementptr inbounds [4 x i32], ptr %.loc25_52.3.temp, i32 0, i64 3, !dbg !17 +// CHECK:STDOUT: %MakePointerPointer.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc25_53.1.temp, i32 0, i32 0, !dbg !16 +// CHECK:STDOUT: store ptr @array.loc25_52.18, ptr %MakePointerPointer.call.init_list.begin, align 8, !dbg !16 +// CHECK:STDOUT: %MakePointerPointer.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %.loc25_53.1.temp, i32 0, i32 8, !dbg !16 +// CHECK:STDOUT: store ptr getelementptr inbounds ([4 x i32], ptr @array.loc25_52.18, i32 1), ptr %MakePointerPointer.call.init_list.end, align 8, !dbg !16 +// CHECK:STDOUT: call void @_CTakePointerPointer.Main(ptr %.loc25_53.1.temp), !dbg !18 +// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr @array), !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_47.1.temp), !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_46.3.temp), !dbg !20 +// CHECK:STDOUT: %.loc26_46.4.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 0, !dbg !20 +// CHECK:STDOUT: %.loc26_46.7.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 1, !dbg !20 +// CHECK:STDOUT: %.loc26_46.10.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 2, !dbg !20 +// CHECK:STDOUT: %.loc26_46.13.array.index = getelementptr inbounds [4 x i32], ptr %.loc26_46.3.temp, i32 0, i64 3, !dbg !20 +// CHECK:STDOUT: %MakePointerSize.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc26_47.1.temp, i32 0, i32 0, !dbg !19 +// CHECK:STDOUT: store ptr @array.loc25_52.18, ptr %MakePointerSize.call.init_list.begin, align 8, !dbg !19 +// CHECK:STDOUT: %MakePointerSize.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %.loc26_47.1.temp, i32 0, i32 8, !dbg !19 +// CHECK:STDOUT: store i64 4, ptr %MakePointerSize.call.init_list.size, align 8, !dbg !19 +// CHECK:STDOUT: call void @_CTakePointerSize.Main(ptr %.loc26_47.1.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr @array), !dbg !20 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -108,44 +108,44 @@ fn Test() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!31, !32, !33, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!38} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "std_initializer_list_make.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 24, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 25, column: 22, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 25, column: 41, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 26, column: 19, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 26, column: 35, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 25, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 26, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 24, column: 1, scope: !12) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 25, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 25, column: 41, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefa3f320d583a8d:core.Destroy.Core", scope: null, file: !1, line: 25, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !30 = !DISubroutineType(types: !31) -// CHECK:STDOUT: !31 = !{null, !32} -// CHECK:STDOUT: !32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !32) -// CHECK:STDOUT: !35 = !DILocation(line: 25, column: 41, scope: !29) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "std_initializer_list_make.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !9 = !{null, !8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !{null} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !13 = !{null, !6} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !4, line: 24, type: !12, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !16 = !DILocation(line: 25, column: 22, scope: !15) +// CHECK:STDOUT: !17 = !DILocation(line: 25, column: 41, scope: !15) +// CHECK:STDOUT: !18 = !DILocation(line: 25, column: 3, scope: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 26, column: 19, scope: !15) +// CHECK:STDOUT: !20 = !DILocation(line: 26, column: 35, scope: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 26, column: 3, scope: !15) +// CHECK:STDOUT: !22 = !DILocation(line: 24, column: 1, scope: !15) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 25, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) +// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 41, scope: !23) +// CHECK:STDOUT: !26 = !{!24} +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefa3f320d583a8d:core.Destroy.Core", scope: null, file: !4, line: 25, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !8) +// CHECK:STDOUT: !29 = !DILocation(line: 25, column: 41, scope: !27) +// CHECK:STDOUT: !30 = !{!28} +// CHECK:STDOUT: !31 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !32 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !36 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"__libc_errno", !36, i64 0} +// CHECK:STDOUT: !38 = !{!37, !36, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/float.carbon b/toolchain/lower/testdata/builtins/float.carbon index 10f39bb4798f..80a0686c836d 100644 --- a/toolchain/lower/testdata/builtins/float.carbon +++ b/toolchain/lower/testdata/builtins/float.carbon @@ -84,305 +84,305 @@ fn TestF128(a: f128, b: f128) -> f128 { return F128(a, b); } // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestNegate.Main(double %a) #0 !dbg !4 { +// CHECK:STDOUT: define double @_CTestNegate.Main(double %a) #0 !dbg !39 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Negate.call = fneg double %a, !dbg !10 -// CHECK:STDOUT: ret double %Negate.call, !dbg !11 +// CHECK:STDOUT: %Negate.call = fneg double %a, !dbg !45 +// CHECK:STDOUT: ret double %Negate.call, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestAdd.Main(double %a, double %b) #0 !dbg !12 { +// CHECK:STDOUT: define double @_CTestAdd.Main(double %a, double %b) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Add.call = fadd double %a, %b, !dbg !18 -// CHECK:STDOUT: ret double %Add.call, !dbg !19 +// CHECK:STDOUT: %Add.call = fadd double %a, %b, !dbg !57 +// CHECK:STDOUT: ret double %Add.call, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestSub.Main(double %a, double %b) #0 !dbg !20 { +// CHECK:STDOUT: define double @_CTestSub.Main(double %a, double %b) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Sub.call = fsub double %a, %b, !dbg !24 -// CHECK:STDOUT: ret double %Sub.call, !dbg !25 +// CHECK:STDOUT: %Sub.call = fsub double %a, %b, !dbg !69 +// CHECK:STDOUT: ret double %Sub.call, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestMul.Main(double %a, double %b) #0 !dbg !26 { +// CHECK:STDOUT: define double @_CTestMul.Main(double %a, double %b) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Mul.call = fmul double %a, %b, !dbg !30 -// CHECK:STDOUT: ret double %Mul.call, !dbg !31 +// CHECK:STDOUT: %Mul.call = fmul double %a, %b, !dbg !81 +// CHECK:STDOUT: ret double %Mul.call, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestDiv.Main(double %a, double %b) #0 !dbg !32 { +// CHECK:STDOUT: define double @_CTestDiv.Main(double %a, double %b) #0 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Div.call = fdiv double %a, %b, !dbg !36 -// CHECK:STDOUT: ret double %Div.call, !dbg !37 +// CHECK:STDOUT: %Div.call = fdiv double %a, %b, !dbg !93 +// CHECK:STDOUT: ret double %Div.call, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq.Main(double %a, double %b) #0 !dbg !38 { +// CHECK:STDOUT: define i1 @_CTestEq.Main(double %a, double %b) #0 !dbg !96 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq.call = fcmp oeq double %a, %b, !dbg !42 -// CHECK:STDOUT: ret i1 %Eq.call, !dbg !43 +// CHECK:STDOUT: %Eq.call = fcmp oeq double %a, %b, !dbg !105 +// CHECK:STDOUT: ret i1 %Eq.call, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestNeq.Main(double %a, double %b) #0 !dbg !44 { +// CHECK:STDOUT: define i1 @_CTestNeq.Main(double %a, double %b) #0 !dbg !108 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Neq.call = fcmp one double %a, %b, !dbg !48 -// CHECK:STDOUT: ret i1 %Neq.call, !dbg !49 +// CHECK:STDOUT: %Neq.call = fcmp one double %a, %b, !dbg !117 +// CHECK:STDOUT: ret i1 %Neq.call, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess.Main(double %a, double %b) #0 !dbg !50 { +// CHECK:STDOUT: define i1 @_CTestLess.Main(double %a, double %b) #0 !dbg !120 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less.call = fcmp olt double %a, %b, !dbg !54 -// CHECK:STDOUT: ret i1 %Less.call, !dbg !55 +// CHECK:STDOUT: %Less.call = fcmp olt double %a, %b, !dbg !129 +// CHECK:STDOUT: ret i1 %Less.call, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLessEq.Main(double %a, double %b) #0 !dbg !56 { +// CHECK:STDOUT: define i1 @_CTestLessEq.Main(double %a, double %b) #0 !dbg !132 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LessEq.call = fcmp ole double %a, %b, !dbg !60 -// CHECK:STDOUT: ret i1 %LessEq.call, !dbg !61 +// CHECK:STDOUT: %LessEq.call = fcmp ole double %a, %b, !dbg !141 +// CHECK:STDOUT: ret i1 %LessEq.call, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestGreater.Main(double %a, double %b) #0 !dbg !62 { +// CHECK:STDOUT: define i1 @_CTestGreater.Main(double %a, double %b) #0 !dbg !144 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Greater.call = fcmp ogt double %a, %b, !dbg !66 -// CHECK:STDOUT: ret i1 %Greater.call, !dbg !67 +// CHECK:STDOUT: %Greater.call = fcmp ogt double %a, %b, !dbg !153 +// CHECK:STDOUT: ret i1 %Greater.call, !dbg !154 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestGreaterEq.Main(double %a, double %b) #0 !dbg !68 { +// CHECK:STDOUT: define i1 @_CTestGreaterEq.Main(double %a, double %b) #0 !dbg !156 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %GreaterEq.call = fcmp oge double %a, %b, !dbg !72 -// CHECK:STDOUT: ret i1 %GreaterEq.call, !dbg !73 +// CHECK:STDOUT: %GreaterEq.call = fcmp oge double %a, %b, !dbg !165 +// CHECK:STDOUT: ret i1 %GreaterEq.call, !dbg !166 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestNegate", linkageName: "_CTestNegate.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 39, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 32, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!7, !7, !7} -// CHECK:STDOUT: !15 = !{!16, !17} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !12, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 44, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 37, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22, !23} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !20, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 44, scope: !20) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 37, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28, !29} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 2, scope: !26, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 44, scope: !26) -// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 37, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !32, type: !7) -// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 44, scope: !32) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 37, scope: !32) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !1, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40, !41} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 2, scope: !38, type: !7) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 44, scope: !38) -// CHECK:STDOUT: !43 = !DILocation(line: 20, column: 37, scope: !38) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !1, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46, !47} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !7) -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 2, scope: !44, type: !7) -// CHECK:STDOUT: !48 = !DILocation(line: 23, column: 45, scope: !44) -// CHECK:STDOUT: !49 = !DILocation(line: 23, column: 38, scope: !44) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "TestLess", linkageName: "_CTestLess.Main", scope: null, file: !1, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !51 = !{!52, !53} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !50, type: !7) -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 2, scope: !50, type: !7) -// CHECK:STDOUT: !54 = !DILocation(line: 26, column: 46, scope: !50) -// CHECK:STDOUT: !55 = !DILocation(line: 26, column: 39, scope: !50) -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "TestLessEq", linkageName: "_CTestLessEq.Main", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !57) -// CHECK:STDOUT: !57 = !{!58, !59} -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !56, type: !7) -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 2, scope: !56, type: !7) -// CHECK:STDOUT: !60 = !DILocation(line: 29, column: 48, scope: !56) -// CHECK:STDOUT: !61 = !DILocation(line: 29, column: 41, scope: !56) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "TestGreater", linkageName: "_CTestGreater.Main", scope: null, file: !1, line: 32, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !63) -// CHECK:STDOUT: !63 = !{!64, !65} -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !62, type: !7) -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 2, scope: !62, type: !7) -// CHECK:STDOUT: !66 = !DILocation(line: 32, column: 49, scope: !62) -// CHECK:STDOUT: !67 = !DILocation(line: 32, column: 42, scope: !62) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "TestGreaterEq", linkageName: "_CTestGreaterEq.Main", scope: null, file: !1, line: 35, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !69) -// CHECK:STDOUT: !69 = !{!70, !71} -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !7) -// CHECK:STDOUT: !71 = !DILocalVariable(arg: 2, scope: !68, type: !7) -// CHECK:STDOUT: !72 = !DILocation(line: 35, column: 51, scope: !68) -// CHECK:STDOUT: !73 = !DILocation(line: 35, column: 44, scope: !68) +// CHECK:STDOUT: !32 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{!34, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !{!34, !34, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "TestNegate", linkageName: "_CTestNegate.Main", scope: null, file: !32, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !47) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !34) +// CHECK:STDOUT: !45 = !DILocation(line: 5, column: 39, scope: !39) +// CHECK:STDOUT: !46 = !DILocation(line: 5, column: 32, scope: !39) +// CHECK:STDOUT: !47 = !{!40} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !32, line: 8, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !59) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !34) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !48, type: !34) +// CHECK:STDOUT: !57 = !DILocation(line: 8, column: 44, scope: !48) +// CHECK:STDOUT: !58 = !DILocation(line: 8, column: 37, scope: !48) +// CHECK:STDOUT: !59 = !{!49, !50} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !32, line: 11, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !71) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !34) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 2, scope: !60, type: !34) +// CHECK:STDOUT: !69 = !DILocation(line: 11, column: 44, scope: !60) +// CHECK:STDOUT: !70 = !DILocation(line: 11, column: 37, scope: !60) +// CHECK:STDOUT: !71 = !{!61, !62} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !32, line: 14, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !83) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !34) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 2, scope: !72, type: !34) +// CHECK:STDOUT: !81 = !DILocation(line: 14, column: 44, scope: !72) +// CHECK:STDOUT: !82 = !DILocation(line: 14, column: 37, scope: !72) +// CHECK:STDOUT: !83 = !{!73, !74} +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !32, line: 17, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !95) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !84, type: !34) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 2, scope: !84, type: !34) +// CHECK:STDOUT: !93 = !DILocation(line: 17, column: 44, scope: !84) +// CHECK:STDOUT: !94 = !DILocation(line: 17, column: 37, scope: !84) +// CHECK:STDOUT: !95 = !{!85, !86} +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !32, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !107) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !34) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 2, scope: !96, type: !34) +// CHECK:STDOUT: !105 = !DILocation(line: 20, column: 44, scope: !96) +// CHECK:STDOUT: !106 = !DILocation(line: 20, column: 37, scope: !96) +// CHECK:STDOUT: !107 = !{!97, !98} +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !32, line: 23, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !119) +// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !34) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 2, scope: !108, type: !34) +// CHECK:STDOUT: !117 = !DILocation(line: 23, column: 45, scope: !108) +// CHECK:STDOUT: !118 = !DILocation(line: 23, column: 38, scope: !108) +// CHECK:STDOUT: !119 = !{!109, !110} +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "TestLess", linkageName: "_CTestLess.Main", scope: null, file: !32, line: 26, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !131) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !34) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !120, type: !34) +// CHECK:STDOUT: !129 = !DILocation(line: 26, column: 46, scope: !120) +// CHECK:STDOUT: !130 = !DILocation(line: 26, column: 39, scope: !120) +// CHECK:STDOUT: !131 = !{!121, !122} +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "TestLessEq", linkageName: "_CTestLessEq.Main", scope: null, file: !32, line: 29, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !143) +// CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !132, type: !34) +// CHECK:STDOUT: !134 = !DILocalVariable(arg: 2, scope: !132, type: !34) +// CHECK:STDOUT: !141 = !DILocation(line: 29, column: 48, scope: !132) +// CHECK:STDOUT: !142 = !DILocation(line: 29, column: 41, scope: !132) +// CHECK:STDOUT: !143 = !{!133, !134} +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "TestGreater", linkageName: "_CTestGreater.Main", scope: null, file: !32, line: 32, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !155) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !34) +// CHECK:STDOUT: !146 = !DILocalVariable(arg: 2, scope: !144, type: !34) +// CHECK:STDOUT: !153 = !DILocation(line: 32, column: 49, scope: !144) +// CHECK:STDOUT: !154 = !DILocation(line: 32, column: 42, scope: !144) +// CHECK:STDOUT: !155 = !{!145, !146} +// CHECK:STDOUT: !156 = distinct !DISubprogram(name: "TestGreaterEq", linkageName: "_CTestGreaterEq.Main", scope: null, file: !32, line: 35, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !167) +// CHECK:STDOUT: !157 = !DILocalVariable(arg: 1, scope: !156, type: !34) +// CHECK:STDOUT: !158 = !DILocalVariable(arg: 2, scope: !156, type: !34) +// CHECK:STDOUT: !165 = !DILocation(line: 35, column: 51, scope: !156) +// CHECK:STDOUT: !166 = !DILocation(line: 35, column: 44, scope: !156) +// CHECK:STDOUT: !167 = !{!157, !158} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'compound_assign.carbon' // CHECK:STDOUT: source_filename = "compound_assign.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestAdd.Main(ptr %a, double %b) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CTestAdd.Main(ptr %a, double %b) #0 !dbg !172 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Add.call = load double, ptr %a, align 8, !dbg !11 -// CHECK:STDOUT: %Add.call1 = fadd double %Add.call, %b, !dbg !11 -// CHECK:STDOUT: store double %Add.call1, ptr %a, align 8, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %Add.call = load double, ptr %a, align 8, !dbg !180 +// CHECK:STDOUT: %Add.call1 = fadd double %Add.call, %b, !dbg !180 +// CHECK:STDOUT: store double %Add.call1, ptr %a, align 8, !dbg !180 +// CHECK:STDOUT: ret void, !dbg !181 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestSub.Main(ptr %a, double %b) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CTestSub.Main(ptr %a, double %b) #0 !dbg !183 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Sub.call = load double, ptr %a, align 8, !dbg !17 -// CHECK:STDOUT: %Sub.call1 = fsub double %Sub.call, %b, !dbg !17 -// CHECK:STDOUT: store double %Sub.call1, ptr %a, align 8, !dbg !17 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %Sub.call = load double, ptr %a, align 8, !dbg !191 +// CHECK:STDOUT: %Sub.call1 = fsub double %Sub.call, %b, !dbg !191 +// CHECK:STDOUT: store double %Sub.call1, ptr %a, align 8, !dbg !191 +// CHECK:STDOUT: ret void, !dbg !192 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestMul.Main(ptr %a, double %b) #0 !dbg !19 { +// CHECK:STDOUT: define void @_CTestMul.Main(ptr %a, double %b) #0 !dbg !194 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Mul.call = load double, ptr %a, align 8, !dbg !23 -// CHECK:STDOUT: %Mul.call1 = fmul double %Mul.call, %b, !dbg !23 -// CHECK:STDOUT: store double %Mul.call1, ptr %a, align 8, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %Mul.call = load double, ptr %a, align 8, !dbg !202 +// CHECK:STDOUT: %Mul.call1 = fmul double %Mul.call, %b, !dbg !202 +// CHECK:STDOUT: store double %Mul.call1, ptr %a, align 8, !dbg !202 +// CHECK:STDOUT: ret void, !dbg !203 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestDiv.Main(ptr %a, double %b) #0 !dbg !25 { +// CHECK:STDOUT: define void @_CTestDiv.Main(ptr %a, double %b) #0 !dbg !205 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Div.call = load double, ptr %a, align 8, !dbg !29 -// CHECK:STDOUT: %Div.call1 = fdiv double %Div.call, %b, !dbg !29 -// CHECK:STDOUT: store double %Div.call1, ptr %a, align 8, !dbg !29 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %Div.call = load double, ptr %a, align 8, !dbg !213 +// CHECK:STDOUT: %Div.call1 = fdiv double %Div.call, %b, !dbg !213 +// CHECK:STDOUT: store double %Div.call1, ptr %a, align 8, !dbg !213 +// CHECK:STDOUT: ret void, !dbg !214 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!169} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "compound_assign.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 34, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !13, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 8, column: 34, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 1, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !1, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21, !22} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 2, scope: !19, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 34, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 1, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27, !28} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !25, type: !7) -// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 34, scope: !25) -// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 1, scope: !25) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !168 = !DIFile(filename: "compound_assign.carbon", directory: "") +// CHECK:STDOUT: !169 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !168, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !170 = !{null, !34, !34} +// CHECK:STDOUT: !171 = !DISubroutineType(types: !170) +// CHECK:STDOUT: !172 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !168, line: 5, type: !171, spFlags: DISPFlagDefinition, unit: !169, retainedNodes: !182) +// CHECK:STDOUT: !173 = !DILocalVariable(arg: 1, scope: !172, type: !34) +// CHECK:STDOUT: !174 = !DILocalVariable(arg: 2, scope: !172, type: !34) +// CHECK:STDOUT: !180 = !DILocation(line: 5, column: 34, scope: !172) +// CHECK:STDOUT: !181 = !DILocation(line: 5, column: 1, scope: !172) +// CHECK:STDOUT: !182 = !{!173, !174} +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !168, line: 8, type: !171, spFlags: DISPFlagDefinition, unit: !169, retainedNodes: !193) +// CHECK:STDOUT: !184 = !DILocalVariable(arg: 1, scope: !183, type: !34) +// CHECK:STDOUT: !185 = !DILocalVariable(arg: 2, scope: !183, type: !34) +// CHECK:STDOUT: !191 = !DILocation(line: 8, column: 34, scope: !183) +// CHECK:STDOUT: !192 = !DILocation(line: 8, column: 1, scope: !183) +// CHECK:STDOUT: !193 = !{!184, !185} +// CHECK:STDOUT: !194 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !168, line: 11, type: !171, spFlags: DISPFlagDefinition, unit: !169, retainedNodes: !204) +// CHECK:STDOUT: !195 = !DILocalVariable(arg: 1, scope: !194, type: !34) +// CHECK:STDOUT: !196 = !DILocalVariable(arg: 2, scope: !194, type: !34) +// CHECK:STDOUT: !202 = !DILocation(line: 11, column: 34, scope: !194) +// CHECK:STDOUT: !203 = !DILocation(line: 11, column: 1, scope: !194) +// CHECK:STDOUT: !204 = !{!195, !196} +// CHECK:STDOUT: !205 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !168, line: 14, type: !171, spFlags: DISPFlagDefinition, unit: !169, retainedNodes: !215) +// CHECK:STDOUT: !206 = !DILocalVariable(arg: 1, scope: !205, type: !34) +// CHECK:STDOUT: !207 = !DILocalVariable(arg: 2, scope: !205, type: !34) +// CHECK:STDOUT: !213 = !DILocation(line: 14, column: 34, scope: !205) +// CHECK:STDOUT: !214 = !DILocation(line: 14, column: 1, scope: !205) +// CHECK:STDOUT: !215 = !{!206, !207} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'types.carbon' // CHECK:STDOUT: source_filename = "types.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define half @_CTestF16.Main(half %a, half %b) #0 !dbg !4 { +// CHECK:STDOUT: define half @_CTestF16.Main(half %a, half %b) #0 !dbg !218 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F16.call = fadd half %a, %b, !dbg !11 -// CHECK:STDOUT: ret half %F16.call, !dbg !12 +// CHECK:STDOUT: %F16.call = fadd half %a, %b, !dbg !227 +// CHECK:STDOUT: ret half %F16.call, !dbg !228 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define float @_CTestF32.Main(float %a, float %b) #0 !dbg !13 { +// CHECK:STDOUT: define float @_CTestF32.Main(float %a, float %b) #0 !dbg !230 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F32.call = fadd float %a, %b, !dbg !17 -// CHECK:STDOUT: ret float %F32.call, !dbg !18 +// CHECK:STDOUT: %F32.call = fadd float %a, %b, !dbg !239 +// CHECK:STDOUT: ret float %F32.call, !dbg !240 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestF64.Main(double %a, double %b) #0 !dbg !19 { +// CHECK:STDOUT: define double @_CTestF64.Main(double %a, double %b) #0 !dbg !242 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F64.call = fadd double %a, %b, !dbg !23 -// CHECK:STDOUT: ret double %F64.call, !dbg !24 +// CHECK:STDOUT: %F64.call = fadd double %a, %b, !dbg !251 +// CHECK:STDOUT: ret double %F64.call, !dbg !252 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define fp128 @_CTestF128.Main(fp128 %a, fp128 %b) #0 !dbg !25 { +// CHECK:STDOUT: define fp128 @_CTestF128.Main(fp128 %a, fp128 %b) #0 !dbg !254 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F128.call = fadd fp128 %a, %b, !dbg !29 -// CHECK:STDOUT: ret fp128 %F128.call, !dbg !30 +// CHECK:STDOUT: %F128.call = fadd fp128 %a, %b, !dbg !263 +// CHECK:STDOUT: ret fp128 %F128.call, !dbg !264 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!217} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "types.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestF16", linkageName: "_CTestF16.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 44, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 37, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestF32", linkageName: "_CTestF32.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !13, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 8, column: 44, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 37, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "TestF64", linkageName: "_CTestF64.Main", scope: null, file: !1, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21, !22} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 2, scope: !19, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 44, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 37, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "TestF128", linkageName: "_CTestF128.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27, !28} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !25, type: !7) -// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 48, scope: !25) -// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 41, scope: !25) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !37 = !{!34, !34, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !216 = !DIFile(filename: "types.carbon", directory: "") +// CHECK:STDOUT: !217 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !216, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !218 = distinct !DISubprogram(name: "TestF16", linkageName: "_CTestF16.Main", scope: null, file: !216, line: 5, type: !38, spFlags: DISPFlagDefinition, unit: !217, retainedNodes: !229) +// CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !218, type: !34) +// CHECK:STDOUT: !220 = !DILocalVariable(arg: 2, scope: !218, type: !34) +// CHECK:STDOUT: !227 = !DILocation(line: 5, column: 44, scope: !218) +// CHECK:STDOUT: !228 = !DILocation(line: 5, column: 37, scope: !218) +// CHECK:STDOUT: !229 = !{!219, !220} +// CHECK:STDOUT: !230 = distinct !DISubprogram(name: "TestF32", linkageName: "_CTestF32.Main", scope: null, file: !216, line: 8, type: !38, spFlags: DISPFlagDefinition, unit: !217, retainedNodes: !241) +// CHECK:STDOUT: !231 = !DILocalVariable(arg: 1, scope: !230, type: !34) +// CHECK:STDOUT: !232 = !DILocalVariable(arg: 2, scope: !230, type: !34) +// CHECK:STDOUT: !239 = !DILocation(line: 8, column: 44, scope: !230) +// CHECK:STDOUT: !240 = !DILocation(line: 8, column: 37, scope: !230) +// CHECK:STDOUT: !241 = !{!231, !232} +// CHECK:STDOUT: !242 = distinct !DISubprogram(name: "TestF64", linkageName: "_CTestF64.Main", scope: null, file: !216, line: 11, type: !38, spFlags: DISPFlagDefinition, unit: !217, retainedNodes: !253) +// CHECK:STDOUT: !243 = !DILocalVariable(arg: 1, scope: !242, type: !34) +// CHECK:STDOUT: !244 = !DILocalVariable(arg: 2, scope: !242, type: !34) +// CHECK:STDOUT: !251 = !DILocation(line: 11, column: 44, scope: !242) +// CHECK:STDOUT: !252 = !DILocation(line: 11, column: 37, scope: !242) +// CHECK:STDOUT: !253 = !{!243, !244} +// CHECK:STDOUT: !254 = distinct !DISubprogram(name: "TestF128", linkageName: "_CTestF128.Main", scope: null, file: !216, line: 14, type: !38, spFlags: DISPFlagDefinition, unit: !217, retainedNodes: !265) +// CHECK:STDOUT: !255 = !DILocalVariable(arg: 1, scope: !254, type: !34) +// CHECK:STDOUT: !256 = !DILocalVariable(arg: 2, scope: !254, type: !34) +// CHECK:STDOUT: !263 = !DILocation(line: 14, column: 48, scope: !254) +// CHECK:STDOUT: !264 = !DILocation(line: 14, column: 41, scope: !254) +// CHECK:STDOUT: !265 = !{!255, !256} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/float_to_float.carbon b/toolchain/lower/testdata/builtins/float_to_float.carbon index 938c376c014e..ec2f5c6d33ba 100644 --- a/toolchain/lower/testdata/builtins/float_to_float.carbon +++ b/toolchain/lower/testdata/builtins/float_to_float.carbon @@ -27,51 +27,51 @@ fn TestConvertF16ToF128(a: f16) -> f128 { return ConvertF16ToF128(a); } // CHECK:STDOUT: source_filename = "float_to_float.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestConvertF32ToF64.Main(float %a) #0 !dbg !4 { +// CHECK:STDOUT: define double @_CTestConvertF32ToF64.Main(float %a) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF32ToF64.call = fpext float %a to double, !dbg !10 -// CHECK:STDOUT: ret double %ConvertF32ToF64.call, !dbg !11 +// CHECK:STDOUT: %ConvertF32ToF64.call = fpext float %a to double, !dbg !43 +// CHECK:STDOUT: ret double %ConvertF32ToF64.call, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define float @_CTestConvertF64ToF32.Main(double %a) #0 !dbg !12 { +// CHECK:STDOUT: define float @_CTestConvertF64ToF32.Main(double %a) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF64ToF32.call = fptrunc double %a to float, !dbg !15 -// CHECK:STDOUT: ret float %ConvertF64ToF32.call, !dbg !16 +// CHECK:STDOUT: %ConvertF64ToF32.call = fptrunc double %a to float, !dbg !52 +// CHECK:STDOUT: ret float %ConvertF64ToF32.call, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define fp128 @_CTestConvertF16ToF128.Main(half %a) #0 !dbg !17 { +// CHECK:STDOUT: define fp128 @_CTestConvertF16ToF128.Main(half %a) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF16ToF128.call = fpext half %a to fp128, !dbg !20 -// CHECK:STDOUT: ret fp128 %ConvertF16ToF128.call, !dbg !21 +// CHECK:STDOUT: %ConvertF16ToF128.call = fpext half %a to fp128, !dbg !61 +// CHECK:STDOUT: ret fp128 %ConvertF16ToF128.call, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "float_to_float.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestConvertF32ToF64", linkageName: "_CTestConvertF32ToF64.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 48, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 4, column: 41, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "TestConvertF64ToF32", linkageName: "_CTestConvertF64ToF32.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 48, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 41, scope: !12) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "TestConvertF16ToF128", linkageName: "_CTestConvertF16ToF128.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 10, column: 50, scope: !17) -// CHECK:STDOUT: !21 = !DILocation(line: 10, column: 43, scope: !17) +// CHECK:STDOUT: !32 = !DIFile(filename: "float_to_float.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{!34, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "TestConvertF32ToF64", linkageName: "_CTestConvertF32ToF64.Main", scope: null, file: !32, line: 4, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !45) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !34) +// CHECK:STDOUT: !43 = !DILocation(line: 4, column: 48, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 4, column: 41, scope: !37) +// CHECK:STDOUT: !45 = !{!38} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "TestConvertF64ToF32", linkageName: "_CTestConvertF64ToF32.Main", scope: null, file: !32, line: 7, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !34) +// CHECK:STDOUT: !52 = !DILocation(line: 7, column: 48, scope: !46) +// CHECK:STDOUT: !53 = !DILocation(line: 7, column: 41, scope: !46) +// CHECK:STDOUT: !54 = !{!47} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestConvertF16ToF128", linkageName: "_CTestConvertF16ToF128.Main", scope: null, file: !32, line: 10, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !63) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !34) +// CHECK:STDOUT: !61 = !DILocation(line: 10, column: 50, scope: !55) +// CHECK:STDOUT: !62 = !DILocation(line: 10, column: 43, scope: !55) +// CHECK:STDOUT: !63 = !{!56} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/float_to_int.carbon b/toolchain/lower/testdata/builtins/float_to_int.carbon index bbdbfbdcc1d5..22511db9665d 100644 --- a/toolchain/lower/testdata/builtins/float_to_int.carbon +++ b/toolchain/lower/testdata/builtins/float_to_int.carbon @@ -36,97 +36,97 @@ fn TestConvertF128ToU64(a: f128) -> u64 { return ConvertF128ToU64(a); } // CHECK:STDOUT: source_filename = "float_to_int.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestConvertF32ToI32.Main(float %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CTestConvertF32ToI32.Main(float %a) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF32ToI32.call = fptosi float %a to i32, !dbg !11 -// CHECK:STDOUT: ret i32 %ConvertF32ToI32.call, !dbg !12 +// CHECK:STDOUT: %ConvertF32ToI32.call = fptosi float %a to i32, !dbg !52 +// CHECK:STDOUT: ret i32 %ConvertF32ToI32.call, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestConvertF32ToU32.Main(float %a) #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CTestConvertF32ToU32.Main(float %a) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF32ToU32.call = fptoui float %a to i32, !dbg !19 -// CHECK:STDOUT: ret i32 %ConvertF32ToU32.call, !dbg !20 +// CHECK:STDOUT: %ConvertF32ToU32.call = fptoui float %a to i32, !dbg !61 +// CHECK:STDOUT: ret i32 %ConvertF32ToU32.call, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestConvertF64ToI32.Main(double %a) #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CTestConvertF64ToI32.Main(double %a) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF64ToI32.call = fptosi double %a to i32, !dbg !24 -// CHECK:STDOUT: ret i32 %ConvertF64ToI32.call, !dbg !25 +// CHECK:STDOUT: %ConvertF64ToI32.call = fptosi double %a to i32, !dbg !70 +// CHECK:STDOUT: ret i32 %ConvertF64ToI32.call, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestConvertF64ToU32.Main(double %a) #0 !dbg !26 { +// CHECK:STDOUT: define i32 @_CTestConvertF64ToU32.Main(double %a) #0 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF64ToU32.call = fptoui double %a to i32, !dbg !29 -// CHECK:STDOUT: ret i32 %ConvertF64ToU32.call, !dbg !30 +// CHECK:STDOUT: %ConvertF64ToU32.call = fptoui double %a to i32, !dbg !79 +// CHECK:STDOUT: ret i32 %ConvertF64ToU32.call, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestConvertF128ToI64.Main(fp128 %a) #0 !dbg !31 { +// CHECK:STDOUT: define i64 @_CTestConvertF128ToI64.Main(fp128 %a) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF128ToI64.call = fptosi fp128 %a to i64, !dbg !37 -// CHECK:STDOUT: ret i64 %ConvertF128ToI64.call, !dbg !38 +// CHECK:STDOUT: %ConvertF128ToI64.call = fptosi fp128 %a to i64, !dbg !88 +// CHECK:STDOUT: ret i64 %ConvertF128ToI64.call, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestConvertF128ToU64.Main(fp128 %a) #0 !dbg !39 { +// CHECK:STDOUT: define i64 @_CTestConvertF128ToU64.Main(fp128 %a) #0 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertF128ToU64.call = fptoui fp128 %a to i64, !dbg !45 -// CHECK:STDOUT: ret i64 %ConvertF128ToU64.call, !dbg !46 +// CHECK:STDOUT: %ConvertF128ToU64.call = fptoui fp128 %a to i64, !dbg !97 +// CHECK:STDOUT: ret i64 %ConvertF128ToU64.call, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "float_to_int.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestConvertF32ToI32", linkageName: "_CTestConvertF32ToI32.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 4, column: 48, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 4, column: 41, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestConvertF32ToU32", linkageName: "_CTestConvertF32ToU32.Main", scope: null, file: !1, line: 7, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!16, !8} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !8) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 48, scope: !13) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 41, scope: !13) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "TestConvertF64ToI32", linkageName: "_CTestConvertF64ToI32.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !8) -// CHECK:STDOUT: !24 = !DILocation(line: 10, column: 48, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 10, column: 41, scope: !21) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "TestConvertF64ToU32", linkageName: "_CTestConvertF64ToU32.Main", scope: null, file: !1, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !8) -// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 48, scope: !26) -// CHECK:STDOUT: !30 = !DILocation(line: 13, column: 41, scope: !26) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "TestConvertF128ToI64", linkageName: "_CTestConvertF128ToI64.Main", scope: null, file: !1, line: 16, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !32 = !DISubroutineType(types: !33) -// CHECK:STDOUT: !33 = !{!34, !8} -// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !31, type: !8) -// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 50, scope: !31) -// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 43, scope: !31) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "TestConvertF128ToU64", linkageName: "_CTestConvertF128ToU64.Main", scope: null, file: !1, line: 19, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{!42, !8} -// CHECK:STDOUT: !42 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !39, type: !8) -// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 50, scope: !39) -// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 43, scope: !39) +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !32 = !DIFile(filename: "float_to_int.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !36 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{!34, !37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{!35, !37} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !{!36, !37} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = !{!17, !37} +// CHECK:STDOUT: !45 = !DISubroutineType(types: !44) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "TestConvertF32ToI32", linkageName: "_CTestConvertF32ToI32.Main", scope: null, file: !32, line: 4, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !37) +// CHECK:STDOUT: !52 = !DILocation(line: 4, column: 48, scope: !46) +// CHECK:STDOUT: !53 = !DILocation(line: 4, column: 41, scope: !46) +// CHECK:STDOUT: !54 = !{!47} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestConvertF32ToU32", linkageName: "_CTestConvertF32ToU32.Main", scope: null, file: !32, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !63) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !37) +// CHECK:STDOUT: !61 = !DILocation(line: 7, column: 48, scope: !55) +// CHECK:STDOUT: !62 = !DILocation(line: 7, column: 41, scope: !55) +// CHECK:STDOUT: !63 = !{!56} +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "TestConvertF64ToI32", linkageName: "_CTestConvertF64ToI32.Main", scope: null, file: !32, line: 10, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !37) +// CHECK:STDOUT: !70 = !DILocation(line: 10, column: 48, scope: !64) +// CHECK:STDOUT: !71 = !DILocation(line: 10, column: 41, scope: !64) +// CHECK:STDOUT: !72 = !{!65} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "TestConvertF64ToU32", linkageName: "_CTestConvertF64ToU32.Main", scope: null, file: !32, line: 13, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !81) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !37) +// CHECK:STDOUT: !79 = !DILocation(line: 13, column: 48, scope: !73) +// CHECK:STDOUT: !80 = !DILocation(line: 13, column: 41, scope: !73) +// CHECK:STDOUT: !81 = !{!74} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "TestConvertF128ToI64", linkageName: "_CTestConvertF128ToI64.Main", scope: null, file: !32, line: 16, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !90) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !37) +// CHECK:STDOUT: !88 = !DILocation(line: 16, column: 50, scope: !82) +// CHECK:STDOUT: !89 = !DILocation(line: 16, column: 43, scope: !82) +// CHECK:STDOUT: !90 = !{!83} +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "TestConvertF128ToU64", linkageName: "_CTestConvertF128ToU64.Main", scope: null, file: !32, line: 19, type: !45, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !99) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !37) +// CHECK:STDOUT: !97 = !DILocation(line: 19, column: 50, scope: !91) +// CHECK:STDOUT: !98 = !DILocation(line: 19, column: 43, scope: !91) +// CHECK:STDOUT: !99 = !{!92} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/int.carbon b/toolchain/lower/testdata/builtins/int.carbon index 79d6705d3e94..4820bffb7d47 100644 --- a/toolchain/lower/testdata/builtins/int.carbon +++ b/toolchain/lower/testdata/builtins/int.carbon @@ -227,1051 +227,1051 @@ fn TestUint32ToUint64(a: u32) -> u64 { return Uint32ToUint64(a); } // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestNegate.Main(i32 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CTestNegate.Main(i32 %a) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Negate.call = sub i32 0, %a, !dbg !10 -// CHECK:STDOUT: ret i32 %Negate.call, !dbg !11 +// CHECK:STDOUT: %Negate.call = sub i32 0, %a, !dbg !51 +// CHECK:STDOUT: ret i32 %Negate.call, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestAdd.Main(i32 %a, i32 %b) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CTestAdd.Main(i32 %a, i32 %b) #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Add.call = add i32 %a, %b, !dbg !18 -// CHECK:STDOUT: ret i32 %Add.call, !dbg !19 +// CHECK:STDOUT: %Add.call = add i32 %a, %b, !dbg !63 +// CHECK:STDOUT: ret i32 %Add.call, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestSub.Main(i32 %a, i32 %b) #0 !dbg !20 { +// CHECK:STDOUT: define i32 @_CTestSub.Main(i32 %a, i32 %b) #0 !dbg !66 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Sub.call = sub i32 %a, %b, !dbg !24 -// CHECK:STDOUT: ret i32 %Sub.call, !dbg !25 +// CHECK:STDOUT: %Sub.call = sub i32 %a, %b, !dbg !75 +// CHECK:STDOUT: ret i32 %Sub.call, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestMul.Main(i32 %a, i32 %b) #0 !dbg !26 { +// CHECK:STDOUT: define i32 @_CTestMul.Main(i32 %a, i32 %b) #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Mul.call = mul i32 %a, %b, !dbg !30 -// CHECK:STDOUT: ret i32 %Mul.call, !dbg !31 +// CHECK:STDOUT: %Mul.call = mul i32 %a, %b, !dbg !87 +// CHECK:STDOUT: ret i32 %Mul.call, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestDiv.Main(i32 %a, i32 %b) #0 !dbg !32 { +// CHECK:STDOUT: define i32 @_CTestDiv.Main(i32 %a, i32 %b) #0 !dbg !90 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Div.call = sdiv i32 %a, %b, !dbg !36 -// CHECK:STDOUT: ret i32 %Div.call, !dbg !37 +// CHECK:STDOUT: %Div.call = sdiv i32 %a, %b, !dbg !99 +// CHECK:STDOUT: ret i32 %Div.call, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestMod.Main(i32 %a, i32 %b) #0 !dbg !38 { +// CHECK:STDOUT: define i32 @_CTestMod.Main(i32 %a, i32 %b) #0 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Mod.call = srem i32 %a, %b, !dbg !42 -// CHECK:STDOUT: ret i32 %Mod.call, !dbg !43 +// CHECK:STDOUT: %Mod.call = srem i32 %a, %b, !dbg !111 +// CHECK:STDOUT: ret i32 %Mod.call, !dbg !112 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestComplement.Main(i32 %a) #0 !dbg !44 { +// CHECK:STDOUT: define i32 @_CTestComplement.Main(i32 %a) #0 !dbg !114 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Complement.call = xor i32 -1, %a, !dbg !47 -// CHECK:STDOUT: ret i32 %Complement.call, !dbg !48 +// CHECK:STDOUT: %Complement.call = xor i32 -1, %a, !dbg !120 +// CHECK:STDOUT: ret i32 %Complement.call, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestAnd.Main(i32 %a, i32 %b) #0 !dbg !49 { +// CHECK:STDOUT: define i32 @_CTestAnd.Main(i32 %a, i32 %b) #0 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %And.call = and i32 %a, %b, !dbg !53 -// CHECK:STDOUT: ret i32 %And.call, !dbg !54 +// CHECK:STDOUT: %And.call = and i32 %a, %b, !dbg !132 +// CHECK:STDOUT: ret i32 %And.call, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestOr.Main(i32 %a, i32 %b) #0 !dbg !55 { +// CHECK:STDOUT: define i32 @_CTestOr.Main(i32 %a, i32 %b) #0 !dbg !135 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Or.call = or i32 %a, %b, !dbg !59 -// CHECK:STDOUT: ret i32 %Or.call, !dbg !60 +// CHECK:STDOUT: %Or.call = or i32 %a, %b, !dbg !144 +// CHECK:STDOUT: ret i32 %Or.call, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestXor.Main(i32 %a, i32 %b) #0 !dbg !61 { +// CHECK:STDOUT: define i32 @_CTestXor.Main(i32 %a, i32 %b) #0 !dbg !147 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Xor.call = xor i32 %a, %b, !dbg !65 -// CHECK:STDOUT: ret i32 %Xor.call, !dbg !66 +// CHECK:STDOUT: %Xor.call = xor i32 %a, %b, !dbg !156 +// CHECK:STDOUT: ret i32 %Xor.call, !dbg !157 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestLeftShift.Main(i32 %a, i32 %b) #0 !dbg !67 { +// CHECK:STDOUT: define i32 @_CTestLeftShift.Main(i32 %a, i32 %b) #0 !dbg !159 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShift.call = shl i32 %a, %b, !dbg !71 -// CHECK:STDOUT: ret i32 %LeftShift.call, !dbg !72 +// CHECK:STDOUT: %LeftShift.call = shl i32 %a, %b, !dbg !168 +// CHECK:STDOUT: ret i32 %LeftShift.call, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestArithmeticRightShift.Main(i32 %a, i32 %b) #0 !dbg !73 { +// CHECK:STDOUT: define i32 @_CTestArithmeticRightShift.Main(i32 %a, i32 %b) #0 !dbg !171 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ArithmeticRightShift.call = ashr i32 %a, %b, !dbg !77 -// CHECK:STDOUT: ret i32 %ArithmeticRightShift.call, !dbg !78 +// CHECK:STDOUT: %ArithmeticRightShift.call = ashr i32 %a, %b, !dbg !180 +// CHECK:STDOUT: ret i32 %ArithmeticRightShift.call, !dbg !181 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestLogicalRightShift.Main(i32 %a, i32 %b) #0 !dbg !79 { +// CHECK:STDOUT: define i32 @_CTestLogicalRightShift.Main(i32 %a, i32 %b) #0 !dbg !183 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LogicalRightShift.call = lshr i32 %a, %b, !dbg !86 -// CHECK:STDOUT: ret i32 %LogicalRightShift.call, !dbg !87 +// CHECK:STDOUT: %LogicalRightShift.call = lshr i32 %a, %b, !dbg !192 +// CHECK:STDOUT: ret i32 %LogicalRightShift.call, !dbg !193 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq.Main(i32 %a, i32 %b) #0 !dbg !88 { +// CHECK:STDOUT: define i1 @_CTestEq.Main(i32 %a, i32 %b) #0 !dbg !195 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq.call = icmp eq i32 %a, %b, !dbg !95 -// CHECK:STDOUT: ret i1 %Eq.call, !dbg !96 +// CHECK:STDOUT: %Eq.call = icmp eq i32 %a, %b, !dbg !204 +// CHECK:STDOUT: ret i1 %Eq.call, !dbg !205 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestNeq.Main(i32 %a, i32 %b) #0 !dbg !97 { +// CHECK:STDOUT: define i1 @_CTestNeq.Main(i32 %a, i32 %b) #0 !dbg !207 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Neq.call = icmp ne i32 %a, %b, !dbg !101 -// CHECK:STDOUT: ret i1 %Neq.call, !dbg !102 +// CHECK:STDOUT: %Neq.call = icmp ne i32 %a, %b, !dbg !216 +// CHECK:STDOUT: ret i1 %Neq.call, !dbg !217 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess.Main(i32 %a, i32 %b) #0 !dbg !103 { +// CHECK:STDOUT: define i1 @_CTestLess.Main(i32 %a, i32 %b) #0 !dbg !219 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less.call = icmp slt i32 %a, %b, !dbg !107 -// CHECK:STDOUT: ret i1 %Less.call, !dbg !108 +// CHECK:STDOUT: %Less.call = icmp slt i32 %a, %b, !dbg !228 +// CHECK:STDOUT: ret i1 %Less.call, !dbg !229 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLessEq.Main(i32 %a, i32 %b) #0 !dbg !109 { +// CHECK:STDOUT: define i1 @_CTestLessEq.Main(i32 %a, i32 %b) #0 !dbg !231 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LessEq.call = icmp sle i32 %a, %b, !dbg !113 -// CHECK:STDOUT: ret i1 %LessEq.call, !dbg !114 +// CHECK:STDOUT: %LessEq.call = icmp sle i32 %a, %b, !dbg !240 +// CHECK:STDOUT: ret i1 %LessEq.call, !dbg !241 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestGreater.Main(i32 %a, i32 %b) #0 !dbg !115 { +// CHECK:STDOUT: define i1 @_CTestGreater.Main(i32 %a, i32 %b) #0 !dbg !243 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Greater.call = icmp sgt i32 %a, %b, !dbg !119 -// CHECK:STDOUT: ret i1 %Greater.call, !dbg !120 +// CHECK:STDOUT: %Greater.call = icmp sgt i32 %a, %b, !dbg !252 +// CHECK:STDOUT: ret i1 %Greater.call, !dbg !253 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestGreaterEq.Main(i32 %a, i32 %b) #0 !dbg !121 { +// CHECK:STDOUT: define i1 @_CTestGreaterEq.Main(i32 %a, i32 %b) #0 !dbg !255 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %GreaterEq.call = icmp sge i32 %a, %b, !dbg !125 -// CHECK:STDOUT: ret i1 %GreaterEq.call, !dbg !126 +// CHECK:STDOUT: %GreaterEq.call = icmp sge i32 %a, %b, !dbg !264 +// CHECK:STDOUT: ret i1 %GreaterEq.call, !dbg !265 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestNegate", linkageName: "_CTestNegate.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 39, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 32, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!7, !7, !7} -// CHECK:STDOUT: !15 = !{!16, !17} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !12, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 44, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 37, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22, !23} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !20, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 44, scope: !20) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 37, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28, !29} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 2, scope: !26, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 44, scope: !26) -// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 37, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !32, type: !7) -// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 44, scope: !32) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 37, scope: !32) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "TestMod", linkageName: "_CTestMod.Main", scope: null, file: !1, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40, !41} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 2, scope: !38, type: !7) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 44, scope: !38) -// CHECK:STDOUT: !43 = !DILocation(line: 20, column: 37, scope: !38) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "TestComplement", linkageName: "_CTestComplement.Main", scope: null, file: !1, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !7) -// CHECK:STDOUT: !47 = !DILocation(line: 23, column: 43, scope: !44) -// CHECK:STDOUT: !48 = !DILocation(line: 23, column: 36, scope: !44) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "TestAnd", linkageName: "_CTestAnd.Main", scope: null, file: !1, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51, !52} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !7) -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !7) -// CHECK:STDOUT: !53 = !DILocation(line: 26, column: 44, scope: !49) -// CHECK:STDOUT: !54 = !DILocation(line: 26, column: 37, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestOr", linkageName: "_CTestOr.Main", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57, !58} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !7) -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 2, scope: !55, type: !7) -// CHECK:STDOUT: !59 = !DILocation(line: 29, column: 43, scope: !55) -// CHECK:STDOUT: !60 = !DILocation(line: 29, column: 36, scope: !55) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "TestXor", linkageName: "_CTestXor.Main", scope: null, file: !1, line: 32, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63, !64} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !7) -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !61, type: !7) -// CHECK:STDOUT: !65 = !DILocation(line: 32, column: 44, scope: !61) -// CHECK:STDOUT: !66 = !DILocation(line: 32, column: 37, scope: !61) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "TestLeftShift", linkageName: "_CTestLeftShift.Main", scope: null, file: !1, line: 35, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !68 = !{!69, !70} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !7) -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !67, type: !7) -// CHECK:STDOUT: !71 = !DILocation(line: 35, column: 50, scope: !67) -// CHECK:STDOUT: !72 = !DILocation(line: 35, column: 43, scope: !67) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "TestArithmeticRightShift", linkageName: "_CTestArithmeticRightShift.Main", scope: null, file: !1, line: 38, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75, !76} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !7) -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !73, type: !7) -// CHECK:STDOUT: !77 = !DILocation(line: 38, column: 61, scope: !73) -// CHECK:STDOUT: !78 = !DILocation(line: 38, column: 54, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "TestLogicalRightShift", linkageName: "_CTestLogicalRightShift.Main", scope: null, file: !1, line: 41, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !83) -// CHECK:STDOUT: !80 = !DISubroutineType(types: !81) -// CHECK:STDOUT: !81 = !{!82, !82, !82} -// CHECK:STDOUT: !82 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !83 = !{!84, !85} -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !79, type: !82) -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 2, scope: !79, type: !82) -// CHECK:STDOUT: !86 = !DILocation(line: 41, column: 58, scope: !79) -// CHECK:STDOUT: !87 = !DILocation(line: 41, column: 51, scope: !79) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !1, line: 44, type: !89, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !92) -// CHECK:STDOUT: !89 = !DISubroutineType(types: !90) -// CHECK:STDOUT: !90 = !{!91, !7, !7} -// CHECK:STDOUT: !91 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !92 = !{!93, !94} -// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !88, type: !7) -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 2, scope: !88, type: !7) -// CHECK:STDOUT: !95 = !DILocation(line: 44, column: 44, scope: !88) -// CHECK:STDOUT: !96 = !DILocation(line: 44, column: 37, scope: !88) -// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !1, line: 47, type: !89, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !98) -// CHECK:STDOUT: !98 = !{!99, !100} -// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !97, type: !7) -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 2, scope: !97, type: !7) -// CHECK:STDOUT: !101 = !DILocation(line: 47, column: 45, scope: !97) -// CHECK:STDOUT: !102 = !DILocation(line: 47, column: 38, scope: !97) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "TestLess", linkageName: "_CTestLess.Main", scope: null, file: !1, line: 50, type: !89, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !104) -// CHECK:STDOUT: !104 = !{!105, !106} -// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !103, type: !7) -// CHECK:STDOUT: !106 = !DILocalVariable(arg: 2, scope: !103, type: !7) -// CHECK:STDOUT: !107 = !DILocation(line: 50, column: 46, scope: !103) -// CHECK:STDOUT: !108 = !DILocation(line: 50, column: 39, scope: !103) -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "TestLessEq", linkageName: "_CTestLessEq.Main", scope: null, file: !1, line: 53, type: !89, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !110) -// CHECK:STDOUT: !110 = !{!111, !112} -// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !109, type: !7) -// CHECK:STDOUT: !112 = !DILocalVariable(arg: 2, scope: !109, type: !7) -// CHECK:STDOUT: !113 = !DILocation(line: 53, column: 48, scope: !109) -// CHECK:STDOUT: !114 = !DILocation(line: 53, column: 41, scope: !109) -// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "TestGreater", linkageName: "_CTestGreater.Main", scope: null, file: !1, line: 56, type: !89, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !116) -// CHECK:STDOUT: !116 = !{!117, !118} -// CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !115, type: !7) -// CHECK:STDOUT: !118 = !DILocalVariable(arg: 2, scope: !115, type: !7) -// CHECK:STDOUT: !119 = !DILocation(line: 56, column: 49, scope: !115) -// CHECK:STDOUT: !120 = !DILocation(line: 56, column: 42, scope: !115) -// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "TestGreaterEq", linkageName: "_CTestGreaterEq.Main", scope: null, file: !1, line: 59, type: !89, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !122) -// CHECK:STDOUT: !122 = !{!123, !124} -// CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !121, type: !7) -// CHECK:STDOUT: !124 = !DILocalVariable(arg: 2, scope: !121, type: !7) -// CHECK:STDOUT: !125 = !DILocation(line: 59, column: 51, scope: !121) -// CHECK:STDOUT: !126 = !DILocation(line: 59, column: 44, scope: !121) +// CHECK:STDOUT: !32 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !36 = !{!34, !34} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !{!34, !34, !34} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{!35, !35, !35} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !43 = !{!42, !34, !34} +// CHECK:STDOUT: !44 = !DISubroutineType(types: !43) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "TestNegate", linkageName: "_CTestNegate.Main", scope: null, file: !32, line: 5, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !34) +// CHECK:STDOUT: !51 = !DILocation(line: 5, column: 39, scope: !45) +// CHECK:STDOUT: !52 = !DILocation(line: 5, column: 32, scope: !45) +// CHECK:STDOUT: !53 = !{!46} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !32, line: 8, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !65) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !34) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 2, scope: !54, type: !34) +// CHECK:STDOUT: !63 = !DILocation(line: 8, column: 44, scope: !54) +// CHECK:STDOUT: !64 = !DILocation(line: 8, column: 37, scope: !54) +// CHECK:STDOUT: !65 = !{!55, !56} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !32, line: 11, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !77) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !34) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 2, scope: !66, type: !34) +// CHECK:STDOUT: !75 = !DILocation(line: 11, column: 44, scope: !66) +// CHECK:STDOUT: !76 = !DILocation(line: 11, column: 37, scope: !66) +// CHECK:STDOUT: !77 = !{!67, !68} +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !32, line: 14, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !89) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !34) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 2, scope: !78, type: !34) +// CHECK:STDOUT: !87 = !DILocation(line: 14, column: 44, scope: !78) +// CHECK:STDOUT: !88 = !DILocation(line: 14, column: 37, scope: !78) +// CHECK:STDOUT: !89 = !{!79, !80} +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !32, line: 17, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !101) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !34) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 2, scope: !90, type: !34) +// CHECK:STDOUT: !99 = !DILocation(line: 17, column: 44, scope: !90) +// CHECK:STDOUT: !100 = !DILocation(line: 17, column: 37, scope: !90) +// CHECK:STDOUT: !101 = !{!91, !92} +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "TestMod", linkageName: "_CTestMod.Main", scope: null, file: !32, line: 20, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !113) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !34) +// CHECK:STDOUT: !104 = !DILocalVariable(arg: 2, scope: !102, type: !34) +// CHECK:STDOUT: !111 = !DILocation(line: 20, column: 44, scope: !102) +// CHECK:STDOUT: !112 = !DILocation(line: 20, column: 37, scope: !102) +// CHECK:STDOUT: !113 = !{!103, !104} +// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "TestComplement", linkageName: "_CTestComplement.Main", scope: null, file: !32, line: 23, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !122) +// CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !114, type: !34) +// CHECK:STDOUT: !120 = !DILocation(line: 23, column: 43, scope: !114) +// CHECK:STDOUT: !121 = !DILocation(line: 23, column: 36, scope: !114) +// CHECK:STDOUT: !122 = !{!115} +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "TestAnd", linkageName: "_CTestAnd.Main", scope: null, file: !32, line: 26, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !134) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !34) +// CHECK:STDOUT: !125 = !DILocalVariable(arg: 2, scope: !123, type: !34) +// CHECK:STDOUT: !132 = !DILocation(line: 26, column: 44, scope: !123) +// CHECK:STDOUT: !133 = !DILocation(line: 26, column: 37, scope: !123) +// CHECK:STDOUT: !134 = !{!124, !125} +// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "TestOr", linkageName: "_CTestOr.Main", scope: null, file: !32, line: 29, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !146) +// CHECK:STDOUT: !136 = !DILocalVariable(arg: 1, scope: !135, type: !34) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 2, scope: !135, type: !34) +// CHECK:STDOUT: !144 = !DILocation(line: 29, column: 43, scope: !135) +// CHECK:STDOUT: !145 = !DILocation(line: 29, column: 36, scope: !135) +// CHECK:STDOUT: !146 = !{!136, !137} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "TestXor", linkageName: "_CTestXor.Main", scope: null, file: !32, line: 32, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !158) +// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !34) +// CHECK:STDOUT: !149 = !DILocalVariable(arg: 2, scope: !147, type: !34) +// CHECK:STDOUT: !156 = !DILocation(line: 32, column: 44, scope: !147) +// CHECK:STDOUT: !157 = !DILocation(line: 32, column: 37, scope: !147) +// CHECK:STDOUT: !158 = !{!148, !149} +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "TestLeftShift", linkageName: "_CTestLeftShift.Main", scope: null, file: !32, line: 35, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !170) +// CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !34) +// CHECK:STDOUT: !161 = !DILocalVariable(arg: 2, scope: !159, type: !34) +// CHECK:STDOUT: !168 = !DILocation(line: 35, column: 50, scope: !159) +// CHECK:STDOUT: !169 = !DILocation(line: 35, column: 43, scope: !159) +// CHECK:STDOUT: !170 = !{!160, !161} +// CHECK:STDOUT: !171 = distinct !DISubprogram(name: "TestArithmeticRightShift", linkageName: "_CTestArithmeticRightShift.Main", scope: null, file: !32, line: 38, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !182) +// CHECK:STDOUT: !172 = !DILocalVariable(arg: 1, scope: !171, type: !34) +// CHECK:STDOUT: !173 = !DILocalVariable(arg: 2, scope: !171, type: !34) +// CHECK:STDOUT: !180 = !DILocation(line: 38, column: 61, scope: !171) +// CHECK:STDOUT: !181 = !DILocation(line: 38, column: 54, scope: !171) +// CHECK:STDOUT: !182 = !{!172, !173} +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "TestLogicalRightShift", linkageName: "_CTestLogicalRightShift.Main", scope: null, file: !32, line: 41, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !194) +// CHECK:STDOUT: !184 = !DILocalVariable(arg: 1, scope: !183, type: !35) +// CHECK:STDOUT: !185 = !DILocalVariable(arg: 2, scope: !183, type: !35) +// CHECK:STDOUT: !192 = !DILocation(line: 41, column: 58, scope: !183) +// CHECK:STDOUT: !193 = !DILocation(line: 41, column: 51, scope: !183) +// CHECK:STDOUT: !194 = !{!184, !185} +// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !32, line: 44, type: !44, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !206) +// CHECK:STDOUT: !196 = !DILocalVariable(arg: 1, scope: !195, type: !34) +// CHECK:STDOUT: !197 = !DILocalVariable(arg: 2, scope: !195, type: !34) +// CHECK:STDOUT: !204 = !DILocation(line: 44, column: 44, scope: !195) +// CHECK:STDOUT: !205 = !DILocation(line: 44, column: 37, scope: !195) +// CHECK:STDOUT: !206 = !{!196, !197} +// CHECK:STDOUT: !207 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !32, line: 47, type: !44, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !218) +// CHECK:STDOUT: !208 = !DILocalVariable(arg: 1, scope: !207, type: !34) +// CHECK:STDOUT: !209 = !DILocalVariable(arg: 2, scope: !207, type: !34) +// CHECK:STDOUT: !216 = !DILocation(line: 47, column: 45, scope: !207) +// CHECK:STDOUT: !217 = !DILocation(line: 47, column: 38, scope: !207) +// CHECK:STDOUT: !218 = !{!208, !209} +// CHECK:STDOUT: !219 = distinct !DISubprogram(name: "TestLess", linkageName: "_CTestLess.Main", scope: null, file: !32, line: 50, type: !44, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !230) +// CHECK:STDOUT: !220 = !DILocalVariable(arg: 1, scope: !219, type: !34) +// CHECK:STDOUT: !221 = !DILocalVariable(arg: 2, scope: !219, type: !34) +// CHECK:STDOUT: !228 = !DILocation(line: 50, column: 46, scope: !219) +// CHECK:STDOUT: !229 = !DILocation(line: 50, column: 39, scope: !219) +// CHECK:STDOUT: !230 = !{!220, !221} +// CHECK:STDOUT: !231 = distinct !DISubprogram(name: "TestLessEq", linkageName: "_CTestLessEq.Main", scope: null, file: !32, line: 53, type: !44, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !242) +// CHECK:STDOUT: !232 = !DILocalVariable(arg: 1, scope: !231, type: !34) +// CHECK:STDOUT: !233 = !DILocalVariable(arg: 2, scope: !231, type: !34) +// CHECK:STDOUT: !240 = !DILocation(line: 53, column: 48, scope: !231) +// CHECK:STDOUT: !241 = !DILocation(line: 53, column: 41, scope: !231) +// CHECK:STDOUT: !242 = !{!232, !233} +// CHECK:STDOUT: !243 = distinct !DISubprogram(name: "TestGreater", linkageName: "_CTestGreater.Main", scope: null, file: !32, line: 56, type: !44, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !254) +// CHECK:STDOUT: !244 = !DILocalVariable(arg: 1, scope: !243, type: !34) +// CHECK:STDOUT: !245 = !DILocalVariable(arg: 2, scope: !243, type: !34) +// CHECK:STDOUT: !252 = !DILocation(line: 56, column: 49, scope: !243) +// CHECK:STDOUT: !253 = !DILocation(line: 56, column: 42, scope: !243) +// CHECK:STDOUT: !254 = !{!244, !245} +// CHECK:STDOUT: !255 = distinct !DISubprogram(name: "TestGreaterEq", linkageName: "_CTestGreaterEq.Main", scope: null, file: !32, line: 59, type: !44, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !266) +// CHECK:STDOUT: !256 = !DILocalVariable(arg: 1, scope: !255, type: !34) +// CHECK:STDOUT: !257 = !DILocalVariable(arg: 2, scope: !255, type: !34) +// CHECK:STDOUT: !264 = !DILocation(line: 59, column: 51, scope: !255) +// CHECK:STDOUT: !265 = !DILocation(line: 59, column: 44, scope: !255) +// CHECK:STDOUT: !266 = !{!256, !257} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'compound_assign.carbon' // CHECK:STDOUT: source_filename = "compound_assign.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestSAdd.Main(ptr %a, i32 %b) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CTestSAdd.Main(ptr %a, i32 %b) #0 !dbg !275 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SAdd.call = load i32, ptr %a, align 4, !dbg !11 -// CHECK:STDOUT: %SAdd.call1 = add i32 %SAdd.call, %b, !dbg !11 -// CHECK:STDOUT: store i32 %SAdd.call1, ptr %a, align 4, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %SAdd.call = load i32, ptr %a, align 4, !dbg !283 +// CHECK:STDOUT: %SAdd.call1 = add i32 %SAdd.call, %b, !dbg !283 +// CHECK:STDOUT: store i32 %SAdd.call1, ptr %a, align 4, !dbg !283 +// CHECK:STDOUT: ret void, !dbg !284 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestSSub.Main(ptr %a, i32 %b) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CTestSSub.Main(ptr %a, i32 %b) #0 !dbg !286 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SSub.call = load i32, ptr %a, align 4, !dbg !17 -// CHECK:STDOUT: %SSub.call1 = sub i32 %SSub.call, %b, !dbg !17 -// CHECK:STDOUT: store i32 %SSub.call1, ptr %a, align 4, !dbg !17 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %SSub.call = load i32, ptr %a, align 4, !dbg !294 +// CHECK:STDOUT: %SSub.call1 = sub i32 %SSub.call, %b, !dbg !294 +// CHECK:STDOUT: store i32 %SSub.call1, ptr %a, align 4, !dbg !294 +// CHECK:STDOUT: ret void, !dbg !295 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestSMul.Main(ptr %a, i32 %b) #0 !dbg !19 { +// CHECK:STDOUT: define void @_CTestSMul.Main(ptr %a, i32 %b) #0 !dbg !297 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SMul.call = load i32, ptr %a, align 4, !dbg !23 -// CHECK:STDOUT: %SMul.call1 = mul i32 %SMul.call, %b, !dbg !23 -// CHECK:STDOUT: store i32 %SMul.call1, ptr %a, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %SMul.call = load i32, ptr %a, align 4, !dbg !305 +// CHECK:STDOUT: %SMul.call1 = mul i32 %SMul.call, %b, !dbg !305 +// CHECK:STDOUT: store i32 %SMul.call1, ptr %a, align 4, !dbg !305 +// CHECK:STDOUT: ret void, !dbg !306 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestSDiv.Main(ptr %a, i32 %b) #0 !dbg !25 { +// CHECK:STDOUT: define void @_CTestSDiv.Main(ptr %a, i32 %b) #0 !dbg !308 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SDiv.call = load i32, ptr %a, align 4, !dbg !29 -// CHECK:STDOUT: %SDiv.call1 = sdiv i32 %SDiv.call, %b, !dbg !29 -// CHECK:STDOUT: store i32 %SDiv.call1, ptr %a, align 4, !dbg !29 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %SDiv.call = load i32, ptr %a, align 4, !dbg !316 +// CHECK:STDOUT: %SDiv.call1 = sdiv i32 %SDiv.call, %b, !dbg !316 +// CHECK:STDOUT: store i32 %SDiv.call1, ptr %a, align 4, !dbg !316 +// CHECK:STDOUT: ret void, !dbg !317 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestSMod.Main(ptr %a, i32 %b) #0 !dbg !31 { +// CHECK:STDOUT: define void @_CTestSMod.Main(ptr %a, i32 %b) #0 !dbg !319 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SMod.call = load i32, ptr %a, align 4, !dbg !35 -// CHECK:STDOUT: %SMod.call1 = srem i32 %SMod.call, %b, !dbg !35 -// CHECK:STDOUT: store i32 %SMod.call1, ptr %a, align 4, !dbg !35 -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: %SMod.call = load i32, ptr %a, align 4, !dbg !327 +// CHECK:STDOUT: %SMod.call1 = srem i32 %SMod.call, %b, !dbg !327 +// CHECK:STDOUT: store i32 %SMod.call1, ptr %a, align 4, !dbg !327 +// CHECK:STDOUT: ret void, !dbg !328 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestUAdd.Main(ptr %a, i32 %b) #0 !dbg !37 { +// CHECK:STDOUT: define void @_CTestUAdd.Main(ptr %a, i32 %b) #0 !dbg !330 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UAdd.call = load i32, ptr %a, align 4, !dbg !41 -// CHECK:STDOUT: %UAdd.call1 = add i32 %UAdd.call, %b, !dbg !41 -// CHECK:STDOUT: store i32 %UAdd.call1, ptr %a, align 4, !dbg !41 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: %UAdd.call = load i32, ptr %a, align 4, !dbg !338 +// CHECK:STDOUT: %UAdd.call1 = add i32 %UAdd.call, %b, !dbg !338 +// CHECK:STDOUT: store i32 %UAdd.call1, ptr %a, align 4, !dbg !338 +// CHECK:STDOUT: ret void, !dbg !339 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestUSub.Main(ptr %a, i32 %b) #0 !dbg !43 { +// CHECK:STDOUT: define void @_CTestUSub.Main(ptr %a, i32 %b) #0 !dbg !341 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %USub.call = load i32, ptr %a, align 4, !dbg !47 -// CHECK:STDOUT: %USub.call1 = sub i32 %USub.call, %b, !dbg !47 -// CHECK:STDOUT: store i32 %USub.call1, ptr %a, align 4, !dbg !47 -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: %USub.call = load i32, ptr %a, align 4, !dbg !349 +// CHECK:STDOUT: %USub.call1 = sub i32 %USub.call, %b, !dbg !349 +// CHECK:STDOUT: store i32 %USub.call1, ptr %a, align 4, !dbg !349 +// CHECK:STDOUT: ret void, !dbg !350 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestUMul.Main(ptr %a, i32 %b) #0 !dbg !49 { +// CHECK:STDOUT: define void @_CTestUMul.Main(ptr %a, i32 %b) #0 !dbg !352 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UMul.call = load i32, ptr %a, align 4, !dbg !53 -// CHECK:STDOUT: %UMul.call1 = mul i32 %UMul.call, %b, !dbg !53 -// CHECK:STDOUT: store i32 %UMul.call1, ptr %a, align 4, !dbg !53 -// CHECK:STDOUT: ret void, !dbg !54 +// CHECK:STDOUT: %UMul.call = load i32, ptr %a, align 4, !dbg !360 +// CHECK:STDOUT: %UMul.call1 = mul i32 %UMul.call, %b, !dbg !360 +// CHECK:STDOUT: store i32 %UMul.call1, ptr %a, align 4, !dbg !360 +// CHECK:STDOUT: ret void, !dbg !361 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestUDiv.Main(ptr %a, i32 %b) #0 !dbg !55 { +// CHECK:STDOUT: define void @_CTestUDiv.Main(ptr %a, i32 %b) #0 !dbg !363 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UDiv.call = load i32, ptr %a, align 4, !dbg !59 -// CHECK:STDOUT: %UDiv.call1 = udiv i32 %UDiv.call, %b, !dbg !59 -// CHECK:STDOUT: store i32 %UDiv.call1, ptr %a, align 4, !dbg !59 -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: %UDiv.call = load i32, ptr %a, align 4, !dbg !371 +// CHECK:STDOUT: %UDiv.call1 = udiv i32 %UDiv.call, %b, !dbg !371 +// CHECK:STDOUT: store i32 %UDiv.call1, ptr %a, align 4, !dbg !371 +// CHECK:STDOUT: ret void, !dbg !372 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestUMod.Main(ptr %a, i32 %b) #0 !dbg !61 { +// CHECK:STDOUT: define void @_CTestUMod.Main(ptr %a, i32 %b) #0 !dbg !374 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UMod.call = load i32, ptr %a, align 4, !dbg !65 -// CHECK:STDOUT: %UMod.call1 = urem i32 %UMod.call, %b, !dbg !65 -// CHECK:STDOUT: store i32 %UMod.call1, ptr %a, align 4, !dbg !65 -// CHECK:STDOUT: ret void, !dbg !66 +// CHECK:STDOUT: %UMod.call = load i32, ptr %a, align 4, !dbg !382 +// CHECK:STDOUT: %UMod.call1 = urem i32 %UMod.call, %b, !dbg !382 +// CHECK:STDOUT: store i32 %UMod.call1, ptr %a, align 4, !dbg !382 +// CHECK:STDOUT: ret void, !dbg !383 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestAnd.Main(ptr %a, i32 %b) #0 !dbg !67 { +// CHECK:STDOUT: define void @_CTestAnd.Main(ptr %a, i32 %b) #0 !dbg !385 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %And.call = load i32, ptr %a, align 4, !dbg !71 -// CHECK:STDOUT: %And.call1 = and i32 %And.call, %b, !dbg !71 -// CHECK:STDOUT: store i32 %And.call1, ptr %a, align 4, !dbg !71 -// CHECK:STDOUT: ret void, !dbg !72 +// CHECK:STDOUT: %And.call = load i32, ptr %a, align 4, !dbg !393 +// CHECK:STDOUT: %And.call1 = and i32 %And.call, %b, !dbg !393 +// CHECK:STDOUT: store i32 %And.call1, ptr %a, align 4, !dbg !393 +// CHECK:STDOUT: ret void, !dbg !394 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestOr.Main(ptr %a, i32 %b) #0 !dbg !73 { +// CHECK:STDOUT: define void @_CTestOr.Main(ptr %a, i32 %b) #0 !dbg !396 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Or.call = load i32, ptr %a, align 4, !dbg !77 -// CHECK:STDOUT: %Or.call1 = or i32 %Or.call, %b, !dbg !77 -// CHECK:STDOUT: store i32 %Or.call1, ptr %a, align 4, !dbg !77 -// CHECK:STDOUT: ret void, !dbg !78 +// CHECK:STDOUT: %Or.call = load i32, ptr %a, align 4, !dbg !404 +// CHECK:STDOUT: %Or.call1 = or i32 %Or.call, %b, !dbg !404 +// CHECK:STDOUT: store i32 %Or.call1, ptr %a, align 4, !dbg !404 +// CHECK:STDOUT: ret void, !dbg !405 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestXor.Main(ptr %a, i32 %b) #0 !dbg !79 { +// CHECK:STDOUT: define void @_CTestXor.Main(ptr %a, i32 %b) #0 !dbg !407 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Xor.call = load i32, ptr %a, align 4, !dbg !83 -// CHECK:STDOUT: %Xor.call1 = xor i32 %Xor.call, %b, !dbg !83 -// CHECK:STDOUT: store i32 %Xor.call1, ptr %a, align 4, !dbg !83 -// CHECK:STDOUT: ret void, !dbg !84 +// CHECK:STDOUT: %Xor.call = load i32, ptr %a, align 4, !dbg !415 +// CHECK:STDOUT: %Xor.call1 = xor i32 %Xor.call, %b, !dbg !415 +// CHECK:STDOUT: store i32 %Xor.call1, ptr %a, align 4, !dbg !415 +// CHECK:STDOUT: ret void, !dbg !416 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestLeftShift.Main(ptr %a, i32 %b) #0 !dbg !85 { +// CHECK:STDOUT: define void @_CTestLeftShift.Main(ptr %a, i32 %b) #0 !dbg !418 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShift.call = load i32, ptr %a, align 4, !dbg !89 -// CHECK:STDOUT: %LeftShift.call1 = shl i32 %LeftShift.call, %b, !dbg !89 -// CHECK:STDOUT: store i32 %LeftShift.call1, ptr %a, align 4, !dbg !89 -// CHECK:STDOUT: ret void, !dbg !90 +// CHECK:STDOUT: %LeftShift.call = load i32, ptr %a, align 4, !dbg !426 +// CHECK:STDOUT: %LeftShift.call1 = shl i32 %LeftShift.call, %b, !dbg !426 +// CHECK:STDOUT: store i32 %LeftShift.call1, ptr %a, align 4, !dbg !426 +// CHECK:STDOUT: ret void, !dbg !427 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestArithmeticRightShift.Main(ptr %a, i32 %b) #0 !dbg !91 { +// CHECK:STDOUT: define void @_CTestArithmeticRightShift.Main(ptr %a, i32 %b) #0 !dbg !429 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ArithmeticRightShift.call = load i32, ptr %a, align 4, !dbg !98 -// CHECK:STDOUT: %ArithmeticRightShift.call1 = ashr i32 %ArithmeticRightShift.call, %b, !dbg !98 -// CHECK:STDOUT: store i32 %ArithmeticRightShift.call1, ptr %a, align 4, !dbg !98 -// CHECK:STDOUT: ret void, !dbg !99 +// CHECK:STDOUT: %ArithmeticRightShift.call = load i32, ptr %a, align 4, !dbg !437 +// CHECK:STDOUT: %ArithmeticRightShift.call1 = ashr i32 %ArithmeticRightShift.call, %b, !dbg !437 +// CHECK:STDOUT: store i32 %ArithmeticRightShift.call1, ptr %a, align 4, !dbg !437 +// CHECK:STDOUT: ret void, !dbg !438 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTestLogicalRightShift.Main(ptr %a, i32 %b) #0 !dbg !100 { +// CHECK:STDOUT: define void @_CTestLogicalRightShift.Main(ptr %a, i32 %b) #0 !dbg !440 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LogicalRightShift.call = load i32, ptr %a, align 4, !dbg !106 -// CHECK:STDOUT: %LogicalRightShift.call1 = lshr i32 %LogicalRightShift.call, %b, !dbg !106 -// CHECK:STDOUT: store i32 %LogicalRightShift.call1, ptr %a, align 4, !dbg !106 -// CHECK:STDOUT: ret void, !dbg !107 +// CHECK:STDOUT: %LogicalRightShift.call = load i32, ptr %a, align 4, !dbg !448 +// CHECK:STDOUT: %LogicalRightShift.call1 = lshr i32 %LogicalRightShift.call, %b, !dbg !448 +// CHECK:STDOUT: store i32 %LogicalRightShift.call1, ptr %a, align 4, !dbg !448 +// CHECK:STDOUT: ret void, !dbg !449 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!268} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "compound_assign.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestSAdd", linkageName: "_CTestSAdd.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 35, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestSSub", linkageName: "_CTestSSub.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !13, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 8, column: 35, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 1, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "TestSMul", linkageName: "_CTestSMul.Main", scope: null, file: !1, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21, !22} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 2, scope: !19, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 35, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 1, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "TestSDiv", linkageName: "_CTestSDiv.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27, !28} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !25, type: !7) -// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 35, scope: !25) -// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 1, scope: !25) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "TestSMod", linkageName: "_CTestSMod.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33, !34} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !7) -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 2, scope: !31, type: !7) -// CHECK:STDOUT: !35 = !DILocation(line: 17, column: 35, scope: !31) -// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 1, scope: !31) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "TestUAdd", linkageName: "_CTestUAdd.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39, !40} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !7) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !37, type: !7) -// CHECK:STDOUT: !41 = !DILocation(line: 20, column: 35, scope: !37) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 1, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "TestUSub", linkageName: "_CTestUSub.Main", scope: null, file: !1, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45, !46} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 2, scope: !43, type: !7) -// CHECK:STDOUT: !47 = !DILocation(line: 23, column: 35, scope: !43) -// CHECK:STDOUT: !48 = !DILocation(line: 23, column: 1, scope: !43) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "TestUMul", linkageName: "_CTestUMul.Main", scope: null, file: !1, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51, !52} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !7) -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !7) -// CHECK:STDOUT: !53 = !DILocation(line: 26, column: 35, scope: !49) -// CHECK:STDOUT: !54 = !DILocation(line: 26, column: 1, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestUDiv", linkageName: "_CTestUDiv.Main", scope: null, file: !1, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57, !58} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !7) -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 2, scope: !55, type: !7) -// CHECK:STDOUT: !59 = !DILocation(line: 29, column: 35, scope: !55) -// CHECK:STDOUT: !60 = !DILocation(line: 29, column: 1, scope: !55) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "TestUMod", linkageName: "_CTestUMod.Main", scope: null, file: !1, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63, !64} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !7) -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !61, type: !7) -// CHECK:STDOUT: !65 = !DILocation(line: 32, column: 35, scope: !61) -// CHECK:STDOUT: !66 = !DILocation(line: 32, column: 1, scope: !61) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "TestAnd", linkageName: "_CTestAnd.Main", scope: null, file: !1, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !68 = !{!69, !70} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !7) -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !67, type: !7) -// CHECK:STDOUT: !71 = !DILocation(line: 35, column: 34, scope: !67) -// CHECK:STDOUT: !72 = !DILocation(line: 35, column: 1, scope: !67) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "TestOr", linkageName: "_CTestOr.Main", scope: null, file: !1, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75, !76} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !7) -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !73, type: !7) -// CHECK:STDOUT: !77 = !DILocation(line: 38, column: 33, scope: !73) -// CHECK:STDOUT: !78 = !DILocation(line: 38, column: 1, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "TestXor", linkageName: "_CTestXor.Main", scope: null, file: !1, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !80) -// CHECK:STDOUT: !80 = !{!81, !82} -// CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !79, type: !7) -// CHECK:STDOUT: !82 = !DILocalVariable(arg: 2, scope: !79, type: !7) -// CHECK:STDOUT: !83 = !DILocation(line: 41, column: 34, scope: !79) -// CHECK:STDOUT: !84 = !DILocation(line: 41, column: 1, scope: !79) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "TestLeftShift", linkageName: "_CTestLeftShift.Main", scope: null, file: !1, line: 44, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !86) -// CHECK:STDOUT: !86 = !{!87, !88} -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !7) -// CHECK:STDOUT: !88 = !DILocalVariable(arg: 2, scope: !85, type: !7) -// CHECK:STDOUT: !89 = !DILocation(line: 44, column: 40, scope: !85) -// CHECK:STDOUT: !90 = !DILocation(line: 44, column: 1, scope: !85) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "TestArithmeticRightShift", linkageName: "_CTestArithmeticRightShift.Main", scope: null, file: !1, line: 47, type: !92, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !95) -// CHECK:STDOUT: !92 = !DISubroutineType(types: !93) -// CHECK:STDOUT: !93 = !{null, !7, !94} -// CHECK:STDOUT: !94 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !95 = !{!96, !97} -// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !91, type: !7) -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 2, scope: !91, type: !94) -// CHECK:STDOUT: !98 = !DILocation(line: 47, column: 51, scope: !91) -// CHECK:STDOUT: !99 = !DILocation(line: 47, column: 1, scope: !91) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "TestLogicalRightShift", linkageName: "_CTestLogicalRightShift.Main", scope: null, file: !1, line: 50, type: !101, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !103) -// CHECK:STDOUT: !101 = !DISubroutineType(types: !102) -// CHECK:STDOUT: !102 = !{null, !94, !94} -// CHECK:STDOUT: !103 = !{!104, !105} -// CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !100, type: !94) -// CHECK:STDOUT: !105 = !DILocalVariable(arg: 2, scope: !100, type: !94) -// CHECK:STDOUT: !106 = !DILocation(line: 50, column: 48, scope: !100) -// CHECK:STDOUT: !107 = !DILocation(line: 50, column: 1, scope: !100) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !267 = !DIFile(filename: "compound_assign.carbon", directory: "") +// CHECK:STDOUT: !268 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !267, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !269 = !{null, !34, !34} +// CHECK:STDOUT: !270 = !DISubroutineType(types: !269) +// CHECK:STDOUT: !271 = !{null, !34, !35} +// CHECK:STDOUT: !272 = !DISubroutineType(types: !271) +// CHECK:STDOUT: !273 = !{null, !35, !35} +// CHECK:STDOUT: !274 = !DISubroutineType(types: !273) +// CHECK:STDOUT: !275 = distinct !DISubprogram(name: "TestSAdd", linkageName: "_CTestSAdd.Main", scope: null, file: !267, line: 5, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !285) +// CHECK:STDOUT: !276 = !DILocalVariable(arg: 1, scope: !275, type: !34) +// CHECK:STDOUT: !277 = !DILocalVariable(arg: 2, scope: !275, type: !34) +// CHECK:STDOUT: !283 = !DILocation(line: 5, column: 35, scope: !275) +// CHECK:STDOUT: !284 = !DILocation(line: 5, column: 1, scope: !275) +// CHECK:STDOUT: !285 = !{!276, !277} +// CHECK:STDOUT: !286 = distinct !DISubprogram(name: "TestSSub", linkageName: "_CTestSSub.Main", scope: null, file: !267, line: 8, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !296) +// CHECK:STDOUT: !287 = !DILocalVariable(arg: 1, scope: !286, type: !34) +// CHECK:STDOUT: !288 = !DILocalVariable(arg: 2, scope: !286, type: !34) +// CHECK:STDOUT: !294 = !DILocation(line: 8, column: 35, scope: !286) +// CHECK:STDOUT: !295 = !DILocation(line: 8, column: 1, scope: !286) +// CHECK:STDOUT: !296 = !{!287, !288} +// CHECK:STDOUT: !297 = distinct !DISubprogram(name: "TestSMul", linkageName: "_CTestSMul.Main", scope: null, file: !267, line: 11, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !307) +// CHECK:STDOUT: !298 = !DILocalVariable(arg: 1, scope: !297, type: !34) +// CHECK:STDOUT: !299 = !DILocalVariable(arg: 2, scope: !297, type: !34) +// CHECK:STDOUT: !305 = !DILocation(line: 11, column: 35, scope: !297) +// CHECK:STDOUT: !306 = !DILocation(line: 11, column: 1, scope: !297) +// CHECK:STDOUT: !307 = !{!298, !299} +// CHECK:STDOUT: !308 = distinct !DISubprogram(name: "TestSDiv", linkageName: "_CTestSDiv.Main", scope: null, file: !267, line: 14, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !318) +// CHECK:STDOUT: !309 = !DILocalVariable(arg: 1, scope: !308, type: !34) +// CHECK:STDOUT: !310 = !DILocalVariable(arg: 2, scope: !308, type: !34) +// CHECK:STDOUT: !316 = !DILocation(line: 14, column: 35, scope: !308) +// CHECK:STDOUT: !317 = !DILocation(line: 14, column: 1, scope: !308) +// CHECK:STDOUT: !318 = !{!309, !310} +// CHECK:STDOUT: !319 = distinct !DISubprogram(name: "TestSMod", linkageName: "_CTestSMod.Main", scope: null, file: !267, line: 17, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !329) +// CHECK:STDOUT: !320 = !DILocalVariable(arg: 1, scope: !319, type: !34) +// CHECK:STDOUT: !321 = !DILocalVariable(arg: 2, scope: !319, type: !34) +// CHECK:STDOUT: !327 = !DILocation(line: 17, column: 35, scope: !319) +// CHECK:STDOUT: !328 = !DILocation(line: 17, column: 1, scope: !319) +// CHECK:STDOUT: !329 = !{!320, !321} +// CHECK:STDOUT: !330 = distinct !DISubprogram(name: "TestUAdd", linkageName: "_CTestUAdd.Main", scope: null, file: !267, line: 20, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !340) +// CHECK:STDOUT: !331 = !DILocalVariable(arg: 1, scope: !330, type: !34) +// CHECK:STDOUT: !332 = !DILocalVariable(arg: 2, scope: !330, type: !34) +// CHECK:STDOUT: !338 = !DILocation(line: 20, column: 35, scope: !330) +// CHECK:STDOUT: !339 = !DILocation(line: 20, column: 1, scope: !330) +// CHECK:STDOUT: !340 = !{!331, !332} +// CHECK:STDOUT: !341 = distinct !DISubprogram(name: "TestUSub", linkageName: "_CTestUSub.Main", scope: null, file: !267, line: 23, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !351) +// CHECK:STDOUT: !342 = !DILocalVariable(arg: 1, scope: !341, type: !34) +// CHECK:STDOUT: !343 = !DILocalVariable(arg: 2, scope: !341, type: !34) +// CHECK:STDOUT: !349 = !DILocation(line: 23, column: 35, scope: !341) +// CHECK:STDOUT: !350 = !DILocation(line: 23, column: 1, scope: !341) +// CHECK:STDOUT: !351 = !{!342, !343} +// CHECK:STDOUT: !352 = distinct !DISubprogram(name: "TestUMul", linkageName: "_CTestUMul.Main", scope: null, file: !267, line: 26, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !362) +// CHECK:STDOUT: !353 = !DILocalVariable(arg: 1, scope: !352, type: !34) +// CHECK:STDOUT: !354 = !DILocalVariable(arg: 2, scope: !352, type: !34) +// CHECK:STDOUT: !360 = !DILocation(line: 26, column: 35, scope: !352) +// CHECK:STDOUT: !361 = !DILocation(line: 26, column: 1, scope: !352) +// CHECK:STDOUT: !362 = !{!353, !354} +// CHECK:STDOUT: !363 = distinct !DISubprogram(name: "TestUDiv", linkageName: "_CTestUDiv.Main", scope: null, file: !267, line: 29, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !373) +// CHECK:STDOUT: !364 = !DILocalVariable(arg: 1, scope: !363, type: !34) +// CHECK:STDOUT: !365 = !DILocalVariable(arg: 2, scope: !363, type: !34) +// CHECK:STDOUT: !371 = !DILocation(line: 29, column: 35, scope: !363) +// CHECK:STDOUT: !372 = !DILocation(line: 29, column: 1, scope: !363) +// CHECK:STDOUT: !373 = !{!364, !365} +// CHECK:STDOUT: !374 = distinct !DISubprogram(name: "TestUMod", linkageName: "_CTestUMod.Main", scope: null, file: !267, line: 32, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !384) +// CHECK:STDOUT: !375 = !DILocalVariable(arg: 1, scope: !374, type: !34) +// CHECK:STDOUT: !376 = !DILocalVariable(arg: 2, scope: !374, type: !34) +// CHECK:STDOUT: !382 = !DILocation(line: 32, column: 35, scope: !374) +// CHECK:STDOUT: !383 = !DILocation(line: 32, column: 1, scope: !374) +// CHECK:STDOUT: !384 = !{!375, !376} +// CHECK:STDOUT: !385 = distinct !DISubprogram(name: "TestAnd", linkageName: "_CTestAnd.Main", scope: null, file: !267, line: 35, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !395) +// CHECK:STDOUT: !386 = !DILocalVariable(arg: 1, scope: !385, type: !34) +// CHECK:STDOUT: !387 = !DILocalVariable(arg: 2, scope: !385, type: !34) +// CHECK:STDOUT: !393 = !DILocation(line: 35, column: 34, scope: !385) +// CHECK:STDOUT: !394 = !DILocation(line: 35, column: 1, scope: !385) +// CHECK:STDOUT: !395 = !{!386, !387} +// CHECK:STDOUT: !396 = distinct !DISubprogram(name: "TestOr", linkageName: "_CTestOr.Main", scope: null, file: !267, line: 38, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !406) +// CHECK:STDOUT: !397 = !DILocalVariable(arg: 1, scope: !396, type: !34) +// CHECK:STDOUT: !398 = !DILocalVariable(arg: 2, scope: !396, type: !34) +// CHECK:STDOUT: !404 = !DILocation(line: 38, column: 33, scope: !396) +// CHECK:STDOUT: !405 = !DILocation(line: 38, column: 1, scope: !396) +// CHECK:STDOUT: !406 = !{!397, !398} +// CHECK:STDOUT: !407 = distinct !DISubprogram(name: "TestXor", linkageName: "_CTestXor.Main", scope: null, file: !267, line: 41, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !417) +// CHECK:STDOUT: !408 = !DILocalVariable(arg: 1, scope: !407, type: !34) +// CHECK:STDOUT: !409 = !DILocalVariable(arg: 2, scope: !407, type: !34) +// CHECK:STDOUT: !415 = !DILocation(line: 41, column: 34, scope: !407) +// CHECK:STDOUT: !416 = !DILocation(line: 41, column: 1, scope: !407) +// CHECK:STDOUT: !417 = !{!408, !409} +// CHECK:STDOUT: !418 = distinct !DISubprogram(name: "TestLeftShift", linkageName: "_CTestLeftShift.Main", scope: null, file: !267, line: 44, type: !270, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !428) +// CHECK:STDOUT: !419 = !DILocalVariable(arg: 1, scope: !418, type: !34) +// CHECK:STDOUT: !420 = !DILocalVariable(arg: 2, scope: !418, type: !34) +// CHECK:STDOUT: !426 = !DILocation(line: 44, column: 40, scope: !418) +// CHECK:STDOUT: !427 = !DILocation(line: 44, column: 1, scope: !418) +// CHECK:STDOUT: !428 = !{!419, !420} +// CHECK:STDOUT: !429 = distinct !DISubprogram(name: "TestArithmeticRightShift", linkageName: "_CTestArithmeticRightShift.Main", scope: null, file: !267, line: 47, type: !272, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !439) +// CHECK:STDOUT: !430 = !DILocalVariable(arg: 1, scope: !429, type: !34) +// CHECK:STDOUT: !431 = !DILocalVariable(arg: 2, scope: !429, type: !35) +// CHECK:STDOUT: !437 = !DILocation(line: 47, column: 51, scope: !429) +// CHECK:STDOUT: !438 = !DILocation(line: 47, column: 1, scope: !429) +// CHECK:STDOUT: !439 = !{!430, !431} +// CHECK:STDOUT: !440 = distinct !DISubprogram(name: "TestLogicalRightShift", linkageName: "_CTestLogicalRightShift.Main", scope: null, file: !267, line: 50, type: !274, spFlags: DISPFlagDefinition, unit: !268, retainedNodes: !450) +// CHECK:STDOUT: !441 = !DILocalVariable(arg: 1, scope: !440, type: !35) +// CHECK:STDOUT: !442 = !DILocalVariable(arg: 2, scope: !440, type: !35) +// CHECK:STDOUT: !448 = !DILocation(line: 50, column: 48, scope: !440) +// CHECK:STDOUT: !449 = !DILocation(line: 50, column: 1, scope: !440) +// CHECK:STDOUT: !450 = !{!441, !442} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'mixed_shift.carbon' // CHECK:STDOUT: source_filename = "mixed_shift.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestLeftShiftSmaller.Main(i32 %a, i16 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CTestLeftShiftSmaller.Main(i32 %a, i16 %b) #0 !dbg !465 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShiftSmaller.call.rhs = zext i16 %b to i32, !dbg !12 -// CHECK:STDOUT: %LeftShiftSmaller.call = shl i32 %a, %LeftShiftSmaller.call.rhs, !dbg !12 -// CHECK:STDOUT: ret i32 %LeftShiftSmaller.call, !dbg !13 +// CHECK:STDOUT: %LeftShiftSmaller.call.rhs = zext i16 %b to i32, !dbg !474 +// CHECK:STDOUT: %LeftShiftSmaller.call = shl i32 %a, %LeftShiftSmaller.call.rhs, !dbg !474 +// CHECK:STDOUT: ret i32 %LeftShiftSmaller.call, !dbg !475 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestRightShiftSmaller.Main(i32 %a, i16 %b) #0 !dbg !14 { +// CHECK:STDOUT: define i32 @_CTestRightShiftSmaller.Main(i32 %a, i16 %b) #0 !dbg !477 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %RightShiftSmaller.call.rhs = zext i16 %b to i32, !dbg !18 -// CHECK:STDOUT: %RightShiftSmaller.call = ashr i32 %a, %RightShiftSmaller.call.rhs, !dbg !18 -// CHECK:STDOUT: ret i32 %RightShiftSmaller.call, !dbg !19 +// CHECK:STDOUT: %RightShiftSmaller.call.rhs = zext i16 %b to i32, !dbg !486 +// CHECK:STDOUT: %RightShiftSmaller.call = ashr i32 %a, %RightShiftSmaller.call.rhs, !dbg !486 +// CHECK:STDOUT: ret i32 %RightShiftSmaller.call, !dbg !487 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerII.Main(i16 %a, i32 %b) #0 !dbg !20 { +// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerII.Main(i16 %a, i32 %b) #0 !dbg !489 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShiftLargerII.call.rhs = trunc i32 %b to i16, !dbg !26 -// CHECK:STDOUT: %LeftShiftLargerII.call = shl i16 %a, %LeftShiftLargerII.call.rhs, !dbg !26 -// CHECK:STDOUT: ret i16 %LeftShiftLargerII.call, !dbg !27 +// CHECK:STDOUT: %LeftShiftLargerII.call.rhs = trunc i32 %b to i16, !dbg !498 +// CHECK:STDOUT: %LeftShiftLargerII.call = shl i16 %a, %LeftShiftLargerII.call.rhs, !dbg !498 +// CHECK:STDOUT: ret i16 %LeftShiftLargerII.call, !dbg !499 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestRightShiftLargerII.Main(i16 %a, i32 %b) #0 !dbg !28 { +// CHECK:STDOUT: define i16 @_CTestRightShiftLargerII.Main(i16 %a, i32 %b) #0 !dbg !501 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %RightShiftLargerII.call.rhs = trunc i32 %b to i16, !dbg !32 -// CHECK:STDOUT: %RightShiftLargerII.call = ashr i16 %a, %RightShiftLargerII.call.rhs, !dbg !32 -// CHECK:STDOUT: ret i16 %RightShiftLargerII.call, !dbg !33 +// CHECK:STDOUT: %RightShiftLargerII.call.rhs = trunc i32 %b to i16, !dbg !510 +// CHECK:STDOUT: %RightShiftLargerII.call = ashr i16 %a, %RightShiftLargerII.call.rhs, !dbg !510 +// CHECK:STDOUT: ret i16 %RightShiftLargerII.call, !dbg !511 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerIU.Main(i16 %a, i32 %b) #0 !dbg !34 { +// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerIU.Main(i16 %a, i32 %b) #0 !dbg !513 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShiftLargerIU.call.rhs = trunc i32 %b to i16, !dbg !41 -// CHECK:STDOUT: %LeftShiftLargerIU.call = shl i16 %a, %LeftShiftLargerIU.call.rhs, !dbg !41 -// CHECK:STDOUT: ret i16 %LeftShiftLargerIU.call, !dbg !42 +// CHECK:STDOUT: %LeftShiftLargerIU.call.rhs = trunc i32 %b to i16, !dbg !522 +// CHECK:STDOUT: %LeftShiftLargerIU.call = shl i16 %a, %LeftShiftLargerIU.call.rhs, !dbg !522 +// CHECK:STDOUT: ret i16 %LeftShiftLargerIU.call, !dbg !523 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestRightShiftLargerIU.Main(i16 %a, i32 %b) #0 !dbg !43 { +// CHECK:STDOUT: define i16 @_CTestRightShiftLargerIU.Main(i16 %a, i32 %b) #0 !dbg !525 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %RightShiftLargerIU.call.rhs = trunc i32 %b to i16, !dbg !47 -// CHECK:STDOUT: %RightShiftLargerIU.call = ashr i16 %a, %RightShiftLargerIU.call.rhs, !dbg !47 -// CHECK:STDOUT: ret i16 %RightShiftLargerIU.call, !dbg !48 +// CHECK:STDOUT: %RightShiftLargerIU.call.rhs = trunc i32 %b to i16, !dbg !534 +// CHECK:STDOUT: %RightShiftLargerIU.call = ashr i16 %a, %RightShiftLargerIU.call.rhs, !dbg !534 +// CHECK:STDOUT: ret i16 %RightShiftLargerIU.call, !dbg !535 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerUI.Main(i16 %a, i32 %b) #0 !dbg !49 { +// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerUI.Main(i16 %a, i32 %b) #0 !dbg !537 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShiftLargerUI.call.rhs = trunc i32 %b to i16, !dbg !56 -// CHECK:STDOUT: %LeftShiftLargerUI.call = shl i16 %a, %LeftShiftLargerUI.call.rhs, !dbg !56 -// CHECK:STDOUT: ret i16 %LeftShiftLargerUI.call, !dbg !57 +// CHECK:STDOUT: %LeftShiftLargerUI.call.rhs = trunc i32 %b to i16, !dbg !546 +// CHECK:STDOUT: %LeftShiftLargerUI.call = shl i16 %a, %LeftShiftLargerUI.call.rhs, !dbg !546 +// CHECK:STDOUT: ret i16 %LeftShiftLargerUI.call, !dbg !547 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestRightShiftLargerUI.Main(i16 %a, i32 %b) #0 !dbg !58 { +// CHECK:STDOUT: define i16 @_CTestRightShiftLargerUI.Main(i16 %a, i32 %b) #0 !dbg !549 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %RightShiftLargerUI.call.rhs = trunc i32 %b to i16, !dbg !62 -// CHECK:STDOUT: %RightShiftLargerUI.call = lshr i16 %a, %RightShiftLargerUI.call.rhs, !dbg !62 -// CHECK:STDOUT: ret i16 %RightShiftLargerUI.call, !dbg !63 +// CHECK:STDOUT: %RightShiftLargerUI.call.rhs = trunc i32 %b to i16, !dbg !558 +// CHECK:STDOUT: %RightShiftLargerUI.call = lshr i16 %a, %RightShiftLargerUI.call.rhs, !dbg !558 +// CHECK:STDOUT: ret i16 %RightShiftLargerUI.call, !dbg !559 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerUU.Main(i16 %a, i32 %b) #0 !dbg !64 { +// CHECK:STDOUT: define i16 @_CTestLeftShiftLargerUU.Main(i16 %a, i32 %b) #0 !dbg !561 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShiftLargerUU.call.rhs = trunc i32 %b to i16, !dbg !70 -// CHECK:STDOUT: %LeftShiftLargerUU.call = shl i16 %a, %LeftShiftLargerUU.call.rhs, !dbg !70 -// CHECK:STDOUT: ret i16 %LeftShiftLargerUU.call, !dbg !71 +// CHECK:STDOUT: %LeftShiftLargerUU.call.rhs = trunc i32 %b to i16, !dbg !570 +// CHECK:STDOUT: %LeftShiftLargerUU.call = shl i16 %a, %LeftShiftLargerUU.call.rhs, !dbg !570 +// CHECK:STDOUT: ret i16 %LeftShiftLargerUU.call, !dbg !571 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestRightShiftLargerUU.Main(i16 %a, i32 %b) #0 !dbg !72 { +// CHECK:STDOUT: define i16 @_CTestRightShiftLargerUU.Main(i16 %a, i32 %b) #0 !dbg !573 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %RightShiftLargerUU.call.rhs = trunc i32 %b to i16, !dbg !76 -// CHECK:STDOUT: %RightShiftLargerUU.call = lshr i16 %a, %RightShiftLargerUU.call.rhs, !dbg !76 -// CHECK:STDOUT: ret i16 %RightShiftLargerUU.call, !dbg !77 +// CHECK:STDOUT: %RightShiftLargerUU.call.rhs = trunc i32 %b to i16, !dbg !582 +// CHECK:STDOUT: %RightShiftLargerUU.call = lshr i16 %a, %RightShiftLargerUU.call.rhs, !dbg !582 +// CHECK:STDOUT: ret i16 %RightShiftLargerUU.call, !dbg !583 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!452} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "mixed_shift.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestLeftShiftSmaller", linkageName: "_CTestLeftShiftSmaller.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !9 = !{!10, !11} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocalVariable(arg: 2, scope: !4, type: !8) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 57, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 5, column: 50, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "TestRightShiftSmaller", linkageName: "_CTestRightShiftSmaller.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !15 = !{!16, !17} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !14, type: !7) -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !14, type: !8) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 58, scope: !14) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 51, scope: !14) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "TestLeftShiftLargerII", linkageName: "_CTestLeftShiftLargerII.Main", scope: null, file: !1, line: 11, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{!8, !8, !7} -// CHECK:STDOUT: !23 = !{!24, !25} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !8) -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !20, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 11, column: 58, scope: !20) -// CHECK:STDOUT: !27 = !DILocation(line: 11, column: 51, scope: !20) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "TestRightShiftLargerII", linkageName: "_CTestRightShiftLargerII.Main", scope: null, file: !1, line: 14, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !8) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !28, type: !7) -// CHECK:STDOUT: !32 = !DILocation(line: 14, column: 59, scope: !28) -// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 52, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "TestLeftShiftLargerIU", linkageName: "_CTestLeftShiftLargerIU.Main", scope: null, file: !1, line: 17, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{!8, !8, !37} -// CHECK:STDOUT: !37 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !38 = !{!39, !40} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !34, type: !8) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !34, type: !37) -// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 58, scope: !34) -// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 51, scope: !34) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "TestRightShiftLargerIU", linkageName: "_CTestRightShiftLargerIU.Main", scope: null, file: !1, line: 20, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45, !46} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !8) -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 2, scope: !43, type: !37) -// CHECK:STDOUT: !47 = !DILocation(line: 20, column: 59, scope: !43) -// CHECK:STDOUT: !48 = !DILocation(line: 20, column: 52, scope: !43) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "TestLeftShiftLargerUI", linkageName: "_CTestLeftShiftLargerUI.Main", scope: null, file: !1, line: 23, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !53) -// CHECK:STDOUT: !50 = !DISubroutineType(types: !51) -// CHECK:STDOUT: !51 = !{!52, !52, !7} -// CHECK:STDOUT: !52 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !53 = !{!54, !55} -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !49, type: !52) -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 2, scope: !49, type: !7) -// CHECK:STDOUT: !56 = !DILocation(line: 23, column: 58, scope: !49) -// CHECK:STDOUT: !57 = !DILocation(line: 23, column: 51, scope: !49) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "TestRightShiftLargerUI", linkageName: "_CTestRightShiftLargerUI.Main", scope: null, file: !1, line: 26, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !59) -// CHECK:STDOUT: !59 = !{!60, !61} -// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !58, type: !52) -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 2, scope: !58, type: !7) -// CHECK:STDOUT: !62 = !DILocation(line: 26, column: 59, scope: !58) -// CHECK:STDOUT: !63 = !DILocation(line: 26, column: 52, scope: !58) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "TestLeftShiftLargerUU", linkageName: "_CTestLeftShiftLargerUU.Main", scope: null, file: !1, line: 29, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) -// CHECK:STDOUT: !65 = !DISubroutineType(types: !66) -// CHECK:STDOUT: !66 = !{!52, !52, !37} -// CHECK:STDOUT: !67 = !{!68, !69} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !64, type: !52) -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !64, type: !37) -// CHECK:STDOUT: !70 = !DILocation(line: 29, column: 58, scope: !64) -// CHECK:STDOUT: !71 = !DILocation(line: 29, column: 51, scope: !64) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "TestRightShiftLargerUU", linkageName: "_CTestRightShiftLargerUU.Main", scope: null, file: !1, line: 32, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !73) -// CHECK:STDOUT: !73 = !{!74, !75} -// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !52) -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 2, scope: !72, type: !37) -// CHECK:STDOUT: !76 = !DILocation(line: 32, column: 59, scope: !72) -// CHECK:STDOUT: !77 = !DILocation(line: 32, column: 52, scope: !72) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !451 = !DIFile(filename: "mixed_shift.carbon", directory: "") +// CHECK:STDOUT: !452 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !451, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !453 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !454 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !455 = !{!34, !34, !453} +// CHECK:STDOUT: !456 = !DISubroutineType(types: !455) +// CHECK:STDOUT: !457 = !{!453, !453, !34} +// CHECK:STDOUT: !458 = !DISubroutineType(types: !457) +// CHECK:STDOUT: !459 = !{!453, !453, !35} +// CHECK:STDOUT: !460 = !DISubroutineType(types: !459) +// CHECK:STDOUT: !461 = !{!454, !454, !34} +// CHECK:STDOUT: !462 = !DISubroutineType(types: !461) +// CHECK:STDOUT: !463 = !{!454, !454, !35} +// CHECK:STDOUT: !464 = !DISubroutineType(types: !463) +// CHECK:STDOUT: !465 = distinct !DISubprogram(name: "TestLeftShiftSmaller", linkageName: "_CTestLeftShiftSmaller.Main", scope: null, file: !451, line: 5, type: !456, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !476) +// CHECK:STDOUT: !466 = !DILocalVariable(arg: 1, scope: !465, type: !34) +// CHECK:STDOUT: !467 = !DILocalVariable(arg: 2, scope: !465, type: !453) +// CHECK:STDOUT: !474 = !DILocation(line: 5, column: 57, scope: !465) +// CHECK:STDOUT: !475 = !DILocation(line: 5, column: 50, scope: !465) +// CHECK:STDOUT: !476 = !{!466, !467} +// CHECK:STDOUT: !477 = distinct !DISubprogram(name: "TestRightShiftSmaller", linkageName: "_CTestRightShiftSmaller.Main", scope: null, file: !451, line: 8, type: !456, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !488) +// CHECK:STDOUT: !478 = !DILocalVariable(arg: 1, scope: !477, type: !34) +// CHECK:STDOUT: !479 = !DILocalVariable(arg: 2, scope: !477, type: !453) +// CHECK:STDOUT: !486 = !DILocation(line: 8, column: 58, scope: !477) +// CHECK:STDOUT: !487 = !DILocation(line: 8, column: 51, scope: !477) +// CHECK:STDOUT: !488 = !{!478, !479} +// CHECK:STDOUT: !489 = distinct !DISubprogram(name: "TestLeftShiftLargerII", linkageName: "_CTestLeftShiftLargerII.Main", scope: null, file: !451, line: 11, type: !458, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !500) +// CHECK:STDOUT: !490 = !DILocalVariable(arg: 1, scope: !489, type: !453) +// CHECK:STDOUT: !491 = !DILocalVariable(arg: 2, scope: !489, type: !34) +// CHECK:STDOUT: !498 = !DILocation(line: 11, column: 58, scope: !489) +// CHECK:STDOUT: !499 = !DILocation(line: 11, column: 51, scope: !489) +// CHECK:STDOUT: !500 = !{!490, !491} +// CHECK:STDOUT: !501 = distinct !DISubprogram(name: "TestRightShiftLargerII", linkageName: "_CTestRightShiftLargerII.Main", scope: null, file: !451, line: 14, type: !458, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !512) +// CHECK:STDOUT: !502 = !DILocalVariable(arg: 1, scope: !501, type: !453) +// CHECK:STDOUT: !503 = !DILocalVariable(arg: 2, scope: !501, type: !34) +// CHECK:STDOUT: !510 = !DILocation(line: 14, column: 59, scope: !501) +// CHECK:STDOUT: !511 = !DILocation(line: 14, column: 52, scope: !501) +// CHECK:STDOUT: !512 = !{!502, !503} +// CHECK:STDOUT: !513 = distinct !DISubprogram(name: "TestLeftShiftLargerIU", linkageName: "_CTestLeftShiftLargerIU.Main", scope: null, file: !451, line: 17, type: !460, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !524) +// CHECK:STDOUT: !514 = !DILocalVariable(arg: 1, scope: !513, type: !453) +// CHECK:STDOUT: !515 = !DILocalVariable(arg: 2, scope: !513, type: !35) +// CHECK:STDOUT: !522 = !DILocation(line: 17, column: 58, scope: !513) +// CHECK:STDOUT: !523 = !DILocation(line: 17, column: 51, scope: !513) +// CHECK:STDOUT: !524 = !{!514, !515} +// CHECK:STDOUT: !525 = distinct !DISubprogram(name: "TestRightShiftLargerIU", linkageName: "_CTestRightShiftLargerIU.Main", scope: null, file: !451, line: 20, type: !460, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !536) +// CHECK:STDOUT: !526 = !DILocalVariable(arg: 1, scope: !525, type: !453) +// CHECK:STDOUT: !527 = !DILocalVariable(arg: 2, scope: !525, type: !35) +// CHECK:STDOUT: !534 = !DILocation(line: 20, column: 59, scope: !525) +// CHECK:STDOUT: !535 = !DILocation(line: 20, column: 52, scope: !525) +// CHECK:STDOUT: !536 = !{!526, !527} +// CHECK:STDOUT: !537 = distinct !DISubprogram(name: "TestLeftShiftLargerUI", linkageName: "_CTestLeftShiftLargerUI.Main", scope: null, file: !451, line: 23, type: !462, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !548) +// CHECK:STDOUT: !538 = !DILocalVariable(arg: 1, scope: !537, type: !454) +// CHECK:STDOUT: !539 = !DILocalVariable(arg: 2, scope: !537, type: !34) +// CHECK:STDOUT: !546 = !DILocation(line: 23, column: 58, scope: !537) +// CHECK:STDOUT: !547 = !DILocation(line: 23, column: 51, scope: !537) +// CHECK:STDOUT: !548 = !{!538, !539} +// CHECK:STDOUT: !549 = distinct !DISubprogram(name: "TestRightShiftLargerUI", linkageName: "_CTestRightShiftLargerUI.Main", scope: null, file: !451, line: 26, type: !462, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !560) +// CHECK:STDOUT: !550 = !DILocalVariable(arg: 1, scope: !549, type: !454) +// CHECK:STDOUT: !551 = !DILocalVariable(arg: 2, scope: !549, type: !34) +// CHECK:STDOUT: !558 = !DILocation(line: 26, column: 59, scope: !549) +// CHECK:STDOUT: !559 = !DILocation(line: 26, column: 52, scope: !549) +// CHECK:STDOUT: !560 = !{!550, !551} +// CHECK:STDOUT: !561 = distinct !DISubprogram(name: "TestLeftShiftLargerUU", linkageName: "_CTestLeftShiftLargerUU.Main", scope: null, file: !451, line: 29, type: !464, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !572) +// CHECK:STDOUT: !562 = !DILocalVariable(arg: 1, scope: !561, type: !454) +// CHECK:STDOUT: !563 = !DILocalVariable(arg: 2, scope: !561, type: !35) +// CHECK:STDOUT: !570 = !DILocation(line: 29, column: 58, scope: !561) +// CHECK:STDOUT: !571 = !DILocation(line: 29, column: 51, scope: !561) +// CHECK:STDOUT: !572 = !{!562, !563} +// CHECK:STDOUT: !573 = distinct !DISubprogram(name: "TestRightShiftLargerUU", linkageName: "_CTestRightShiftLargerUU.Main", scope: null, file: !451, line: 32, type: !464, spFlags: DISPFlagDefinition, unit: !452, retainedNodes: !584) +// CHECK:STDOUT: !574 = !DILocalVariable(arg: 1, scope: !573, type: !454) +// CHECK:STDOUT: !575 = !DILocalVariable(arg: 2, scope: !573, type: !35) +// CHECK:STDOUT: !582 = !DILocation(line: 32, column: 59, scope: !573) +// CHECK:STDOUT: !583 = !DILocation(line: 32, column: 52, scope: !573) +// CHECK:STDOUT: !584 = !{!574, !575} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'mixed_compare.carbon' // CHECK:STDOUT: source_filename = "mixed_compare.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq_u16_u32.Main(i16 %a, i32 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CTestEq_u16_u32.Main(i16 %a, i32 %b) #0 !dbg !597 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq_u16_u32.call.lhs = zext i16 %a to i32, !dbg !13 -// CHECK:STDOUT: %Eq_u16_u32.call = icmp eq i32 %Eq_u16_u32.call.lhs, %b, !dbg !13 -// CHECK:STDOUT: ret i1 %Eq_u16_u32.call, !dbg !14 +// CHECK:STDOUT: %Eq_u16_u32.call.lhs = zext i16 %a to i32, !dbg !606 +// CHECK:STDOUT: %Eq_u16_u32.call = icmp eq i32 %Eq_u16_u32.call.lhs, %b, !dbg !606 +// CHECK:STDOUT: ret i1 %Eq_u16_u32.call, !dbg !607 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq_i16_u32.Main(i16 %a, i32 %b) #0 !dbg !15 { +// CHECK:STDOUT: define i1 @_CTestEq_i16_u32.Main(i16 %a, i32 %b) #0 !dbg !609 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq_i16_u32.call.lhs = sext i16 %a to i33, !dbg !22 -// CHECK:STDOUT: %Eq_i16_u32.call.rhs = zext i32 %b to i33, !dbg !22 -// CHECK:STDOUT: %Eq_i16_u32.call = icmp eq i33 %Eq_i16_u32.call.lhs, %Eq_i16_u32.call.rhs, !dbg !22 -// CHECK:STDOUT: ret i1 %Eq_i16_u32.call, !dbg !23 +// CHECK:STDOUT: %Eq_i16_u32.call.lhs = sext i16 %a to i33, !dbg !618 +// CHECK:STDOUT: %Eq_i16_u32.call.rhs = zext i32 %b to i33, !dbg !618 +// CHECK:STDOUT: %Eq_i16_u32.call = icmp eq i33 %Eq_i16_u32.call.lhs, %Eq_i16_u32.call.rhs, !dbg !618 +// CHECK:STDOUT: ret i1 %Eq_i16_u32.call, !dbg !619 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq_u16_i32.Main(i16 %a, i32 %b) #0 !dbg !24 { +// CHECK:STDOUT: define i1 @_CTestEq_u16_i32.Main(i16 %a, i32 %b) #0 !dbg !621 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq_u16_i32.call.lhs = zext i16 %a to i32, !dbg !31 -// CHECK:STDOUT: %Eq_u16_i32.call = icmp eq i32 %Eq_u16_i32.call.lhs, %b, !dbg !31 -// CHECK:STDOUT: ret i1 %Eq_u16_i32.call, !dbg !32 +// CHECK:STDOUT: %Eq_u16_i32.call.lhs = zext i16 %a to i32, !dbg !630 +// CHECK:STDOUT: %Eq_u16_i32.call = icmp eq i32 %Eq_u16_i32.call.lhs, %b, !dbg !630 +// CHECK:STDOUT: ret i1 %Eq_u16_i32.call, !dbg !631 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq_i16_i32.Main(i16 %a, i32 %b) #0 !dbg !33 { +// CHECK:STDOUT: define i1 @_CTestEq_i16_i32.Main(i16 %a, i32 %b) #0 !dbg !633 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq_i16_i32.call.lhs = sext i16 %a to i32, !dbg !39 -// CHECK:STDOUT: %Eq_i16_i32.call = icmp eq i32 %Eq_i16_i32.call.lhs, %b, !dbg !39 -// CHECK:STDOUT: ret i1 %Eq_i16_i32.call, !dbg !40 +// CHECK:STDOUT: %Eq_i16_i32.call.lhs = sext i16 %a to i32, !dbg !642 +// CHECK:STDOUT: %Eq_i16_i32.call = icmp eq i32 %Eq_i16_i32.call.lhs, %b, !dbg !642 +// CHECK:STDOUT: ret i1 %Eq_i16_i32.call, !dbg !643 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq_i32_u32.Main(i32 %a, i32 %b) #0 !dbg !41 { +// CHECK:STDOUT: define i1 @_CTestEq_i32_u32.Main(i32 %a, i32 %b) #0 !dbg !645 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq_i32_u32.call.lhs = sext i32 %a to i33, !dbg !47 -// CHECK:STDOUT: %Eq_i32_u32.call.rhs = zext i32 %b to i33, !dbg !47 -// CHECK:STDOUT: %Eq_i32_u32.call = icmp eq i33 %Eq_i32_u32.call.lhs, %Eq_i32_u32.call.rhs, !dbg !47 -// CHECK:STDOUT: ret i1 %Eq_i32_u32.call, !dbg !48 +// CHECK:STDOUT: %Eq_i32_u32.call.lhs = sext i32 %a to i33, !dbg !654 +// CHECK:STDOUT: %Eq_i32_u32.call.rhs = zext i32 %b to i33, !dbg !654 +// CHECK:STDOUT: %Eq_i32_u32.call = icmp eq i33 %Eq_i32_u32.call.lhs, %Eq_i32_u32.call.rhs, !dbg !654 +// CHECK:STDOUT: ret i1 %Eq_i32_u32.call, !dbg !655 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess_u16_u32.Main(i16 %a, i32 %b) #0 !dbg !49 { +// CHECK:STDOUT: define i1 @_CTestLess_u16_u32.Main(i16 %a, i32 %b) #0 !dbg !657 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less_u16_u32.call.lhs = zext i16 %a to i32, !dbg !53 -// CHECK:STDOUT: %Less_u16_u32.call = icmp ult i32 %Less_u16_u32.call.lhs, %b, !dbg !53 -// CHECK:STDOUT: ret i1 %Less_u16_u32.call, !dbg !54 +// CHECK:STDOUT: %Less_u16_u32.call.lhs = zext i16 %a to i32, !dbg !666 +// CHECK:STDOUT: %Less_u16_u32.call = icmp ult i32 %Less_u16_u32.call.lhs, %b, !dbg !666 +// CHECK:STDOUT: ret i1 %Less_u16_u32.call, !dbg !667 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess_i16_u32.Main(i16 %a, i32 %b) #0 !dbg !55 { +// CHECK:STDOUT: define i1 @_CTestLess_i16_u32.Main(i16 %a, i32 %b) #0 !dbg !669 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less_i16_u32.call.lhs = sext i16 %a to i33, !dbg !59 -// CHECK:STDOUT: %Less_i16_u32.call.rhs = zext i32 %b to i33, !dbg !59 -// CHECK:STDOUT: %Less_i16_u32.call = icmp slt i33 %Less_i16_u32.call.lhs, %Less_i16_u32.call.rhs, !dbg !59 -// CHECK:STDOUT: ret i1 %Less_i16_u32.call, !dbg !60 +// CHECK:STDOUT: %Less_i16_u32.call.lhs = sext i16 %a to i33, !dbg !678 +// CHECK:STDOUT: %Less_i16_u32.call.rhs = zext i32 %b to i33, !dbg !678 +// CHECK:STDOUT: %Less_i16_u32.call = icmp slt i33 %Less_i16_u32.call.lhs, %Less_i16_u32.call.rhs, !dbg !678 +// CHECK:STDOUT: ret i1 %Less_i16_u32.call, !dbg !679 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess_u16_i32.Main(i16 %a, i32 %b) #0 !dbg !61 { +// CHECK:STDOUT: define i1 @_CTestLess_u16_i32.Main(i16 %a, i32 %b) #0 !dbg !681 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less_u16_i32.call.lhs = zext i16 %a to i32, !dbg !65 -// CHECK:STDOUT: %Less_u16_i32.call = icmp slt i32 %Less_u16_i32.call.lhs, %b, !dbg !65 -// CHECK:STDOUT: ret i1 %Less_u16_i32.call, !dbg !66 +// CHECK:STDOUT: %Less_u16_i32.call.lhs = zext i16 %a to i32, !dbg !690 +// CHECK:STDOUT: %Less_u16_i32.call = icmp slt i32 %Less_u16_i32.call.lhs, %b, !dbg !690 +// CHECK:STDOUT: ret i1 %Less_u16_i32.call, !dbg !691 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess_i16_i32.Main(i16 %a, i32 %b) #0 !dbg !67 { +// CHECK:STDOUT: define i1 @_CTestLess_i16_i32.Main(i16 %a, i32 %b) #0 !dbg !693 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less_i16_i32.call.lhs = sext i16 %a to i32, !dbg !71 -// CHECK:STDOUT: %Less_i16_i32.call = icmp slt i32 %Less_i16_i32.call.lhs, %b, !dbg !71 -// CHECK:STDOUT: ret i1 %Less_i16_i32.call, !dbg !72 +// CHECK:STDOUT: %Less_i16_i32.call.lhs = sext i16 %a to i32, !dbg !702 +// CHECK:STDOUT: %Less_i16_i32.call = icmp slt i32 %Less_i16_i32.call.lhs, %b, !dbg !702 +// CHECK:STDOUT: ret i1 %Less_i16_i32.call, !dbg !703 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess_i32_u32.Main(i32 %a, i32 %b) #0 !dbg !73 { +// CHECK:STDOUT: define i1 @_CTestLess_i32_u32.Main(i32 %a, i32 %b) #0 !dbg !705 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less_i32_u32.call.lhs = sext i32 %a to i33, !dbg !77 -// CHECK:STDOUT: %Less_i32_u32.call.rhs = zext i32 %b to i33, !dbg !77 -// CHECK:STDOUT: %Less_i32_u32.call = icmp slt i33 %Less_i32_u32.call.lhs, %Less_i32_u32.call.rhs, !dbg !77 -// CHECK:STDOUT: ret i1 %Less_i32_u32.call, !dbg !78 +// CHECK:STDOUT: %Less_i32_u32.call.lhs = sext i32 %a to i33, !dbg !714 +// CHECK:STDOUT: %Less_i32_u32.call.rhs = zext i32 %b to i33, !dbg !714 +// CHECK:STDOUT: %Less_i32_u32.call = icmp slt i33 %Less_i32_u32.call.lhs, %Less_i32_u32.call.rhs, !dbg !714 +// CHECK:STDOUT: ret i1 %Less_i32_u32.call, !dbg !715 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!586} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "mixed_compare.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestEq_u16_u32", linkageName: "_CTestEq_u16_u32.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !10) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8, !9} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !9 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !10 = !{!11, !12} -// CHECK:STDOUT: !11 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !12 = !DILocalVariable(arg: 2, scope: !4, type: !9) -// CHECK:STDOUT: !13 = !DILocation(line: 10, column: 52, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 10, column: 45, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "TestEq_i16_u32", linkageName: "_CTestEq_i16_u32.Main", scope: null, file: !1, line: 11, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{!7, !18, !9} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20, !21} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 2, scope: !15, type: !9) -// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 52, scope: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 45, scope: !15) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "TestEq_u16_i32", linkageName: "_CTestEq_u16_i32.Main", scope: null, file: !1, line: 12, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{!7, !8, !27} -// CHECK:STDOUT: !27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !28 = !{!29, !30} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !24, type: !8) -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 2, scope: !24, type: !27) -// CHECK:STDOUT: !31 = !DILocation(line: 12, column: 52, scope: !24) -// CHECK:STDOUT: !32 = !DILocation(line: 12, column: 45, scope: !24) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "TestEq_i16_i32", linkageName: "_CTestEq_i16_i32.Main", scope: null, file: !1, line: 13, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !34 = !DISubroutineType(types: !35) -// CHECK:STDOUT: !35 = !{!7, !18, !27} -// CHECK:STDOUT: !36 = !{!37, !38} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !33, type: !18) -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !33, type: !27) -// CHECK:STDOUT: !39 = !DILocation(line: 13, column: 52, scope: !33) -// CHECK:STDOUT: !40 = !DILocation(line: 13, column: 45, scope: !33) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "TestEq_i32_u32", linkageName: "_CTestEq_i32_u32.Main", scope: null, file: !1, line: 14, type: !42, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !42 = !DISubroutineType(types: !43) -// CHECK:STDOUT: !43 = !{!7, !27, !9} -// CHECK:STDOUT: !44 = !{!45, !46} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !41, type: !27) -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 2, scope: !41, type: !9) -// CHECK:STDOUT: !47 = !DILocation(line: 14, column: 52, scope: !41) -// CHECK:STDOUT: !48 = !DILocation(line: 14, column: 45, scope: !41) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "TestLess_u16_u32", linkageName: "_CTestLess_u16_u32.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51, !52} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !8) -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !9) -// CHECK:STDOUT: !53 = !DILocation(line: 22, column: 54, scope: !49) -// CHECK:STDOUT: !54 = !DILocation(line: 22, column: 47, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestLess_i16_u32", linkageName: "_CTestLess_i16_u32.Main", scope: null, file: !1, line: 23, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57, !58} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !18) -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 2, scope: !55, type: !9) -// CHECK:STDOUT: !59 = !DILocation(line: 23, column: 54, scope: !55) -// CHECK:STDOUT: !60 = !DILocation(line: 23, column: 47, scope: !55) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "TestLess_u16_i32", linkageName: "_CTestLess_u16_i32.Main", scope: null, file: !1, line: 24, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63, !64} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !8) -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !61, type: !27) -// CHECK:STDOUT: !65 = !DILocation(line: 24, column: 54, scope: !61) -// CHECK:STDOUT: !66 = !DILocation(line: 24, column: 47, scope: !61) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "TestLess_i16_i32", linkageName: "_CTestLess_i16_i32.Main", scope: null, file: !1, line: 25, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !68 = !{!69, !70} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !18) -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !67, type: !27) -// CHECK:STDOUT: !71 = !DILocation(line: 25, column: 54, scope: !67) -// CHECK:STDOUT: !72 = !DILocation(line: 25, column: 47, scope: !67) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "TestLess_i32_u32", linkageName: "_CTestLess_i32_u32.Main", scope: null, file: !1, line: 26, type: !42, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75, !76} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !27) -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !73, type: !9) -// CHECK:STDOUT: !77 = !DILocation(line: 26, column: 54, scope: !73) -// CHECK:STDOUT: !78 = !DILocation(line: 26, column: 47, scope: !73) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !42 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !453 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !454 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !585 = !DIFile(filename: "mixed_compare.carbon", directory: "") +// CHECK:STDOUT: !586 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !585, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !587 = !{!42, !454, !35} +// CHECK:STDOUT: !588 = !DISubroutineType(types: !587) +// CHECK:STDOUT: !589 = !{!42, !453, !35} +// CHECK:STDOUT: !590 = !DISubroutineType(types: !589) +// CHECK:STDOUT: !591 = !{!42, !454, !34} +// CHECK:STDOUT: !592 = !DISubroutineType(types: !591) +// CHECK:STDOUT: !593 = !{!42, !453, !34} +// CHECK:STDOUT: !594 = !DISubroutineType(types: !593) +// CHECK:STDOUT: !595 = !{!42, !34, !35} +// CHECK:STDOUT: !596 = !DISubroutineType(types: !595) +// CHECK:STDOUT: !597 = distinct !DISubprogram(name: "TestEq_u16_u32", linkageName: "_CTestEq_u16_u32.Main", scope: null, file: !585, line: 10, type: !588, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !608) +// CHECK:STDOUT: !598 = !DILocalVariable(arg: 1, scope: !597, type: !454) +// CHECK:STDOUT: !599 = !DILocalVariable(arg: 2, scope: !597, type: !35) +// CHECK:STDOUT: !606 = !DILocation(line: 10, column: 52, scope: !597) +// CHECK:STDOUT: !607 = !DILocation(line: 10, column: 45, scope: !597) +// CHECK:STDOUT: !608 = !{!598, !599} +// CHECK:STDOUT: !609 = distinct !DISubprogram(name: "TestEq_i16_u32", linkageName: "_CTestEq_i16_u32.Main", scope: null, file: !585, line: 11, type: !590, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !620) +// CHECK:STDOUT: !610 = !DILocalVariable(arg: 1, scope: !609, type: !453) +// CHECK:STDOUT: !611 = !DILocalVariable(arg: 2, scope: !609, type: !35) +// CHECK:STDOUT: !618 = !DILocation(line: 11, column: 52, scope: !609) +// CHECK:STDOUT: !619 = !DILocation(line: 11, column: 45, scope: !609) +// CHECK:STDOUT: !620 = !{!610, !611} +// CHECK:STDOUT: !621 = distinct !DISubprogram(name: "TestEq_u16_i32", linkageName: "_CTestEq_u16_i32.Main", scope: null, file: !585, line: 12, type: !592, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !632) +// CHECK:STDOUT: !622 = !DILocalVariable(arg: 1, scope: !621, type: !454) +// CHECK:STDOUT: !623 = !DILocalVariable(arg: 2, scope: !621, type: !34) +// CHECK:STDOUT: !630 = !DILocation(line: 12, column: 52, scope: !621) +// CHECK:STDOUT: !631 = !DILocation(line: 12, column: 45, scope: !621) +// CHECK:STDOUT: !632 = !{!622, !623} +// CHECK:STDOUT: !633 = distinct !DISubprogram(name: "TestEq_i16_i32", linkageName: "_CTestEq_i16_i32.Main", scope: null, file: !585, line: 13, type: !594, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !644) +// CHECK:STDOUT: !634 = !DILocalVariable(arg: 1, scope: !633, type: !453) +// CHECK:STDOUT: !635 = !DILocalVariable(arg: 2, scope: !633, type: !34) +// CHECK:STDOUT: !642 = !DILocation(line: 13, column: 52, scope: !633) +// CHECK:STDOUT: !643 = !DILocation(line: 13, column: 45, scope: !633) +// CHECK:STDOUT: !644 = !{!634, !635} +// CHECK:STDOUT: !645 = distinct !DISubprogram(name: "TestEq_i32_u32", linkageName: "_CTestEq_i32_u32.Main", scope: null, file: !585, line: 14, type: !596, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !656) +// CHECK:STDOUT: !646 = !DILocalVariable(arg: 1, scope: !645, type: !34) +// CHECK:STDOUT: !647 = !DILocalVariable(arg: 2, scope: !645, type: !35) +// CHECK:STDOUT: !654 = !DILocation(line: 14, column: 52, scope: !645) +// CHECK:STDOUT: !655 = !DILocation(line: 14, column: 45, scope: !645) +// CHECK:STDOUT: !656 = !{!646, !647} +// CHECK:STDOUT: !657 = distinct !DISubprogram(name: "TestLess_u16_u32", linkageName: "_CTestLess_u16_u32.Main", scope: null, file: !585, line: 22, type: !588, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !668) +// CHECK:STDOUT: !658 = !DILocalVariable(arg: 1, scope: !657, type: !454) +// CHECK:STDOUT: !659 = !DILocalVariable(arg: 2, scope: !657, type: !35) +// CHECK:STDOUT: !666 = !DILocation(line: 22, column: 54, scope: !657) +// CHECK:STDOUT: !667 = !DILocation(line: 22, column: 47, scope: !657) +// CHECK:STDOUT: !668 = !{!658, !659} +// CHECK:STDOUT: !669 = distinct !DISubprogram(name: "TestLess_i16_u32", linkageName: "_CTestLess_i16_u32.Main", scope: null, file: !585, line: 23, type: !590, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !680) +// CHECK:STDOUT: !670 = !DILocalVariable(arg: 1, scope: !669, type: !453) +// CHECK:STDOUT: !671 = !DILocalVariable(arg: 2, scope: !669, type: !35) +// CHECK:STDOUT: !678 = !DILocation(line: 23, column: 54, scope: !669) +// CHECK:STDOUT: !679 = !DILocation(line: 23, column: 47, scope: !669) +// CHECK:STDOUT: !680 = !{!670, !671} +// CHECK:STDOUT: !681 = distinct !DISubprogram(name: "TestLess_u16_i32", linkageName: "_CTestLess_u16_i32.Main", scope: null, file: !585, line: 24, type: !592, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !692) +// CHECK:STDOUT: !682 = !DILocalVariable(arg: 1, scope: !681, type: !454) +// CHECK:STDOUT: !683 = !DILocalVariable(arg: 2, scope: !681, type: !34) +// CHECK:STDOUT: !690 = !DILocation(line: 24, column: 54, scope: !681) +// CHECK:STDOUT: !691 = !DILocation(line: 24, column: 47, scope: !681) +// CHECK:STDOUT: !692 = !{!682, !683} +// CHECK:STDOUT: !693 = distinct !DISubprogram(name: "TestLess_i16_i32", linkageName: "_CTestLess_i16_i32.Main", scope: null, file: !585, line: 25, type: !594, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !704) +// CHECK:STDOUT: !694 = !DILocalVariable(arg: 1, scope: !693, type: !453) +// CHECK:STDOUT: !695 = !DILocalVariable(arg: 2, scope: !693, type: !34) +// CHECK:STDOUT: !702 = !DILocation(line: 25, column: 54, scope: !693) +// CHECK:STDOUT: !703 = !DILocation(line: 25, column: 47, scope: !693) +// CHECK:STDOUT: !704 = !{!694, !695} +// CHECK:STDOUT: !705 = distinct !DISubprogram(name: "TestLess_i32_u32", linkageName: "_CTestLess_i32_u32.Main", scope: null, file: !585, line: 26, type: !596, spFlags: DISPFlagDefinition, unit: !586, retainedNodes: !716) +// CHECK:STDOUT: !706 = !DILocalVariable(arg: 1, scope: !705, type: !34) +// CHECK:STDOUT: !707 = !DILocalVariable(arg: 2, scope: !705, type: !35) +// CHECK:STDOUT: !714 = !DILocation(line: 26, column: 54, scope: !705) +// CHECK:STDOUT: !715 = !DILocation(line: 26, column: 47, scope: !705) +// CHECK:STDOUT: !716 = !{!706, !707} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'convert.carbon' // CHECK:STDOUT: source_filename = "convert.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestInt32ToInt32.Main(i32 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CTestInt32ToInt32.Main(i32 %a) #0 !dbg !742 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !10 +// CHECK:STDOUT: ret i32 %a, !dbg !749 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestInt32ToUint32.Main(i32 %a) #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CTestInt32ToUint32.Main(i32 %a) #0 !dbg !751 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !17 +// CHECK:STDOUT: ret i32 %a, !dbg !758 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestUint32ToInt32.Main(i32 %a) #0 !dbg !18 { +// CHECK:STDOUT: define i32 @_CTestUint32ToInt32.Main(i32 %a) #0 !dbg !760 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !23 +// CHECK:STDOUT: ret i32 %a, !dbg !767 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestUint32ToUint32.Main(i32 %a) #0 !dbg !24 { +// CHECK:STDOUT: define i32 @_CTestUint32ToUint32.Main(i32 %a) #0 !dbg !769 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !29 +// CHECK:STDOUT: ret i32 %a, !dbg !776 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestInt32ToInt16.Main(i32 %a) #0 !dbg !30 { +// CHECK:STDOUT: define i16 @_CTestInt32ToInt16.Main(i32 %a) #0 !dbg !778 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int32ToInt16.call = trunc i32 %a to i16, !dbg !36 -// CHECK:STDOUT: ret i16 %Int32ToInt16.call, !dbg !37 +// CHECK:STDOUT: %Int32ToInt16.call = trunc i32 %a to i16, !dbg !784 +// CHECK:STDOUT: ret i16 %Int32ToInt16.call, !dbg !785 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestInt32ToUint16.Main(i32 %a) #0 !dbg !38 { +// CHECK:STDOUT: define i16 @_CTestInt32ToUint16.Main(i32 %a) #0 !dbg !787 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int32ToUint16.call = trunc i32 %a to i16, !dbg !44 -// CHECK:STDOUT: ret i16 %Int32ToUint16.call, !dbg !45 +// CHECK:STDOUT: %Int32ToUint16.call = trunc i32 %a to i16, !dbg !793 +// CHECK:STDOUT: ret i16 %Int32ToUint16.call, !dbg !794 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestUint32ToInt16.Main(i32 %a) #0 !dbg !46 { +// CHECK:STDOUT: define i16 @_CTestUint32ToInt16.Main(i32 %a) #0 !dbg !796 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Uint32ToInt16.call = trunc i32 %a to i16, !dbg !51 -// CHECK:STDOUT: ret i16 %Uint32ToInt16.call, !dbg !52 +// CHECK:STDOUT: %Uint32ToInt16.call = trunc i32 %a to i16, !dbg !802 +// CHECK:STDOUT: ret i16 %Uint32ToInt16.call, !dbg !803 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CTestUint32ToUint16.Main(i32 %a) #0 !dbg !53 { +// CHECK:STDOUT: define i16 @_CTestUint32ToUint16.Main(i32 %a) #0 !dbg !805 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Uint32ToUint16.call = trunc i32 %a to i16, !dbg !58 -// CHECK:STDOUT: ret i16 %Uint32ToUint16.call, !dbg !59 +// CHECK:STDOUT: %Uint32ToUint16.call = trunc i32 %a to i16, !dbg !811 +// CHECK:STDOUT: ret i16 %Uint32ToUint16.call, !dbg !812 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestInt32ToInt64.Main(i32 %a) #0 !dbg !60 { +// CHECK:STDOUT: define i64 @_CTestInt32ToInt64.Main(i32 %a) #0 !dbg !814 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int32ToInt64.call = sext i32 %a to i64, !dbg !66 -// CHECK:STDOUT: ret i64 %Int32ToInt64.call, !dbg !67 +// CHECK:STDOUT: %Int32ToInt64.call = sext i32 %a to i64, !dbg !820 +// CHECK:STDOUT: ret i64 %Int32ToInt64.call, !dbg !821 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestInt32ToUint64.Main(i32 %a) #0 !dbg !68 { +// CHECK:STDOUT: define i64 @_CTestInt32ToUint64.Main(i32 %a) #0 !dbg !823 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int32ToUint64.call = sext i32 %a to i64, !dbg !74 -// CHECK:STDOUT: ret i64 %Int32ToUint64.call, !dbg !75 +// CHECK:STDOUT: %Int32ToUint64.call = sext i32 %a to i64, !dbg !829 +// CHECK:STDOUT: ret i64 %Int32ToUint64.call, !dbg !830 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestUint32ToInt64.Main(i32 %a) #0 !dbg !76 { +// CHECK:STDOUT: define i64 @_CTestUint32ToInt64.Main(i32 %a) #0 !dbg !832 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Uint32ToInt64.call = zext i32 %a to i64, !dbg !81 -// CHECK:STDOUT: ret i64 %Uint32ToInt64.call, !dbg !82 +// CHECK:STDOUT: %Uint32ToInt64.call = zext i32 %a to i64, !dbg !838 +// CHECK:STDOUT: ret i64 %Uint32ToInt64.call, !dbg !839 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestUint32ToUint64.Main(i32 %a) #0 !dbg !83 { +// CHECK:STDOUT: define i64 @_CTestUint32ToUint64.Main(i32 %a) #0 !dbg !841 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Uint32ToUint64.call = zext i32 %a to i64, !dbg !88 -// CHECK:STDOUT: ret i64 %Uint32ToUint64.call, !dbg !89 +// CHECK:STDOUT: %Uint32ToUint64.call = zext i32 %a to i64, !dbg !847 +// CHECK:STDOUT: ret i64 %Uint32ToUint64.call, !dbg !848 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!718} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestInt32ToInt32", linkageName: "_CTestInt32ToInt32.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 10, column: 38, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "TestInt32ToUint32", linkageName: "_CTestInt32ToUint32.Main", scope: null, file: !1, line: 11, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!14, !7} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 11, column: 39, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "TestUint32ToInt32", linkageName: "_CTestUint32ToInt32.Main", scope: null, file: !1, line: 12, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!7, !14} -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !14) -// CHECK:STDOUT: !23 = !DILocation(line: 12, column: 39, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "TestUint32ToUint32", linkageName: "_CTestUint32ToUint32.Main", scope: null, file: !1, line: 13, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{!14, !14} -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !24, type: !14) -// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 40, scope: !24) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "TestInt32ToInt16", linkageName: "_CTestInt32ToInt16.Main", scope: null, file: !1, line: 21, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!33, !7} -// CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !7) -// CHECK:STDOUT: !36 = !DILocation(line: 21, column: 45, scope: !30) -// CHECK:STDOUT: !37 = !DILocation(line: 21, column: 38, scope: !30) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "TestInt32ToUint16", linkageName: "_CTestInt32ToUint16.Main", scope: null, file: !1, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !39 = !DISubroutineType(types: !40) -// CHECK:STDOUT: !40 = !{!41, !7} -// CHECK:STDOUT: !41 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 22, column: 46, scope: !38) -// CHECK:STDOUT: !45 = !DILocation(line: 22, column: 39, scope: !38) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "TestUint32ToInt16", linkageName: "_CTestUint32ToInt16.Main", scope: null, file: !1, line: 23, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !47 = !DISubroutineType(types: !48) -// CHECK:STDOUT: !48 = !{!33, !14} -// CHECK:STDOUT: !49 = !{!50} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !46, type: !14) -// CHECK:STDOUT: !51 = !DILocation(line: 23, column: 46, scope: !46) -// CHECK:STDOUT: !52 = !DILocation(line: 23, column: 39, scope: !46) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "TestUint32ToUint16", linkageName: "_CTestUint32ToUint16.Main", scope: null, file: !1, line: 24, type: !54, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !54 = !DISubroutineType(types: !55) -// CHECK:STDOUT: !55 = !{!41, !14} -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !53, type: !14) -// CHECK:STDOUT: !58 = !DILocation(line: 24, column: 47, scope: !53) -// CHECK:STDOUT: !59 = !DILocation(line: 24, column: 40, scope: !53) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "TestInt32ToInt64", linkageName: "_CTestInt32ToInt64.Main", scope: null, file: !1, line: 32, type: !61, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !64) -// CHECK:STDOUT: !61 = !DISubroutineType(types: !62) -// CHECK:STDOUT: !62 = !{!63, !7} -// CHECK:STDOUT: !63 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !64 = !{!65} -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !60, type: !7) -// CHECK:STDOUT: !66 = !DILocation(line: 32, column: 45, scope: !60) -// CHECK:STDOUT: !67 = !DILocation(line: 32, column: 38, scope: !60) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "TestInt32ToUint64", linkageName: "_CTestInt32ToUint64.Main", scope: null, file: !1, line: 33, type: !69, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !69 = !DISubroutineType(types: !70) -// CHECK:STDOUT: !70 = !{!71, !7} -// CHECK:STDOUT: !71 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !72 = !{!73} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !68, type: !7) -// CHECK:STDOUT: !74 = !DILocation(line: 33, column: 46, scope: !68) -// CHECK:STDOUT: !75 = !DILocation(line: 33, column: 39, scope: !68) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "TestUint32ToInt64", linkageName: "_CTestUint32ToInt64.Main", scope: null, file: !1, line: 34, type: !77, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !79) -// CHECK:STDOUT: !77 = !DISubroutineType(types: !78) -// CHECK:STDOUT: !78 = !{!63, !14} -// CHECK:STDOUT: !79 = !{!80} -// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !76, type: !14) -// CHECK:STDOUT: !81 = !DILocation(line: 34, column: 46, scope: !76) -// CHECK:STDOUT: !82 = !DILocation(line: 34, column: 39, scope: !76) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "TestUint32ToUint64", linkageName: "_CTestUint32ToUint64.Main", scope: null, file: !1, line: 35, type: !84, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !86) -// CHECK:STDOUT: !84 = !DISubroutineType(types: !85) -// CHECK:STDOUT: !85 = !{!71, !14} -// CHECK:STDOUT: !86 = !{!87} -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !83, type: !14) -// CHECK:STDOUT: !88 = !DILocation(line: 35, column: 47, scope: !83) -// CHECK:STDOUT: !89 = !DILocation(line: 35, column: 40, scope: !83) +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !36 = !{!34, !34} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !453 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !454 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !717 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !718 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !717, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !719 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !720 = !{!35, !34} +// CHECK:STDOUT: !721 = !DISubroutineType(types: !720) +// CHECK:STDOUT: !722 = !{!34, !35} +// CHECK:STDOUT: !723 = !DISubroutineType(types: !722) +// CHECK:STDOUT: !724 = !{!35, !35} +// CHECK:STDOUT: !725 = !DISubroutineType(types: !724) +// CHECK:STDOUT: !726 = !{!453, !34} +// CHECK:STDOUT: !727 = !DISubroutineType(types: !726) +// CHECK:STDOUT: !728 = !{!454, !34} +// CHECK:STDOUT: !729 = !DISubroutineType(types: !728) +// CHECK:STDOUT: !730 = !{!453, !35} +// CHECK:STDOUT: !731 = !DISubroutineType(types: !730) +// CHECK:STDOUT: !732 = !{!454, !35} +// CHECK:STDOUT: !733 = !DISubroutineType(types: !732) +// CHECK:STDOUT: !734 = !{!719, !34} +// CHECK:STDOUT: !735 = !DISubroutineType(types: !734) +// CHECK:STDOUT: !736 = !{!17, !34} +// CHECK:STDOUT: !737 = !DISubroutineType(types: !736) +// CHECK:STDOUT: !738 = !{!719, !35} +// CHECK:STDOUT: !739 = !DISubroutineType(types: !738) +// CHECK:STDOUT: !740 = !{!17, !35} +// CHECK:STDOUT: !741 = !DISubroutineType(types: !740) +// CHECK:STDOUT: !742 = distinct !DISubprogram(name: "TestInt32ToInt32", linkageName: "_CTestInt32ToInt32.Main", scope: null, file: !717, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !750) +// CHECK:STDOUT: !743 = !DILocalVariable(arg: 1, scope: !742, type: !34) +// CHECK:STDOUT: !749 = !DILocation(line: 10, column: 38, scope: !742) +// CHECK:STDOUT: !750 = !{!743} +// CHECK:STDOUT: !751 = distinct !DISubprogram(name: "TestInt32ToUint32", linkageName: "_CTestInt32ToUint32.Main", scope: null, file: !717, line: 11, type: !721, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !759) +// CHECK:STDOUT: !752 = !DILocalVariable(arg: 1, scope: !751, type: !34) +// CHECK:STDOUT: !758 = !DILocation(line: 11, column: 39, scope: !751) +// CHECK:STDOUT: !759 = !{!752} +// CHECK:STDOUT: !760 = distinct !DISubprogram(name: "TestUint32ToInt32", linkageName: "_CTestUint32ToInt32.Main", scope: null, file: !717, line: 12, type: !723, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !768) +// CHECK:STDOUT: !761 = !DILocalVariable(arg: 1, scope: !760, type: !35) +// CHECK:STDOUT: !767 = !DILocation(line: 12, column: 39, scope: !760) +// CHECK:STDOUT: !768 = !{!761} +// CHECK:STDOUT: !769 = distinct !DISubprogram(name: "TestUint32ToUint32", linkageName: "_CTestUint32ToUint32.Main", scope: null, file: !717, line: 13, type: !725, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !777) +// CHECK:STDOUT: !770 = !DILocalVariable(arg: 1, scope: !769, type: !35) +// CHECK:STDOUT: !776 = !DILocation(line: 13, column: 40, scope: !769) +// CHECK:STDOUT: !777 = !{!770} +// CHECK:STDOUT: !778 = distinct !DISubprogram(name: "TestInt32ToInt16", linkageName: "_CTestInt32ToInt16.Main", scope: null, file: !717, line: 21, type: !727, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !786) +// CHECK:STDOUT: !779 = !DILocalVariable(arg: 1, scope: !778, type: !34) +// CHECK:STDOUT: !784 = !DILocation(line: 21, column: 45, scope: !778) +// CHECK:STDOUT: !785 = !DILocation(line: 21, column: 38, scope: !778) +// CHECK:STDOUT: !786 = !{!779} +// CHECK:STDOUT: !787 = distinct !DISubprogram(name: "TestInt32ToUint16", linkageName: "_CTestInt32ToUint16.Main", scope: null, file: !717, line: 22, type: !729, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !795) +// CHECK:STDOUT: !788 = !DILocalVariable(arg: 1, scope: !787, type: !34) +// CHECK:STDOUT: !793 = !DILocation(line: 22, column: 46, scope: !787) +// CHECK:STDOUT: !794 = !DILocation(line: 22, column: 39, scope: !787) +// CHECK:STDOUT: !795 = !{!788} +// CHECK:STDOUT: !796 = distinct !DISubprogram(name: "TestUint32ToInt16", linkageName: "_CTestUint32ToInt16.Main", scope: null, file: !717, line: 23, type: !731, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !804) +// CHECK:STDOUT: !797 = !DILocalVariable(arg: 1, scope: !796, type: !35) +// CHECK:STDOUT: !802 = !DILocation(line: 23, column: 46, scope: !796) +// CHECK:STDOUT: !803 = !DILocation(line: 23, column: 39, scope: !796) +// CHECK:STDOUT: !804 = !{!797} +// CHECK:STDOUT: !805 = distinct !DISubprogram(name: "TestUint32ToUint16", linkageName: "_CTestUint32ToUint16.Main", scope: null, file: !717, line: 24, type: !733, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !813) +// CHECK:STDOUT: !806 = !DILocalVariable(arg: 1, scope: !805, type: !35) +// CHECK:STDOUT: !811 = !DILocation(line: 24, column: 47, scope: !805) +// CHECK:STDOUT: !812 = !DILocation(line: 24, column: 40, scope: !805) +// CHECK:STDOUT: !813 = !{!806} +// CHECK:STDOUT: !814 = distinct !DISubprogram(name: "TestInt32ToInt64", linkageName: "_CTestInt32ToInt64.Main", scope: null, file: !717, line: 32, type: !735, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !822) +// CHECK:STDOUT: !815 = !DILocalVariable(arg: 1, scope: !814, type: !34) +// CHECK:STDOUT: !820 = !DILocation(line: 32, column: 45, scope: !814) +// CHECK:STDOUT: !821 = !DILocation(line: 32, column: 38, scope: !814) +// CHECK:STDOUT: !822 = !{!815} +// CHECK:STDOUT: !823 = distinct !DISubprogram(name: "TestInt32ToUint64", linkageName: "_CTestInt32ToUint64.Main", scope: null, file: !717, line: 33, type: !737, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !831) +// CHECK:STDOUT: !824 = !DILocalVariable(arg: 1, scope: !823, type: !34) +// CHECK:STDOUT: !829 = !DILocation(line: 33, column: 46, scope: !823) +// CHECK:STDOUT: !830 = !DILocation(line: 33, column: 39, scope: !823) +// CHECK:STDOUT: !831 = !{!824} +// CHECK:STDOUT: !832 = distinct !DISubprogram(name: "TestUint32ToInt64", linkageName: "_CTestUint32ToInt64.Main", scope: null, file: !717, line: 34, type: !739, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !840) +// CHECK:STDOUT: !833 = !DILocalVariable(arg: 1, scope: !832, type: !35) +// CHECK:STDOUT: !838 = !DILocation(line: 34, column: 46, scope: !832) +// CHECK:STDOUT: !839 = !DILocation(line: 34, column: 39, scope: !832) +// CHECK:STDOUT: !840 = !{!833} +// CHECK:STDOUT: !841 = distinct !DISubprogram(name: "TestUint32ToUint64", linkageName: "_CTestUint32ToUint64.Main", scope: null, file: !717, line: 35, type: !741, spFlags: DISPFlagDefinition, unit: !718, retainedNodes: !849) +// CHECK:STDOUT: !842 = !DILocalVariable(arg: 1, scope: !841, type: !35) +// CHECK:STDOUT: !847 = !DILocation(line: 35, column: 47, scope: !841) +// CHECK:STDOUT: !848 = !DILocation(line: 35, column: 40, scope: !841) +// CHECK:STDOUT: !849 = !{!842} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/int_literal.carbon b/toolchain/lower/testdata/builtins/int_literal.carbon index e83997dba785..01cdcffe11c9 100644 --- a/toolchain/lower/testdata/builtins/int_literal.carbon +++ b/toolchain/lower/testdata/builtins/int_literal.carbon @@ -33,52 +33,52 @@ fn IntMin() -> i32 { // CHECK:STDOUT: source_filename = "int_literal.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define {} @_CCopy.Main({} %x) #0 !dbg !4 { +// CHECK:STDOUT: define {} @_CCopy.Main({} %x) #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret {} %x, !dbg !10 +// CHECK:STDOUT: ret {} %x, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMinusOne.Main() #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CMinusOne.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 -1, !dbg !15 +// CHECK:STDOUT: ret i32 -1, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CIntMax.Main() #0 !dbg !16 { +// CHECK:STDOUT: define i32 @_CIntMax.Main() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 2147483647, !dbg !17 +// CHECK:STDOUT: ret i32 2147483647, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CIntMin.Main() #0 !dbg !18 { +// CHECK:STDOUT: define i32 @_CIntMin.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 -2147483648, !dbg !19 +// CHECK:STDOUT: ret i32 -2147483648, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "int_literal.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} +// CHECK:STDOUT: !4 = !DIFile(filename: "int_literal.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "MinusOne", linkageName: "_CMinusOne.Main", scope: null, file: !1, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !DILocation(line: 20, column: 3, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "IntMax", linkageName: "_CIntMax.Main", scope: null, file: !1, line: 23, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DILocation(line: 24, column: 3, scope: !16) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "IntMin", linkageName: "_CIntMin.Main", scope: null, file: !1, line: 27, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DILocation(line: 28, column: 3, scope: !18) +// CHECK:STDOUT: !8 = !{!7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{!6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !19) +// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !12, type: !7) +// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) +// CHECK:STDOUT: !19 = !{!13} +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "MinusOne", linkageName: "_CMinusOne.Main", scope: null, file: !4, line: 19, type: !11, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !23 = !DILocation(line: 20, column: 3, scope: !20) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "IntMax", linkageName: "_CIntMax.Main", scope: null, file: !4, line: 23, type: !11, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !27 = !DILocation(line: 24, column: 3, scope: !24) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "IntMin", linkageName: "_CIntMin.Main", scope: null, file: !4, line: 27, type: !11, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !31 = !DILocation(line: 28, column: 3, scope: !28) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/int_to_float.carbon b/toolchain/lower/testdata/builtins/int_to_float.carbon index bdcef6f69204..3128c15023e4 100644 --- a/toolchain/lower/testdata/builtins/int_to_float.carbon +++ b/toolchain/lower/testdata/builtins/int_to_float.carbon @@ -36,97 +36,97 @@ fn TestConvertU64ToF128(a: u64) -> f128 { return ConvertU64ToF128(a); } // CHECK:STDOUT: source_filename = "int_to_float.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define float @_CTestConvertI32ToF32.Main(i32 %a) #0 !dbg !4 { +// CHECK:STDOUT: define float @_CTestConvertI32ToF32.Main(i32 %a) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertI32ToF32.call = sitofp i32 %a to float, !dbg !11 -// CHECK:STDOUT: ret float %ConvertI32ToF32.call, !dbg !12 +// CHECK:STDOUT: %ConvertI32ToF32.call = sitofp i32 %a to float, !dbg !52 +// CHECK:STDOUT: ret float %ConvertI32ToF32.call, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define float @_CTestConvertU32ToF32.Main(i32 %a) #0 !dbg !13 { +// CHECK:STDOUT: define float @_CTestConvertU32ToF32.Main(i32 %a) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertU32ToF32.call = uitofp i32 %a to float, !dbg !19 -// CHECK:STDOUT: ret float %ConvertU32ToF32.call, !dbg !20 +// CHECK:STDOUT: %ConvertU32ToF32.call = uitofp i32 %a to float, !dbg !61 +// CHECK:STDOUT: ret float %ConvertU32ToF32.call, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestConvertI32ToF64.Main(i32 %a) #0 !dbg !21 { +// CHECK:STDOUT: define double @_CTestConvertI32ToF64.Main(i32 %a) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertI32ToF64.call = sitofp i32 %a to double, !dbg !24 -// CHECK:STDOUT: ret double %ConvertI32ToF64.call, !dbg !25 +// CHECK:STDOUT: %ConvertI32ToF64.call = sitofp i32 %a to double, !dbg !70 +// CHECK:STDOUT: ret double %ConvertI32ToF64.call, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define double @_CTestConvertU32ToF64.Main(i32 %a) #0 !dbg !26 { +// CHECK:STDOUT: define double @_CTestConvertU32ToF64.Main(i32 %a) #0 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertU32ToF64.call = uitofp i32 %a to double, !dbg !29 -// CHECK:STDOUT: ret double %ConvertU32ToF64.call, !dbg !30 +// CHECK:STDOUT: %ConvertU32ToF64.call = uitofp i32 %a to double, !dbg !79 +// CHECK:STDOUT: ret double %ConvertU32ToF64.call, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define fp128 @_CTestConvertI64ToF128.Main(i64 %a) #0 !dbg !31 { +// CHECK:STDOUT: define fp128 @_CTestConvertI64ToF128.Main(i64 %a) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertI64ToF128.call = sitofp i64 %a to fp128, !dbg !37 -// CHECK:STDOUT: ret fp128 %ConvertI64ToF128.call, !dbg !38 +// CHECK:STDOUT: %ConvertI64ToF128.call = sitofp i64 %a to fp128, !dbg !88 +// CHECK:STDOUT: ret fp128 %ConvertI64ToF128.call, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define fp128 @_CTestConvertU64ToF128.Main(i64 %a) #0 !dbg !39 { +// CHECK:STDOUT: define fp128 @_CTestConvertU64ToF128.Main(i64 %a) #0 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ConvertU64ToF128.call = uitofp i64 %a to fp128, !dbg !45 -// CHECK:STDOUT: ret fp128 %ConvertU64ToF128.call, !dbg !46 +// CHECK:STDOUT: %ConvertU64ToF128.call = uitofp i64 %a to fp128, !dbg !97 +// CHECK:STDOUT: ret fp128 %ConvertU64ToF128.call, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "int_to_float.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestConvertI32ToF32", linkageName: "_CTestConvertI32ToF32.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 4, column: 48, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 4, column: 41, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestConvertU32ToF32", linkageName: "_CTestConvertU32ToF32.Main", scope: null, file: !1, line: 7, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!7, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 48, scope: !13) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 41, scope: !13) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "TestConvertI32ToF64", linkageName: "_CTestConvertI32ToF64.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !8) -// CHECK:STDOUT: !24 = !DILocation(line: 10, column: 48, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 10, column: 41, scope: !21) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "TestConvertU32ToF64", linkageName: "_CTestConvertU32ToF64.Main", scope: null, file: !1, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !16) -// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 48, scope: !26) -// CHECK:STDOUT: !30 = !DILocation(line: 13, column: 41, scope: !26) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "TestConvertI64ToF128", linkageName: "_CTestConvertI64ToF128.Main", scope: null, file: !1, line: 16, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !32 = !DISubroutineType(types: !33) -// CHECK:STDOUT: !33 = !{!7, !34} -// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !31, type: !34) -// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 50, scope: !31) -// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 43, scope: !31) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "TestConvertU64ToF128", linkageName: "_CTestConvertU64ToF128.Main", scope: null, file: !1, line: 19, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{!7, !42} -// CHECK:STDOUT: !42 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !39, type: !42) -// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 50, scope: !39) -// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 43, scope: !39) +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !32 = !DIFile(filename: "int_to_float.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !36 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{!37, !34} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{!37, !35} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !{!37, !36} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = !{!37, !17} +// CHECK:STDOUT: !45 = !DISubroutineType(types: !44) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "TestConvertI32ToF32", linkageName: "_CTestConvertI32ToF32.Main", scope: null, file: !32, line: 4, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !34) +// CHECK:STDOUT: !52 = !DILocation(line: 4, column: 48, scope: !46) +// CHECK:STDOUT: !53 = !DILocation(line: 4, column: 41, scope: !46) +// CHECK:STDOUT: !54 = !{!47} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestConvertU32ToF32", linkageName: "_CTestConvertU32ToF32.Main", scope: null, file: !32, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !63) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !35) +// CHECK:STDOUT: !61 = !DILocation(line: 7, column: 48, scope: !55) +// CHECK:STDOUT: !62 = !DILocation(line: 7, column: 41, scope: !55) +// CHECK:STDOUT: !63 = !{!56} +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "TestConvertI32ToF64", linkageName: "_CTestConvertI32ToF64.Main", scope: null, file: !32, line: 10, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !34) +// CHECK:STDOUT: !70 = !DILocation(line: 10, column: 48, scope: !64) +// CHECK:STDOUT: !71 = !DILocation(line: 10, column: 41, scope: !64) +// CHECK:STDOUT: !72 = !{!65} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "TestConvertU32ToF64", linkageName: "_CTestConvertU32ToF64.Main", scope: null, file: !32, line: 13, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !81) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !35) +// CHECK:STDOUT: !79 = !DILocation(line: 13, column: 48, scope: !73) +// CHECK:STDOUT: !80 = !DILocation(line: 13, column: 41, scope: !73) +// CHECK:STDOUT: !81 = !{!74} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "TestConvertI64ToF128", linkageName: "_CTestConvertI64ToF128.Main", scope: null, file: !32, line: 16, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !90) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !36) +// CHECK:STDOUT: !88 = !DILocation(line: 16, column: 50, scope: !82) +// CHECK:STDOUT: !89 = !DILocation(line: 16, column: 43, scope: !82) +// CHECK:STDOUT: !90 = !{!83} +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "TestConvertU64ToF128", linkageName: "_CTestConvertU64ToF128.Main", scope: null, file: !32, line: 19, type: !45, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !99) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !17) +// CHECK:STDOUT: !97 = !DILocation(line: 19, column: 50, scope: !91) +// CHECK:STDOUT: !98 = !DILocation(line: 19, column: 43, scope: !91) +// CHECK:STDOUT: !99 = !{!92} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/maybe_unformed.carbon b/toolchain/lower/testdata/builtins/maybe_unformed.carbon index cf65a8d24344..eaa946f4b85f 100644 --- a/toolchain/lower/testdata/builtins/maybe_unformed.carbon +++ b/toolchain/lower/testdata/builtins/maybe_unformed.carbon @@ -60,115 +60,115 @@ fn PassAdapterBool() { // CHECK:STDOUT: source_filename = "maybe_unformed.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTakeI32.Main(i32 %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CTakeI32.Main(i32 %_) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @_CMakeI32.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTakeBool.Main(ptr %_) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CTakeBool.Main(ptr %_) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMakeBool.Main(ptr sret(i1)) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassI32.Main() #0 !dbg !18 { +// CHECK:STDOUT: define void @_CPassI32.Main() #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %MakeI32.call = call i32 @_CMakeI32.Main(), !dbg !21 -// CHECK:STDOUT: call void @_CTakeI32.Main(i32 %MakeI32.call), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: %MakeI32.call = call i32 @_CMakeI32.Main(), !dbg !57 +// CHECK:STDOUT: call void @_CTakeI32.Main(i32 %MakeI32.call), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassBool.Main() #0 !dbg !24 { +// CHECK:STDOUT: define void @_CPassBool.Main() #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc28_21.1.temp = alloca i1, align 1, !dbg !25 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc28_21.1.temp), !dbg !25 -// CHECK:STDOUT: call void @_CMakeBool.Main(ptr %.loc28_21.1.temp), !dbg !25 -// CHECK:STDOUT: call void @_CTakeBool.Main(ptr %.loc28_21.1.temp), !dbg !26 -// CHECK:STDOUT: call void @"_COp.c4089b4f1697e4a6:core.Destroy.Core"(ptr %.loc28_21.1.temp), !dbg !25 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: %.loc28_21.1.temp = alloca i1, align 1, !dbg !61 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc28_21.1.temp), !dbg !61 +// CHECK:STDOUT: call void @_CMakeBool.Main(ptr %.loc28_21.1.temp), !dbg !61 +// CHECK:STDOUT: call void @_CTakeBool.Main(ptr %.loc28_21.1.temp), !dbg !62 +// CHECK:STDOUT: call void @"_COp.c4089b4f1697e4a6:core.Destroy.Core"(ptr %.loc28_21.1.temp), !dbg !61 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c4089b4f1697e4a6:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.c4089b4f1697e4a6:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertBoolToUnformedBool.Main(ptr %b) #0 !dbg !32 { +// CHECK:STDOUT: define void @_CConvertBoolToUnformedBool.Main(ptr %b) #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CTakeBool.Main(ptr %b), !dbg !35 -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: call void @_CTakeBool.Main(ptr %b), !dbg !73 +// CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTakeAdapterI32.Main(i32 %_) #0 !dbg !37 { +// CHECK:STDOUT: define void @_CTakeAdapterI32.Main(i32 %_) #0 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @_CMakeAdapterI32.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassAdapterI32.Main() #0 !dbg !41 { +// CHECK:STDOUT: define void @_CPassAdapterI32.Main() #0 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc48_33.1.temp = alloca i32, align 4, !dbg !42 -// CHECK:STDOUT: %MakeAdapterI32.call = call i32 @_CMakeAdapterI32.Main(), !dbg !42 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc48_33.1.temp), !dbg !42 -// CHECK:STDOUT: store i32 %MakeAdapterI32.call, ptr %.loc48_33.1.temp, align 4, !dbg !42 -// CHECK:STDOUT: %.loc48_33.3 = load i32, ptr %.loc48_33.1.temp, align 4, !dbg !42 -// CHECK:STDOUT: call void @_CTakeAdapterI32.Main(i32 %.loc48_33.3), !dbg !43 -// CHECK:STDOUT: call void @"_COp.9d67511b0143461b:core.Destroy.Core"(ptr %.loc48_33.1.temp), !dbg !42 -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: %.loc48_33.1.temp = alloca i32, align 4, !dbg !82 +// CHECK:STDOUT: %MakeAdapterI32.call = call i32 @_CMakeAdapterI32.Main(), !dbg !82 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc48_33.1.temp), !dbg !82 +// CHECK:STDOUT: store i32 %MakeAdapterI32.call, ptr %.loc48_33.1.temp, align 4, !dbg !82 +// CHECK:STDOUT: %.loc48_33.3 = load i32, ptr %.loc48_33.1.temp, align 4, !dbg !82 +// CHECK:STDOUT: call void @_CTakeAdapterI32.Main(i32 %.loc48_33.3), !dbg !83 +// CHECK:STDOUT: call void @"_COp.9d67511b0143461b:core.Destroy.Core"(ptr %.loc48_33.1.temp), !dbg !82 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9d67511b0143461b:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.9d67511b0143461b:core.Destroy.Core"(ptr %self) #0 !dbg !93 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTakeAdapterBool.Main(ptr %_) #0 !dbg !57 { +// CHECK:STDOUT: define void @_CTakeAdapterBool.Main(ptr %_) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: ret void, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMakeAdapterBool.Main(ptr sret(i1)) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassAdapterBool.Main() #0 !dbg !61 { +// CHECK:STDOUT: define void @_CPassAdapterBool.Main() #0 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc55_35.1.temp = alloca i1, align 1, !dbg !62 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc55_35.1.temp), !dbg !62 -// CHECK:STDOUT: call void @_CMakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !62 -// CHECK:STDOUT: call void @_CTakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !63 -// CHECK:STDOUT: call void @"_COp.7fe843c0b66498d6:core.Destroy.Core"(ptr %.loc55_35.1.temp), !dbg !62 -// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: %.loc55_35.1.temp = alloca i1, align 1, !dbg !103 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc55_35.1.temp), !dbg !103 +// CHECK:STDOUT: call void @_CMakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !103 +// CHECK:STDOUT: call void @_CTakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !104 +// CHECK:STDOUT: call void @"_COp.7fe843c0b66498d6:core.Destroy.Core"(ptr %.loc55_35.1.temp), !dbg !103 +// CHECK:STDOUT: ret void, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7fe843c0b66498d6:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.7fe843c0b66498d6:core.Destroy.Core"(ptr %self) #0 !dbg !106 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -180,76 +180,76 @@ fn PassAdapterBool() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "maybe_unformed.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TakeI32", linkageName: "_CTakeI32.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "TakeBool", linkageName: "_CTakeBool.Main", scope: null, file: !1, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "PassI32", linkageName: "_CPassI32.Main", scope: null, file: !1, line: 21, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null} -// CHECK:STDOUT: !21 = !DILocation(line: 23, column: 11, scope: !18) -// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 3, scope: !18) -// CHECK:STDOUT: !23 = !DILocation(line: 21, column: 1, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "PassBool", linkageName: "_CPassBool.Main", scope: null, file: !1, line: 26, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !25 = !DILocation(line: 28, column: 12, scope: !24) -// CHECK:STDOUT: !26 = !DILocation(line: 28, column: 3, scope: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 26, column: 1, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c4089b4f1697e4a6:core.Destroy.Core", scope: null, file: !1, line: 28, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !14) -// CHECK:STDOUT: !31 = !DILocation(line: 28, column: 12, scope: !28) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "ConvertBoolToUnformedBool", linkageName: "_CConvertBoolToUnformedBool.Main", scope: null, file: !1, line: 31, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !14) -// CHECK:STDOUT: !35 = !DILocation(line: 32, column: 3, scope: !32) -// CHECK:STDOUT: !36 = !DILocation(line: 31, column: 1, scope: !32) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "TakeAdapterI32", linkageName: "_CTakeAdapterI32.Main", scope: null, file: !1, line: 42, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !7) -// CHECK:STDOUT: !40 = !DILocation(line: 42, column: 1, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "PassAdapterI32", linkageName: "_CPassAdapterI32.Main", scope: null, file: !1, line: 45, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !42 = !DILocation(line: 48, column: 18, scope: !41) -// CHECK:STDOUT: !43 = !DILocation(line: 48, column: 3, scope: !41) -// CHECK:STDOUT: !44 = !DILocation(line: 45, column: 1, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !7) -// CHECK:STDOUT: !48 = !DILocation(line: 48, column: 18, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !1, line: 48, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !14) -// CHECK:STDOUT: !52 = !DILocation(line: 48, column: 18, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9d67511b0143461b:core.Destroy.Core", scope: null, file: !1, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !7) -// CHECK:STDOUT: !56 = !DILocation(line: 48, column: 18, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "TakeAdapterBool", linkageName: "_CTakeAdapterBool.Main", scope: null, file: !1, line: 51, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !14) -// CHECK:STDOUT: !60 = !DILocation(line: 51, column: 1, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "PassAdapterBool", linkageName: "_CPassAdapterBool.Main", scope: null, file: !1, line: 54, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !62 = !DILocation(line: 55, column: 19, scope: !61) -// CHECK:STDOUT: !63 = !DILocation(line: 55, column: 3, scope: !61) -// CHECK:STDOUT: !64 = !DILocation(line: 54, column: 1, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7fe843c0b66498d6:core.Destroy.Core", scope: null, file: !1, line: 55, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !66) -// CHECK:STDOUT: !66 = !{!67} -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !14) -// CHECK:STDOUT: !68 = !DILocation(line: 55, column: 19, scope: !65) +// CHECK:STDOUT: !32 = !DIFile(filename: "maybe_unformed.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{null, !37} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !{null} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "TakeI32", linkageName: "_CTakeI32.Main", scope: null, file: !32, line: 15, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !50) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !34) +// CHECK:STDOUT: !49 = !DILocation(line: 15, column: 1, scope: !46) +// CHECK:STDOUT: !50 = !{!47} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "TakeBool", linkageName: "_CTakeBool.Main", scope: null, file: !32, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !55) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !37) +// CHECK:STDOUT: !54 = !DILocation(line: 18, column: 1, scope: !51) +// CHECK:STDOUT: !55 = !{!52} +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "PassI32", linkageName: "_CPassI32.Main", scope: null, file: !32, line: 21, type: !43, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !57 = !DILocation(line: 23, column: 11, scope: !56) +// CHECK:STDOUT: !58 = !DILocation(line: 23, column: 3, scope: !56) +// CHECK:STDOUT: !59 = !DILocation(line: 21, column: 1, scope: !56) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "PassBool", linkageName: "_CPassBool.Main", scope: null, file: !32, line: 26, type: !43, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !61 = !DILocation(line: 28, column: 12, scope: !60) +// CHECK:STDOUT: !62 = !DILocation(line: 28, column: 3, scope: !60) +// CHECK:STDOUT: !63 = !DILocation(line: 26, column: 1, scope: !60) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c4089b4f1697e4a6:core.Destroy.Core", scope: null, file: !32, line: 28, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !67) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !37) +// CHECK:STDOUT: !66 = !DILocation(line: 28, column: 12, scope: !64) +// CHECK:STDOUT: !67 = !{!65} +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "ConvertBoolToUnformedBool", linkageName: "_CConvertBoolToUnformedBool.Main", scope: null, file: !32, line: 31, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !75) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !37) +// CHECK:STDOUT: !73 = !DILocation(line: 32, column: 3, scope: !68) +// CHECK:STDOUT: !74 = !DILocation(line: 31, column: 1, scope: !68) +// CHECK:STDOUT: !75 = !{!69} +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "TakeAdapterI32", linkageName: "_CTakeAdapterI32.Main", scope: null, file: !32, line: 42, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !80) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !34) +// CHECK:STDOUT: !79 = !DILocation(line: 42, column: 1, scope: !76) +// CHECK:STDOUT: !80 = !{!77} +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "PassAdapterI32", linkageName: "_CPassAdapterI32.Main", scope: null, file: !32, line: 45, type: !43, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !82 = !DILocation(line: 48, column: 18, scope: !81) +// CHECK:STDOUT: !83 = !DILocation(line: 48, column: 3, scope: !81) +// CHECK:STDOUT: !84 = !DILocation(line: 45, column: 1, scope: !81) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 48, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !88) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !34) +// CHECK:STDOUT: !87 = !DILocation(line: 48, column: 18, scope: !85) +// CHECK:STDOUT: !88 = !{!86} +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !32, line: 48, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !92) +// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !89, type: !37) +// CHECK:STDOUT: !91 = !DILocation(line: 48, column: 18, scope: !89) +// CHECK:STDOUT: !92 = !{!90} +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9d67511b0143461b:core.Destroy.Core", scope: null, file: !32, line: 48, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !96) +// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !93, type: !34) +// CHECK:STDOUT: !95 = !DILocation(line: 48, column: 18, scope: !93) +// CHECK:STDOUT: !96 = !{!94} +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "TakeAdapterBool", linkageName: "_CTakeAdapterBool.Main", scope: null, file: !32, line: 51, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !101) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !37) +// CHECK:STDOUT: !100 = !DILocation(line: 51, column: 1, scope: !97) +// CHECK:STDOUT: !101 = !{!98} +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "PassAdapterBool", linkageName: "_CPassAdapterBool.Main", scope: null, file: !32, line: 54, type: !43, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !103 = !DILocation(line: 55, column: 19, scope: !102) +// CHECK:STDOUT: !104 = !DILocation(line: 55, column: 3, scope: !102) +// CHECK:STDOUT: !105 = !DILocation(line: 54, column: 1, scope: !102) +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7fe843c0b66498d6:core.Destroy.Core", scope: null, file: !32, line: 55, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !109) +// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !37) +// CHECK:STDOUT: !108 = !DILocation(line: 55, column: 19, scope: !106) +// CHECK:STDOUT: !109 = !{!107} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/method_vs_nonmethod.carbon b/toolchain/lower/testdata/builtins/method_vs_nonmethod.carbon index cb0cbcd19341..6ef98b097988 100644 --- a/toolchain/lower/testdata/builtins/method_vs_nonmethod.carbon +++ b/toolchain/lower/testdata/builtins/method_vs_nonmethod.carbon @@ -21,41 +21,41 @@ fn TestAddMethod(a: i32, b: i32) -> i32 { return a.(AddMethod)(b); } // CHECK:STDOUT: source_filename = "method_vs_nonmethod.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestAddNonmethod.Main(i32 %a, i32 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CTestAddNonmethod.Main(i32 %a, i32 %b) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %AddNonmethod.call = add i32 %a, %b, !dbg !11 -// CHECK:STDOUT: ret i32 %AddNonmethod.call, !dbg !12 +// CHECK:STDOUT: %AddNonmethod.call = add i32 %a, %b, !dbg !32 +// CHECK:STDOUT: ret i32 %AddNonmethod.call, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestAddMethod.Main(i32 %a, i32 %b) #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CTestAddMethod.Main(i32 %a, i32 %b) #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %AddMethod.call = add i32 %a, %b, !dbg !17 -// CHECK:STDOUT: ret i32 %AddMethod.call, !dbg !18 +// CHECK:STDOUT: %AddMethod.call = add i32 %a, %b, !dbg !42 +// CHECK:STDOUT: ret i32 %AddMethod.call, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "method_vs_nonmethod.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestAddNonmethod", linkageName: "_CTestAddNonmethod.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 53, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 46, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "TestAddMethod", linkageName: "_CTestAddMethod.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !13, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 50, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 43, scope: !13) +// CHECK:STDOUT: !18 = !DIFile(filename: "method_vs_nonmethod.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "TestAddNonmethod", linkageName: "_CTestAddNonmethod.Main", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !34) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !20) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !23, type: !20) +// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 53, scope: !23) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 46, scope: !23) +// CHECK:STDOUT: !34 = !{!24, !25} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "TestAddMethod", linkageName: "_CTestAddMethod.Main", scope: null, file: !18, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !20) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 2, scope: !35, type: !20) +// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 50, scope: !35) +// CHECK:STDOUT: !44 = !DILocation(line: 17, column: 43, scope: !35) +// CHECK:STDOUT: !45 = !{!36, !37} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/no_op.carbon b/toolchain/lower/testdata/builtins/no_op.carbon index 2bb8276fa25c..5ca4d22cf956 100644 --- a/toolchain/lower/testdata/builtins/no_op.carbon +++ b/toolchain/lower/testdata/builtins/no_op.carbon @@ -38,34 +38,34 @@ fn J() { // CHECK:STDOUT: source_filename = "no_op.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CI.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CJ.Main() #0 !dbg !13 { +// CHECK:STDOUT: define void @_CJ.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc33_11.1.temp = alloca {}, align 1, !dbg !14 -// CHECK:STDOUT: call void @_CI.Main(), !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc33_11.1.temp), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: %.loc33_11.1.temp = alloca {}, align 1, !dbg !24 +// CHECK:STDOUT: call void @_CI.Main(), !dbg !24 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc33_11.1.temp), !dbg !24 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -77,23 +77,23 @@ fn J() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!7} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_op.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 17, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 22, column: 3, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 23, column: 3, scope: !8) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !1, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 27, column: 3, scope: !11) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "J", linkageName: "_CJ.Main", scope: null, file: !1, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 33, column: 9, scope: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 32, column: 1, scope: !13) +// CHECK:STDOUT: !6 = !DIFile(filename: "no_op.carbon", directory: "") +// CHECK:STDOUT: !7 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !8 = !{null} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !6, line: 17, type: !9, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 1, scope: !10) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !6, line: 21, type: !9, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !15 = !DILocation(line: 22, column: 3, scope: !12) +// CHECK:STDOUT: !18 = !DILocation(line: 23, column: 3, scope: !12) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !6, line: 26, type: !9, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !22 = !DILocation(line: 27, column: 3, scope: !19) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "J", linkageName: "_CJ.Main", scope: null, file: !6, line: 32, type: !9, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !24 = !DILocation(line: 33, column: 9, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 32, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/overloaded_operator.carbon b/toolchain/lower/testdata/builtins/overloaded_operator.carbon index 361fe3389ef5..90d0655e347e 100644 --- a/toolchain/lower/testdata/builtins/overloaded_operator.carbon +++ b/toolchain/lower/testdata/builtins/overloaded_operator.carbon @@ -19,30 +19,30 @@ fn AddThreeIntegers(a: i32, b: i32, c: i32) -> i32 { // CHECK:STDOUT: source_filename = "overloaded_operator.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAddThreeIntegers.Main(i32 %a, i32 %b, i32 %c) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CAddThreeIntegers.Main(i32 %a, i32 %b, i32 %c) #0 !dbg !9 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.loc14_12 = add i32 %a, %b, !dbg !12 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.loc14_16 = add i32 %Int.as.AddWith.impl.Op.call.loc14_12, %c, !dbg !12 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.loc14_16, !dbg !13 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.loc14_12 = add i32 %a, %b, !dbg !18 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call.loc14_16 = add i32 %Int.as.AddWith.impl.Op.call.loc14_12, %c, !dbg !18 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call.loc14_16, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "overloaded_operator.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "AddThreeIntegers", linkageName: "_CAddThreeIntegers.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10, !11} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocalVariable(arg: 3, scope: !4, type: !7) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !4 = !DIFile(filename: "overloaded_operator.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{!6, !6, !6, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "AddThreeIntegers", linkageName: "_CAddThreeIntegers.Main", scope: null, file: !4, line: 13, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !9, type: !6) +// CHECK:STDOUT: !11 = !DILocalVariable(arg: 2, scope: !9, type: !6) +// CHECK:STDOUT: !12 = !DILocalVariable(arg: 3, scope: !9, type: !6) +// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 10, scope: !9) +// CHECK:STDOUT: !21 = !DILocation(line: 14, column: 3, scope: !9) +// CHECK:STDOUT: !22 = !{!10, !11, !12} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/pointer.carbon b/toolchain/lower/testdata/builtins/pointer.carbon index 99c0935512ee..700ca0b3e9e9 100644 --- a/toolchain/lower/testdata/builtins/pointer.carbon +++ b/toolchain/lower/testdata/builtins/pointer.carbon @@ -29,37 +29,37 @@ fn Check(p: MakeUnformed(C*)) -> bool { // CHECK:STDOUT: source_filename = "pointer.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CNull.Main() #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CNull.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr null, !dbg !8 +// CHECK:STDOUT: ret ptr null, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCheck.Main(ptr %p) #0 !dbg !9 { +// CHECK:STDOUT: define i1 @_CCheck.Main(ptr %p) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %IsNull.call = icmp eq ptr %p, null, !dbg !14 -// CHECK:STDOUT: ret i1 %IsNull.call, !dbg !15 +// CHECK:STDOUT: %IsNull.call = icmp eq ptr %p, null, !dbg !34 +// CHECK:STDOUT: ret i1 %IsNull.call, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pointer.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Null", linkageName: "_CNull.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Check", linkageName: "_CCheck.Main", scope: null, file: !1, line: 23, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{!7, !7} -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !9, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 24, column: 10, scope: !9) -// CHECK:STDOUT: !15 = !DILocation(line: 24, column: 3, scope: !9) +// CHECK:STDOUT: !16 = !DIFile(filename: "pointer.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !{!18, !18} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Null", linkageName: "_CNull.Main", scope: null, file: !16, line: 19, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !27 = !DILocation(line: 20, column: 3, scope: !23) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Check", linkageName: "_CCheck.Main", scope: null, file: !16, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !36) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !18) +// CHECK:STDOUT: !34 = !DILocation(line: 24, column: 10, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 24, column: 3, scope: !28) +// CHECK:STDOUT: !36 = !{!29} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/print_read.carbon b/toolchain/lower/testdata/builtins/print_read.carbon index ebccf4912b20..78e3049e6a78 100644 --- a/toolchain/lower/testdata/builtins/print_read.carbon +++ b/toolchain/lower/testdata/builtins/print_read.carbon @@ -35,30 +35,30 @@ fn Main() { // CHECK:STDOUT: @printf.int.format = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !7 -// CHECK:STDOUT: br label %while.cond, !dbg !8 -// CHECK:STDOUT: -// CHECK:STDOUT: while.cond: ; preds = %if.else, %entry -// CHECK:STDOUT: %ReadChar.call = call i32 @getchar(), !dbg !9 -// CHECK:STDOUT: %Int.as.EqWith.impl.NotEqual.call.loc23 = icmp ne i32 %ReadChar.call, -1, !dbg !9 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.NotEqual.call.loc23, label %while.body, label %while.done, !dbg !8 -// CHECK:STDOUT: -// CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: %PrintChar.call.loc25 = call i32 @putchar(i32 72), !dbg !10 -// CHECK:STDOUT: %Int.as.EqWith.impl.NotEqual.call.loc25 = icmp ne i32 %PrintChar.call.loc25, -1, !dbg !10 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.NotEqual.call.loc25, label %if.then, label %if.else, !dbg !11 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %while.body -// CHECK:STDOUT: %PrintChar.call.loc26 = call i32 @putchar(i32 105), !dbg !12 -// CHECK:STDOUT: br label %if.else, !dbg !13 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %if.then, %while.body +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !11 // CHECK:STDOUT: br label %while.cond, !dbg !14 // CHECK:STDOUT: +// CHECK:STDOUT: while.cond: ; preds = %if.else, %entry +// CHECK:STDOUT: %ReadChar.call = call i32 @getchar(), !dbg !15 +// CHECK:STDOUT: %Int.as.EqWith.impl.NotEqual.call.loc23 = icmp ne i32 %ReadChar.call, -1, !dbg !15 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.NotEqual.call.loc23, label %while.body, label %while.done, !dbg !14 +// CHECK:STDOUT: +// CHECK:STDOUT: while.body: ; preds = %while.cond +// CHECK:STDOUT: %PrintChar.call.loc25 = call i32 @putchar(i32 72), !dbg !17 +// CHECK:STDOUT: %Int.as.EqWith.impl.NotEqual.call.loc25 = icmp ne i32 %PrintChar.call.loc25, -1, !dbg !17 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.NotEqual.call.loc25, label %if.then, label %if.else, !dbg !19 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %while.body +// CHECK:STDOUT: %PrintChar.call.loc26 = call i32 @putchar(i32 105), !dbg !20 +// CHECK:STDOUT: br label %if.else, !dbg !21 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %if.then, %while.body +// CHECK:STDOUT: br label %while.cond, !dbg !22 +// CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) @@ -72,23 +72,23 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "print_read.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 23, column: 9, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 23, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 25, column: 9, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 25, column: 8, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 26, column: 7, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 25, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 19, column: 1, scope: !4) +// CHECK:STDOUT: !4 = !DIFile(filename: "print_read.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !8 = !{null} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !4, line: 19, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !11 = !DILocation(line: 20, column: 3, scope: !10) +// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 9, scope: !10) +// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 10, scope: !10) +// CHECK:STDOUT: !17 = !DILocation(line: 25, column: 9, scope: !10) +// CHECK:STDOUT: !19 = !DILocation(line: 25, column: 8, scope: !10) +// CHECK:STDOUT: !20 = !DILocation(line: 26, column: 7, scope: !10) +// CHECK:STDOUT: !21 = !DILocation(line: 25, column: 5, scope: !10) +// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 3, scope: !10) +// CHECK:STDOUT: !23 = !DILocation(line: 19, column: 1, scope: !10) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/types.carbon b/toolchain/lower/testdata/builtins/types.carbon index b1b3822e9087..79c062aa8b4a 100644 --- a/toolchain/lower/testdata/builtins/types.carbon +++ b/toolchain/lower/testdata/builtins/types.carbon @@ -44,28 +44,28 @@ fn Uses() { // CHECK:STDOUT: declare void @_CBoolParam.Main(i1) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUses.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CUses.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CIntParam.Main(i32 1), !dbg !7 -// CHECK:STDOUT: call void @_CFloatParam.Main(half 1.000000e+00, float 1.000000e+00, double 1.000000e+00, fp128 1.000000e+00), !dbg !8 -// CHECK:STDOUT: call void @_CBoolParam.Main(i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @_CIntParam.Main(i32 1), !dbg !27 +// CHECK:STDOUT: call void @_CFloatParam.Main(half 1.000000e+00, float 1.000000e+00, double 1.000000e+00, fp128 1.000000e+00), !dbg !28 +// CHECK:STDOUT: call void @_CBoolParam.Main(i1 false), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "types.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Uses", linkageName: "_CUses.Main", scope: null, file: !1, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 31, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 32, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 33, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 30, column: 1, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "types.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Uses", linkageName: "_CUses.Main", scope: null, file: !14, line: 30, type: !25, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !27 = !DILocation(line: 31, column: 3, scope: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 32, column: 3, scope: !26) +// CHECK:STDOUT: !29 = !DILocation(line: 33, column: 3, scope: !26) +// CHECK:STDOUT: !30 = !DILocation(line: 30, column: 1, scope: !26) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/uint.carbon b/toolchain/lower/testdata/builtins/uint.carbon index ef5a1e9bb450..ddcea30832cf 100644 --- a/toolchain/lower/testdata/builtins/uint.carbon +++ b/toolchain/lower/testdata/builtins/uint.carbon @@ -69,252 +69,252 @@ fn TestGreaterEq(a: u64, b: u64) -> bool { return GreaterEq(a, b); } // CHECK:STDOUT: source_filename = "uint.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestNegate.Main(i64 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i64 @_CTestNegate.Main(i64 %a) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Negate.call = sub i64 0, %a, !dbg !10 -// CHECK:STDOUT: ret i64 %Negate.call, !dbg !11 +// CHECK:STDOUT: %Negate.call = sub i64 0, %a, !dbg !47 +// CHECK:STDOUT: ret i64 %Negate.call, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestAdd.Main(i64 %a, i64 %b) #0 !dbg !12 { +// CHECK:STDOUT: define i64 @_CTestAdd.Main(i64 %a, i64 %b) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Add.call = add i64 %a, %b, !dbg !18 -// CHECK:STDOUT: ret i64 %Add.call, !dbg !19 +// CHECK:STDOUT: %Add.call = add i64 %a, %b, !dbg !59 +// CHECK:STDOUT: ret i64 %Add.call, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestSub.Main(i64 %a, i64 %b) #0 !dbg !20 { +// CHECK:STDOUT: define i64 @_CTestSub.Main(i64 %a, i64 %b) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Sub.call = sub i64 %a, %b, !dbg !24 -// CHECK:STDOUT: ret i64 %Sub.call, !dbg !25 +// CHECK:STDOUT: %Sub.call = sub i64 %a, %b, !dbg !71 +// CHECK:STDOUT: ret i64 %Sub.call, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestMul.Main(i64 %a, i64 %b) #0 !dbg !26 { +// CHECK:STDOUT: define i64 @_CTestMul.Main(i64 %a, i64 %b) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Mul.call = mul i64 %a, %b, !dbg !30 -// CHECK:STDOUT: ret i64 %Mul.call, !dbg !31 +// CHECK:STDOUT: %Mul.call = mul i64 %a, %b, !dbg !83 +// CHECK:STDOUT: ret i64 %Mul.call, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestDiv.Main(i64 %a, i64 %b) #0 !dbg !32 { +// CHECK:STDOUT: define i64 @_CTestDiv.Main(i64 %a, i64 %b) #0 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Div.call = udiv i64 %a, %b, !dbg !36 -// CHECK:STDOUT: ret i64 %Div.call, !dbg !37 +// CHECK:STDOUT: %Div.call = udiv i64 %a, %b, !dbg !95 +// CHECK:STDOUT: ret i64 %Div.call, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestMod.Main(i64 %a, i64 %b) #0 !dbg !38 { +// CHECK:STDOUT: define i64 @_CTestMod.Main(i64 %a, i64 %b) #0 !dbg !98 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Mod.call = urem i64 %a, %b, !dbg !42 -// CHECK:STDOUT: ret i64 %Mod.call, !dbg !43 +// CHECK:STDOUT: %Mod.call = urem i64 %a, %b, !dbg !107 +// CHECK:STDOUT: ret i64 %Mod.call, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestComplement.Main(i64 %a) #0 !dbg !44 { +// CHECK:STDOUT: define i64 @_CTestComplement.Main(i64 %a) #0 !dbg !110 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Complement.call = xor i64 -1, %a, !dbg !47 -// CHECK:STDOUT: ret i64 %Complement.call, !dbg !48 +// CHECK:STDOUT: %Complement.call = xor i64 -1, %a, !dbg !116 +// CHECK:STDOUT: ret i64 %Complement.call, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestAnd.Main(i64 %a, i64 %b) #0 !dbg !49 { +// CHECK:STDOUT: define i64 @_CTestAnd.Main(i64 %a, i64 %b) #0 !dbg !119 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %And.call = and i64 %a, %b, !dbg !53 -// CHECK:STDOUT: ret i64 %And.call, !dbg !54 +// CHECK:STDOUT: %And.call = and i64 %a, %b, !dbg !128 +// CHECK:STDOUT: ret i64 %And.call, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestOr.Main(i64 %a, i64 %b) #0 !dbg !55 { +// CHECK:STDOUT: define i64 @_CTestOr.Main(i64 %a, i64 %b) #0 !dbg !131 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Or.call = or i64 %a, %b, !dbg !59 -// CHECK:STDOUT: ret i64 %Or.call, !dbg !60 +// CHECK:STDOUT: %Or.call = or i64 %a, %b, !dbg !140 +// CHECK:STDOUT: ret i64 %Or.call, !dbg !141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestXor.Main(i64 %a, i64 %b) #0 !dbg !61 { +// CHECK:STDOUT: define i64 @_CTestXor.Main(i64 %a, i64 %b) #0 !dbg !143 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Xor.call = xor i64 %a, %b, !dbg !65 -// CHECK:STDOUT: ret i64 %Xor.call, !dbg !66 +// CHECK:STDOUT: %Xor.call = xor i64 %a, %b, !dbg !152 +// CHECK:STDOUT: ret i64 %Xor.call, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestLeftShift.Main(i64 %a, i64 %b) #0 !dbg !67 { +// CHECK:STDOUT: define i64 @_CTestLeftShift.Main(i64 %a, i64 %b) #0 !dbg !155 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LeftShift.call = shl i64 %a, %b, !dbg !71 -// CHECK:STDOUT: ret i64 %LeftShift.call, !dbg !72 +// CHECK:STDOUT: %LeftShift.call = shl i64 %a, %b, !dbg !164 +// CHECK:STDOUT: ret i64 %LeftShift.call, !dbg !165 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CTestRightShift.Main(i64 %a, i64 %b) #0 !dbg !73 { +// CHECK:STDOUT: define i64 @_CTestRightShift.Main(i64 %a, i64 %b) #0 !dbg !167 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %RightShift.call = lshr i64 %a, %b, !dbg !77 -// CHECK:STDOUT: ret i64 %RightShift.call, !dbg !78 +// CHECK:STDOUT: %RightShift.call = lshr i64 %a, %b, !dbg !176 +// CHECK:STDOUT: ret i64 %RightShift.call, !dbg !177 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestEq.Main(i64 %a, i64 %b) #0 !dbg !79 { +// CHECK:STDOUT: define i1 @_CTestEq.Main(i64 %a, i64 %b) #0 !dbg !179 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eq.call = icmp eq i64 %a, %b, !dbg !86 -// CHECK:STDOUT: ret i1 %Eq.call, !dbg !87 +// CHECK:STDOUT: %Eq.call = icmp eq i64 %a, %b, !dbg !188 +// CHECK:STDOUT: ret i1 %Eq.call, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestNeq.Main(i64 %a, i64 %b) #0 !dbg !88 { +// CHECK:STDOUT: define i1 @_CTestNeq.Main(i64 %a, i64 %b) #0 !dbg !191 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Neq.call = icmp ne i64 %a, %b, !dbg !92 -// CHECK:STDOUT: ret i1 %Neq.call, !dbg !93 +// CHECK:STDOUT: %Neq.call = icmp ne i64 %a, %b, !dbg !200 +// CHECK:STDOUT: ret i1 %Neq.call, !dbg !201 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLess.Main(i64 %a, i64 %b) #0 !dbg !94 { +// CHECK:STDOUT: define i1 @_CTestLess.Main(i64 %a, i64 %b) #0 !dbg !203 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Less.call = icmp ult i64 %a, %b, !dbg !98 -// CHECK:STDOUT: ret i1 %Less.call, !dbg !99 +// CHECK:STDOUT: %Less.call = icmp ult i64 %a, %b, !dbg !212 +// CHECK:STDOUT: ret i1 %Less.call, !dbg !213 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestLessEq.Main(i64 %a, i64 %b) #0 !dbg !100 { +// CHECK:STDOUT: define i1 @_CTestLessEq.Main(i64 %a, i64 %b) #0 !dbg !215 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %LessEq.call = icmp ule i64 %a, %b, !dbg !104 -// CHECK:STDOUT: ret i1 %LessEq.call, !dbg !105 +// CHECK:STDOUT: %LessEq.call = icmp ule i64 %a, %b, !dbg !224 +// CHECK:STDOUT: ret i1 %LessEq.call, !dbg !225 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestGreater.Main(i64 %a, i64 %b) #0 !dbg !106 { +// CHECK:STDOUT: define i1 @_CTestGreater.Main(i64 %a, i64 %b) #0 !dbg !227 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Greater.call = icmp ugt i64 %a, %b, !dbg !110 -// CHECK:STDOUT: ret i1 %Greater.call, !dbg !111 +// CHECK:STDOUT: %Greater.call = icmp ugt i64 %a, %b, !dbg !236 +// CHECK:STDOUT: ret i1 %Greater.call, !dbg !237 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CTestGreaterEq.Main(i64 %a, i64 %b) #0 !dbg !112 { +// CHECK:STDOUT: define i1 @_CTestGreaterEq.Main(i64 %a, i64 %b) #0 !dbg !239 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %GreaterEq.call = icmp uge i64 %a, %b, !dbg !116 -// CHECK:STDOUT: ret i1 %GreaterEq.call, !dbg !117 +// CHECK:STDOUT: %GreaterEq.call = icmp uge i64 %a, %b, !dbg !248 +// CHECK:STDOUT: ret i1 %GreaterEq.call, !dbg !249 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "uint.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "TestNegate", linkageName: "_CTestNegate.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 39, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 32, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!7, !7, !7} -// CHECK:STDOUT: !15 = !{!16, !17} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !12, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 44, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 17, column: 37, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !1, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22, !23} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !20, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 20, column: 44, scope: !20) -// CHECK:STDOUT: !25 = !DILocation(line: 20, column: 37, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !1, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28, !29} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 2, scope: !26, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 23, column: 44, scope: !26) -// CHECK:STDOUT: !31 = !DILocation(line: 23, column: 37, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !1, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !32, type: !7) -// CHECK:STDOUT: !36 = !DILocation(line: 26, column: 44, scope: !32) -// CHECK:STDOUT: !37 = !DILocation(line: 26, column: 37, scope: !32) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "TestMod", linkageName: "_CTestMod.Main", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40, !41} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 2, scope: !38, type: !7) -// CHECK:STDOUT: !42 = !DILocation(line: 29, column: 44, scope: !38) -// CHECK:STDOUT: !43 = !DILocation(line: 29, column: 37, scope: !38) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "TestComplement", linkageName: "_CTestComplement.Main", scope: null, file: !1, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !7) -// CHECK:STDOUT: !47 = !DILocation(line: 32, column: 43, scope: !44) -// CHECK:STDOUT: !48 = !DILocation(line: 32, column: 36, scope: !44) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "TestAnd", linkageName: "_CTestAnd.Main", scope: null, file: !1, line: 35, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51, !52} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !7) -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !7) -// CHECK:STDOUT: !53 = !DILocation(line: 35, column: 44, scope: !49) -// CHECK:STDOUT: !54 = !DILocation(line: 35, column: 37, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "TestOr", linkageName: "_CTestOr.Main", scope: null, file: !1, line: 38, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57, !58} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !7) -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 2, scope: !55, type: !7) -// CHECK:STDOUT: !59 = !DILocation(line: 38, column: 43, scope: !55) -// CHECK:STDOUT: !60 = !DILocation(line: 38, column: 36, scope: !55) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "TestXor", linkageName: "_CTestXor.Main", scope: null, file: !1, line: 41, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63, !64} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !7) -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !61, type: !7) -// CHECK:STDOUT: !65 = !DILocation(line: 41, column: 44, scope: !61) -// CHECK:STDOUT: !66 = !DILocation(line: 41, column: 37, scope: !61) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "TestLeftShift", linkageName: "_CTestLeftShift.Main", scope: null, file: !1, line: 44, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !68 = !{!69, !70} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !7) -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !67, type: !7) -// CHECK:STDOUT: !71 = !DILocation(line: 44, column: 50, scope: !67) -// CHECK:STDOUT: !72 = !DILocation(line: 44, column: 43, scope: !67) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "TestRightShift", linkageName: "_CTestRightShift.Main", scope: null, file: !1, line: 47, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75, !76} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !7) -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !73, type: !7) -// CHECK:STDOUT: !77 = !DILocation(line: 47, column: 51, scope: !73) -// CHECK:STDOUT: !78 = !DILocation(line: 47, column: 44, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !1, line: 50, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !83) -// CHECK:STDOUT: !80 = !DISubroutineType(types: !81) -// CHECK:STDOUT: !81 = !{!82, !7, !7} -// CHECK:STDOUT: !82 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !83 = !{!84, !85} -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !79, type: !7) -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 2, scope: !79, type: !7) -// CHECK:STDOUT: !86 = !DILocation(line: 50, column: 44, scope: !79) -// CHECK:STDOUT: !87 = !DILocation(line: 50, column: 37, scope: !79) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !1, line: 53, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !89) -// CHECK:STDOUT: !89 = !{!90, !91} -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !7) -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 2, scope: !88, type: !7) -// CHECK:STDOUT: !92 = !DILocation(line: 53, column: 45, scope: !88) -// CHECK:STDOUT: !93 = !DILocation(line: 53, column: 38, scope: !88) -// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "TestLess", linkageName: "_CTestLess.Main", scope: null, file: !1, line: 56, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !95) -// CHECK:STDOUT: !95 = !{!96, !97} -// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !94, type: !7) -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 2, scope: !94, type: !7) -// CHECK:STDOUT: !98 = !DILocation(line: 56, column: 46, scope: !94) -// CHECK:STDOUT: !99 = !DILocation(line: 56, column: 39, scope: !94) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "TestLessEq", linkageName: "_CTestLessEq.Main", scope: null, file: !1, line: 59, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !101) -// CHECK:STDOUT: !101 = !{!102, !103} -// CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !100, type: !7) -// CHECK:STDOUT: !103 = !DILocalVariable(arg: 2, scope: !100, type: !7) -// CHECK:STDOUT: !104 = !DILocation(line: 59, column: 48, scope: !100) -// CHECK:STDOUT: !105 = !DILocation(line: 59, column: 41, scope: !100) -// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "TestGreater", linkageName: "_CTestGreater.Main", scope: null, file: !1, line: 62, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !107) -// CHECK:STDOUT: !107 = !{!108, !109} -// CHECK:STDOUT: !108 = !DILocalVariable(arg: 1, scope: !106, type: !7) -// CHECK:STDOUT: !109 = !DILocalVariable(arg: 2, scope: !106, type: !7) -// CHECK:STDOUT: !110 = !DILocation(line: 62, column: 49, scope: !106) -// CHECK:STDOUT: !111 = !DILocation(line: 62, column: 42, scope: !106) -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "TestGreaterEq", linkageName: "_CTestGreaterEq.Main", scope: null, file: !1, line: 65, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !113) -// CHECK:STDOUT: !113 = !{!114, !115} -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !7) -// CHECK:STDOUT: !115 = !DILocalVariable(arg: 2, scope: !112, type: !7) -// CHECK:STDOUT: !116 = !DILocation(line: 65, column: 51, scope: !112) -// CHECK:STDOUT: !117 = !DILocation(line: 65, column: 44, scope: !112) +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !32 = !DIFile(filename: "uint.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !{!17, !17} +// CHECK:STDOUT: !35 = !DISubroutineType(types: !34) +// CHECK:STDOUT: !36 = !{!17, !17, !17} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !39 = !{!38, !17, !17} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "TestNegate", linkageName: "_CTestNegate.Main", scope: null, file: !32, line: 14, type: !35, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !49) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !17) +// CHECK:STDOUT: !47 = !DILocation(line: 14, column: 39, scope: !41) +// CHECK:STDOUT: !48 = !DILocation(line: 14, column: 32, scope: !41) +// CHECK:STDOUT: !49 = !{!42} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "TestAdd", linkageName: "_CTestAdd.Main", scope: null, file: !32, line: 17, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !61) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !17) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !17) +// CHECK:STDOUT: !59 = !DILocation(line: 17, column: 44, scope: !50) +// CHECK:STDOUT: !60 = !DILocation(line: 17, column: 37, scope: !50) +// CHECK:STDOUT: !61 = !{!51, !52} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "TestSub", linkageName: "_CTestSub.Main", scope: null, file: !32, line: 20, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !73) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !17) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !62, type: !17) +// CHECK:STDOUT: !71 = !DILocation(line: 20, column: 44, scope: !62) +// CHECK:STDOUT: !72 = !DILocation(line: 20, column: 37, scope: !62) +// CHECK:STDOUT: !73 = !{!63, !64} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "TestMul", linkageName: "_CTestMul.Main", scope: null, file: !32, line: 23, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !85) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !17) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !74, type: !17) +// CHECK:STDOUT: !83 = !DILocation(line: 23, column: 44, scope: !74) +// CHECK:STDOUT: !84 = !DILocation(line: 23, column: 37, scope: !74) +// CHECK:STDOUT: !85 = !{!75, !76} +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "TestDiv", linkageName: "_CTestDiv.Main", scope: null, file: !32, line: 26, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !97) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !17) +// CHECK:STDOUT: !88 = !DILocalVariable(arg: 2, scope: !86, type: !17) +// CHECK:STDOUT: !95 = !DILocation(line: 26, column: 44, scope: !86) +// CHECK:STDOUT: !96 = !DILocation(line: 26, column: 37, scope: !86) +// CHECK:STDOUT: !97 = !{!87, !88} +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "TestMod", linkageName: "_CTestMod.Main", scope: null, file: !32, line: 29, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !109) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !98, type: !17) +// CHECK:STDOUT: !100 = !DILocalVariable(arg: 2, scope: !98, type: !17) +// CHECK:STDOUT: !107 = !DILocation(line: 29, column: 44, scope: !98) +// CHECK:STDOUT: !108 = !DILocation(line: 29, column: 37, scope: !98) +// CHECK:STDOUT: !109 = !{!99, !100} +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "TestComplement", linkageName: "_CTestComplement.Main", scope: null, file: !32, line: 32, type: !35, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !118) +// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !17) +// CHECK:STDOUT: !116 = !DILocation(line: 32, column: 43, scope: !110) +// CHECK:STDOUT: !117 = !DILocation(line: 32, column: 36, scope: !110) +// CHECK:STDOUT: !118 = !{!111} +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "TestAnd", linkageName: "_CTestAnd.Main", scope: null, file: !32, line: 35, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !130) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !17) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 2, scope: !119, type: !17) +// CHECK:STDOUT: !128 = !DILocation(line: 35, column: 44, scope: !119) +// CHECK:STDOUT: !129 = !DILocation(line: 35, column: 37, scope: !119) +// CHECK:STDOUT: !130 = !{!120, !121} +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "TestOr", linkageName: "_CTestOr.Main", scope: null, file: !32, line: 38, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !142) +// CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !131, type: !17) +// CHECK:STDOUT: !133 = !DILocalVariable(arg: 2, scope: !131, type: !17) +// CHECK:STDOUT: !140 = !DILocation(line: 38, column: 43, scope: !131) +// CHECK:STDOUT: !141 = !DILocation(line: 38, column: 36, scope: !131) +// CHECK:STDOUT: !142 = !{!132, !133} +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "TestXor", linkageName: "_CTestXor.Main", scope: null, file: !32, line: 41, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !154) +// CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !143, type: !17) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 2, scope: !143, type: !17) +// CHECK:STDOUT: !152 = !DILocation(line: 41, column: 44, scope: !143) +// CHECK:STDOUT: !153 = !DILocation(line: 41, column: 37, scope: !143) +// CHECK:STDOUT: !154 = !{!144, !145} +// CHECK:STDOUT: !155 = distinct !DISubprogram(name: "TestLeftShift", linkageName: "_CTestLeftShift.Main", scope: null, file: !32, line: 44, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !166) +// CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !155, type: !17) +// CHECK:STDOUT: !157 = !DILocalVariable(arg: 2, scope: !155, type: !17) +// CHECK:STDOUT: !164 = !DILocation(line: 44, column: 50, scope: !155) +// CHECK:STDOUT: !165 = !DILocation(line: 44, column: 43, scope: !155) +// CHECK:STDOUT: !166 = !{!156, !157} +// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "TestRightShift", linkageName: "_CTestRightShift.Main", scope: null, file: !32, line: 47, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !178) +// CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !167, type: !17) +// CHECK:STDOUT: !169 = !DILocalVariable(arg: 2, scope: !167, type: !17) +// CHECK:STDOUT: !176 = !DILocation(line: 47, column: 51, scope: !167) +// CHECK:STDOUT: !177 = !DILocation(line: 47, column: 44, scope: !167) +// CHECK:STDOUT: !178 = !{!168, !169} +// CHECK:STDOUT: !179 = distinct !DISubprogram(name: "TestEq", linkageName: "_CTestEq.Main", scope: null, file: !32, line: 50, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !190) +// CHECK:STDOUT: !180 = !DILocalVariable(arg: 1, scope: !179, type: !17) +// CHECK:STDOUT: !181 = !DILocalVariable(arg: 2, scope: !179, type: !17) +// CHECK:STDOUT: !188 = !DILocation(line: 50, column: 44, scope: !179) +// CHECK:STDOUT: !189 = !DILocation(line: 50, column: 37, scope: !179) +// CHECK:STDOUT: !190 = !{!180, !181} +// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "TestNeq", linkageName: "_CTestNeq.Main", scope: null, file: !32, line: 53, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !202) +// CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !17) +// CHECK:STDOUT: !193 = !DILocalVariable(arg: 2, scope: !191, type: !17) +// CHECK:STDOUT: !200 = !DILocation(line: 53, column: 45, scope: !191) +// CHECK:STDOUT: !201 = !DILocation(line: 53, column: 38, scope: !191) +// CHECK:STDOUT: !202 = !{!192, !193} +// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "TestLess", linkageName: "_CTestLess.Main", scope: null, file: !32, line: 56, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !214) +// CHECK:STDOUT: !204 = !DILocalVariable(arg: 1, scope: !203, type: !17) +// CHECK:STDOUT: !205 = !DILocalVariable(arg: 2, scope: !203, type: !17) +// CHECK:STDOUT: !212 = !DILocation(line: 56, column: 46, scope: !203) +// CHECK:STDOUT: !213 = !DILocation(line: 56, column: 39, scope: !203) +// CHECK:STDOUT: !214 = !{!204, !205} +// CHECK:STDOUT: !215 = distinct !DISubprogram(name: "TestLessEq", linkageName: "_CTestLessEq.Main", scope: null, file: !32, line: 59, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !226) +// CHECK:STDOUT: !216 = !DILocalVariable(arg: 1, scope: !215, type: !17) +// CHECK:STDOUT: !217 = !DILocalVariable(arg: 2, scope: !215, type: !17) +// CHECK:STDOUT: !224 = !DILocation(line: 59, column: 48, scope: !215) +// CHECK:STDOUT: !225 = !DILocation(line: 59, column: 41, scope: !215) +// CHECK:STDOUT: !226 = !{!216, !217} +// CHECK:STDOUT: !227 = distinct !DISubprogram(name: "TestGreater", linkageName: "_CTestGreater.Main", scope: null, file: !32, line: 62, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !238) +// CHECK:STDOUT: !228 = !DILocalVariable(arg: 1, scope: !227, type: !17) +// CHECK:STDOUT: !229 = !DILocalVariable(arg: 2, scope: !227, type: !17) +// CHECK:STDOUT: !236 = !DILocation(line: 62, column: 49, scope: !227) +// CHECK:STDOUT: !237 = !DILocation(line: 62, column: 42, scope: !227) +// CHECK:STDOUT: !238 = !{!228, !229} +// CHECK:STDOUT: !239 = distinct !DISubprogram(name: "TestGreaterEq", linkageName: "_CTestGreaterEq.Main", scope: null, file: !32, line: 65, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !250) +// CHECK:STDOUT: !240 = !DILocalVariable(arg: 1, scope: !239, type: !17) +// CHECK:STDOUT: !241 = !DILocalVariable(arg: 2, scope: !239, type: !17) +// CHECK:STDOUT: !248 = !DILocation(line: 65, column: 51, scope: !239) +// CHECK:STDOUT: !249 = !DILocation(line: 65, column: 44, scope: !239) +// CHECK:STDOUT: !250 = !{!240, !241} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/choice/basic.carbon b/toolchain/lower/testdata/choice/basic.carbon index 47b430a4da6c..2023684185e7 100644 --- a/toolchain/lower/testdata/choice/basic.carbon +++ b/toolchain/lower/testdata/choice/basic.carbon @@ -34,30 +34,30 @@ fn F() { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !8 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!21} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 21, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 0, scope: !8) +// CHECK:STDOUT: !20 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !21 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !20, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !20, line: 21, type: !24, spFlags: DISPFlagDefinition, unit: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 21, column: 1, scope: !25) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !20, type: !24, spFlags: DISPFlagDefinition, unit: !21) +// CHECK:STDOUT: !32 = !DILocation(line: 0, scope: !30) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/adapt.carbon b/toolchain/lower/testdata/class/adapt.carbon index f95db6343f62..a00e727c7f85 100644 --- a/toolchain/lower/testdata/class/adapt.carbon +++ b/toolchain/lower/testdata/class/adapt.carbon @@ -64,62 +64,62 @@ fn DoStuff(a: Int) -> Int { // CHECK:STDOUT: @PairOfInts.val.loc9_28 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.PairOfInts.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMake.PairOfInts.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_27.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc9_27.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @PairOfInts.val.loc9_28, i64 8, i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %.loc9_27.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %.loc9_27.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @PairOfInts.val.loc9_28, i64 8, i1 false), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.PairAdapter.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !10 { +// CHECK:STDOUT: define void @_CMake.PairAdapter.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.PairOfInts.Main(ptr %return), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: call void @_CMake.PairOfInts.Main(ptr %return), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CGetB.PairAdapter.Main(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CGetB.PairAdapter.Main(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22_14.1.b = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !19 -// CHECK:STDOUT: %.loc22_14.2 = load i32, ptr %.loc22_14.1.b, align 4, !dbg !19 -// CHECK:STDOUT: ret i32 %.loc22_14.2, !dbg !20 +// CHECK:STDOUT: %.loc22_14.1.b = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !50 +// CHECK:STDOUT: %.loc22_14.2 = load i32, ptr %.loc22_14.1.b, align 4, !dbg !50 +// CHECK:STDOUT: ret i32 %.loc22_14.2, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CUse.Main() #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CUse.Main() #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %pa.var = alloca { i32, i32 }, align 4, !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %pa.var), !dbg !24 -// CHECK:STDOUT: call void @_CMake.PairAdapter.Main(ptr %pa.var), !dbg !25 -// CHECK:STDOUT: %PairAdapter.GetB.call = call i32 @_CGetB.PairAdapter.Main(ptr %pa.var), !dbg !26 -// CHECK:STDOUT: call void @"_COp.2c73101a15c7940c:core.Destroy.Core"(ptr %pa.var), !dbg !24 -// CHECK:STDOUT: ret i32 %PairAdapter.GetB.call, !dbg !27 +// CHECK:STDOUT: %pa.var = alloca { i32, i32 }, align 4, !dbg !56 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %pa.var), !dbg !56 +// CHECK:STDOUT: call void @_CMake.PairAdapter.Main(ptr %pa.var), !dbg !57 +// CHECK:STDOUT: %PairAdapter.GetB.call = call i32 @_CGetB.PairAdapter.Main(ptr %pa.var), !dbg !59 +// CHECK:STDOUT: call void @"_COp.2c73101a15c7940c:core.Destroy.Core"(ptr %pa.var), !dbg !56 +// CHECK:STDOUT: ret i32 %PairAdapter.GetB.call, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c5c320de480da9c1:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.c5c320de480da9c1:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !43 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2c73101a15c7940c:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.2c73101a15c7940c:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -131,94 +131,94 @@ fn DoStuff(a: Int) -> Int { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "adapt_class.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.PairOfInts.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 9, column: 12, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.PairAdapter.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 12, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 5, scope: !10) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "GetB", linkageName: "_CGetB.PairAdapter.Main", scope: null, file: !1, line: 20, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!16, !7} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 12, scope: !13) -// CHECK:STDOUT: !20 = !DILocation(line: 22, column: 5, scope: !13) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !1, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{!16} -// CHECK:STDOUT: !24 = !DILocation(line: 27, column: 3, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 27, column: 25, scope: !21) -// CHECK:STDOUT: !26 = !DILocation(line: 28, column: 10, scope: !21) -// CHECK:STDOUT: !27 = !DILocation(line: 28, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 27, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !16} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !16) -// CHECK:STDOUT: !33 = !DILocation(line: 27, column: 3, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !1, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{null, !7} -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !34, type: !7) -// CHECK:STDOUT: !39 = !DILocation(line: 27, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c5c320de480da9c1:core.Destroy.Core", scope: null, file: !1, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !7) -// CHECK:STDOUT: !43 = !DILocation(line: 27, column: 3, scope: !40) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2c73101a15c7940c:core.Destroy.Core", scope: null, file: !1, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !7) -// CHECK:STDOUT: !47 = !DILocation(line: 27, column: 3, scope: !44) +// CHECK:STDOUT: !18 = !DIFile(filename: "adapt_class.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{!20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !20} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = !{null, !21} +// CHECK:STDOUT: !31 = !DISubroutineType(types: !30) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.PairOfInts.Main", scope: null, file: !18, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 12, scope: !32) +// CHECK:STDOUT: !36 = !DILocation(line: 9, column: 5, scope: !32) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.PairAdapter.Main", scope: null, file: !18, line: 16, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !40 = !DILocation(line: 17, column: 12, scope: !37) +// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 5, scope: !37) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "GetB", linkageName: "_CGetB.PairAdapter.Main", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !21) +// CHECK:STDOUT: !50 = !DILocation(line: 22, column: 12, scope: !42) +// CHECK:STDOUT: !51 = !DILocation(line: 22, column: 5, scope: !42) +// CHECK:STDOUT: !52 = !{!43} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !18, line: 26, type: !27, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !56 = !DILocation(line: 27, column: 3, scope: !53) +// CHECK:STDOUT: !57 = !DILocation(line: 27, column: 25, scope: !53) +// CHECK:STDOUT: !59 = !DILocation(line: 28, column: 10, scope: !53) +// CHECK:STDOUT: !60 = !DILocation(line: 28, column: 3, scope: !53) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 27, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !64) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !20) +// CHECK:STDOUT: !63 = !DILocation(line: 27, column: 3, scope: !61) +// CHECK:STDOUT: !64 = !{!62} +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !68) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !21) +// CHECK:STDOUT: !67 = !DILocation(line: 27, column: 3, scope: !65) +// CHECK:STDOUT: !68 = !{!66} +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c5c320de480da9c1:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !72) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !21) +// CHECK:STDOUT: !71 = !DILocation(line: 27, column: 3, scope: !69) +// CHECK:STDOUT: !72 = !{!70} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2c73101a15c7940c:core.Destroy.Core", scope: null, file: !18, line: 27, type: !31, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !76) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !21) +// CHECK:STDOUT: !75 = !DILocation(line: 27, column: 3, scope: !73) +// CHECK:STDOUT: !76 = !{!74} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'adapt_int.carbon' // CHECK:STDOUT: source_filename = "adapt_int.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_COp.Int.Main:Copy.Core"(i32 %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_COp.Int.Main:Copy.Core"(i32 %self) #0 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %self, !dbg !10 +// CHECK:STDOUT: ret i32 %self, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CDoStuff.Main(i32 %a) #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CDoStuff.Main(i32 %a) #0 !dbg !90 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call = call i32 @"_COp.Int.Main:Copy.Core"(i32 %a), !dbg !14 -// CHECK:STDOUT: ret i32 %Int.as.Copy.impl.Op.call, !dbg !15 +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call = call i32 @"_COp.Int.Main:Copy.Core"(i32 %a), !dbg !95 +// CHECK:STDOUT: ret i32 %Int.as.Copy.impl.Op.call, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!78} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "adapt_int.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.Main:Copy.Core", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 8, column: 27, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "DoStuff", linkageName: "_CDoStuff.Main", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 13, column: 10, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 13, column: 3, scope: !11) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !77 = !DIFile(filename: "adapt_int.carbon", directory: "") +// CHECK:STDOUT: !78 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !77, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !79 = !{!20, !20} +// CHECK:STDOUT: !80 = !DISubroutineType(types: !79) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.Main:Copy.Core", scope: null, file: !77, line: 8, type: !80, spFlags: DISPFlagDefinition, unit: !78, retainedNodes: !89) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !20) +// CHECK:STDOUT: !88 = !DILocation(line: 8, column: 27, scope: !81) +// CHECK:STDOUT: !89 = !{!82} +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "DoStuff", linkageName: "_CDoStuff.Main", scope: null, file: !77, line: 12, type: !80, spFlags: DISPFlagDefinition, unit: !78, retainedNodes: !97) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !20) +// CHECK:STDOUT: !95 = !DILocation(line: 13, column: 10, scope: !90) +// CHECK:STDOUT: !96 = !DILocation(line: 13, column: 3, scope: !90) +// CHECK:STDOUT: !97 = !{!91} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/base.carbon b/toolchain/lower/testdata/class/base.carbon index 1617a3d07490..012785d6b3de 100644 --- a/toolchain/lower/testdata/class/base.carbon +++ b/toolchain/lower/testdata/class/base.carbon @@ -39,35 +39,35 @@ fn Convert(p: Derived*) -> Base* { // CHECK:STDOUT: @Derived.val.loc24_36 = internal constant { { i32 }, i32 } { { i32 } { i32 4 }, i32 7 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.Main(ptr sret({ { i32 }, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMake.Main(ptr sret({ { i32 }, i32 }) %return) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc24_35.2.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc24_26.3.b = getelementptr inbounds nuw { i32 }, ptr %.loc24_35.2.base, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: %.loc24_35.6.d = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @Derived.val.loc24_36, i64 8, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %.loc24_35.2.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc24_26.3.b = getelementptr inbounds nuw { i32 }, ptr %.loc24_35.2.base, i32 0, i32 0, !dbg !30 +// CHECK:STDOUT: %.loc24_35.6.d = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 1, !dbg !29 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @Derived.val.loc24_36, i64 8, i1 false), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAccess.Main(ptr sret({ i32, i32 }) %return, ptr %d) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CAccess.Main(ptr sret({ i32, i32 }) %return, ptr %d) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc28_12.1.d = getelementptr inbounds nuw { { i32 }, i32 }, ptr %d, i32 0, i32 1, !dbg !16 -// CHECK:STDOUT: %.loc28_12.2 = load i32, ptr %.loc28_12.1.d, align 4, !dbg !16 -// CHECK:STDOUT: %.loc28_17.1.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %d, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc28_22.1.b = getelementptr inbounds nuw { i32 }, ptr %.loc28_17.1.base, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc28_22.2 = load i32, ptr %.loc28_22.1.b, align 4, !dbg !17 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: store i32 %.loc28_12.2, ptr %tuple.elem0.tuple.elem, align 4, !dbg !18 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !18 -// CHECK:STDOUT: store i32 %.loc28_22.2, ptr %tuple.elem1.tuple.elem, align 4, !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc28_12.1.d = getelementptr inbounds nuw { { i32 }, i32 }, ptr %d, i32 0, i32 1, !dbg !37 +// CHECK:STDOUT: %.loc28_12.2 = load i32, ptr %.loc28_12.1.d, align 4, !dbg !37 +// CHECK:STDOUT: %.loc28_17.1.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %d, i32 0, i32 0, !dbg !38 +// CHECK:STDOUT: %.loc28_22.1.b = getelementptr inbounds nuw { i32 }, ptr %.loc28_17.1.base, i32 0, i32 0, !dbg !38 +// CHECK:STDOUT: %.loc28_22.2 = load i32, ptr %.loc28_22.1.b, align 4, !dbg !38 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !39 +// CHECK:STDOUT: store i32 %.loc28_12.2, ptr %tuple.elem0.tuple.elem, align 4, !dbg !39 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !39 +// CHECK:STDOUT: store i32 %.loc28_22.2, ptr %tuple.elem1.tuple.elem, align 4, !dbg !39 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CConvert.Main(ptr %p) #0 !dbg !20 { +// CHECK:STDOUT: define ptr @_CConvert.Main(ptr %p) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc32_11.2.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %p, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: ret ptr %.loc32_11.2.base, !dbg !23 +// CHECK:STDOUT: %.loc32_11.2.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %p, i32 0, i32 0, !dbg !48 +// CHECK:STDOUT: ret ptr %.loc32_11.2.base, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -76,31 +76,31 @@ fn Convert(p: Derived*) -> Base* { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "base.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !1, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 24, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 24, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Access", linkageName: "_CAccess.Main", scope: null, file: !1, line: 27, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!7, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 28, column: 11, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 28, column: 16, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 28, column: 10, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 28, column: 3, scope: !11) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !1, line: 31, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 32, column: 3, scope: !20) +// CHECK:STDOUT: !18 = !DIFile(filename: "base.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!21, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !18, line: 23, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 24, column: 10, scope: !26) +// CHECK:STDOUT: !30 = !DILocation(line: 24, column: 19, scope: !26) +// CHECK:STDOUT: !31 = !DILocation(line: 24, column: 3, scope: !26) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Access", linkageName: "_CAccess.Main", scope: null, file: !18, line: 27, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 28, column: 11, scope: !32) +// CHECK:STDOUT: !38 = !DILocation(line: 28, column: 16, scope: !32) +// CHECK:STDOUT: !39 = !DILocation(line: 28, column: 10, scope: !32) +// CHECK:STDOUT: !40 = !DILocation(line: 28, column: 3, scope: !32) +// CHECK:STDOUT: !41 = !{!33} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !18, line: 31, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !21) +// CHECK:STDOUT: !48 = !DILocation(line: 32, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !{!43} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/basic.carbon b/toolchain/lower/testdata/class/basic.carbon index db07cd4164b4..501a8c271df9 100644 --- a/toolchain/lower/testdata/class/basic.carbon +++ b/toolchain/lower/testdata/class/basic.carbon @@ -29,34 +29,34 @@ fn Run() { // CHECK:STDOUT: declare void @_CF.Main(ptr sret({ i32, ptr }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i32, ptr }, align 8, !dbg !8 -// CHECK:STDOUT: %_.var = alloca { i32, ptr }, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @_CF.Main(ptr %_.var, ptr %c.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !11 +// CHECK:STDOUT: %c.var = alloca { i32, ptr }, align 8, !dbg !31 +// CHECK:STDOUT: %_.var = alloca { i32, ptr }, align 8, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @_CF.Main(ptr %_.var, ptr %c.var), !dbg !35 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !31 +// CHECK:STDOUT: ret i32 0, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.17d64d1458c6b56d:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.17d64d1458c6b56d:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -69,36 +69,36 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 14, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 20, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !7} -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.17d64d1458c6b56d:core.Destroy.Core", scope: null, file: !1, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} +// CHECK:STDOUT: !18 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 22, column: 3, scope: !25) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 21, column: 3, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 22, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 22, column: 14, scope: !30) +// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 1, scope: !30) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !40 = !DILocation(line: 22, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.17d64d1458c6b56d:core.Destroy.Core", scope: null, file: !18, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !21) +// CHECK:STDOUT: !44 = !DILocation(line: 22, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !18, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !21) +// CHECK:STDOUT: !48 = !DILocation(line: 22, column: 3, scope: !46) +// CHECK:STDOUT: !49 = !{!47} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/convert.carbon b/toolchain/lower/testdata/class/convert.carbon index 6a42a9de24e3..fddb72a00907 100644 --- a/toolchain/lower/testdata/class/convert.carbon +++ b/toolchain/lower/testdata/class/convert.carbon @@ -32,48 +32,48 @@ fn DoIt() { // CHECK:STDOUT: @IntWrapper.val.loc24_3 = internal constant { i32 } { i32 42 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_40.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc18_40.2 = load i32, ptr %.loc18_40.1.n, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc18_40.2, !dbg !12 +// CHECK:STDOUT: %.loc18_40.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %.loc18_40.2 = load i32, ptr %.loc18_40.1.n, align 4, !dbg !35 +// CHECK:STDOUT: ret i32 %.loc18_40.2, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConsume.Main(i32 %_) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CConsume.Main(i32 %_) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDoIt.Main() #0 !dbg !19 { +// CHECK:STDOUT: define void @_CDoIt.Main() #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %w.var = alloca { i32 }, align 4, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %w.var), !dbg !22 -// CHECK:STDOUT: %.loc24_31.3.n = getelementptr inbounds nuw { i32 }, ptr %w.var, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %w.var, ptr align 4 @IntWrapper.val.loc24_3, i64 4, i1 false), !dbg !22 -// CHECK:STDOUT: %IntWrapper.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %w.var), !dbg !24 -// CHECK:STDOUT: call void @_CConsume.Main(i32 %IntWrapper.as.ImplicitAs.impl.Convert.call), !dbg !25 -// CHECK:STDOUT: call void @"_COp.44651c3f1152aab5:core.Destroy.Core"(ptr %w.var), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: %w.var = alloca { i32 }, align 4, !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %w.var), !dbg !44 +// CHECK:STDOUT: %.loc24_31.3.n = getelementptr inbounds nuw { i32 }, ptr %w.var, i32 0, i32 0, !dbg !45 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %w.var, ptr align 4 @IntWrapper.val.loc24_3, i64 4, i1 false), !dbg !44 +// CHECK:STDOUT: %IntWrapper.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %w.var), !dbg !47 +// CHECK:STDOUT: call void @_CConsume.Main(i32 %IntWrapper.as.ImplicitAs.impl.Convert.call), !dbg !48 +// CHECK:STDOUT: call void @"_COp.44651c3f1152aab5:core.Destroy.Core"(ptr %w.var), !dbg !44 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b1b85bf5fbbbeec6:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.b1b85bf5fbbbeec6:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.44651c3f1152aab5:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.44651c3f1152aab5:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -85,48 +85,48 @@ fn DoIt() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 18, column: 36, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 29, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Consume", linkageName: "_CConsume.Main", scope: null, file: !1, line: 21, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !7} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 21, column: 1, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "DoIt", linkageName: "_CDoIt.Main", scope: null, file: !1, line: 23, type: !20, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null} -// CHECK:STDOUT: !22 = !DILocation(line: 24, column: 3, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 24, column: 23, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 25, column: 11, scope: !19) -// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 3, scope: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 23, column: 1, scope: !19) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 24, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 24, column: 3, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b1b85bf5fbbbeec6:core.Destroy.Core", scope: null, file: !1, line: 24, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !32 = !DISubroutineType(types: !33) -// CHECK:STDOUT: !33 = !{null, !8} -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !31, type: !8) -// CHECK:STDOUT: !36 = !DILocation(line: 24, column: 3, scope: !31) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.44651c3f1152aab5:core.Destroy.Core", scope: null, file: !1, line: 24, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !8) -// CHECK:STDOUT: !40 = !DILocation(line: 24, column: 3, scope: !37) +// CHECK:STDOUT: !18 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core", scope: null, file: !18, line: 18, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !37) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 36, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 18, column: 29, scope: !30) +// CHECK:STDOUT: !37 = !{!31} +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Consume", linkageName: "_CConsume.Main", scope: null, file: !18, line: 21, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !42) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !41 = !DILocation(line: 21, column: 1, scope: !38) +// CHECK:STDOUT: !42 = !{!39} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "DoIt", linkageName: "_CDoIt.Main", scope: null, file: !18, line: 23, type: !27, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !43) +// CHECK:STDOUT: !45 = !DILocation(line: 24, column: 23, scope: !43) +// CHECK:STDOUT: !47 = !DILocation(line: 25, column: 11, scope: !43) +// CHECK:STDOUT: !48 = !DILocation(line: 25, column: 3, scope: !43) +// CHECK:STDOUT: !49 = !DILocation(line: 23, column: 1, scope: !43) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 24, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !53) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !20) +// CHECK:STDOUT: !52 = !DILocation(line: 24, column: 3, scope: !50) +// CHECK:STDOUT: !53 = !{!51} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b1b85bf5fbbbeec6:core.Destroy.Core", scope: null, file: !18, line: 24, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !21) +// CHECK:STDOUT: !56 = !DILocation(line: 24, column: 3, scope: !54) +// CHECK:STDOUT: !57 = !{!55} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.44651c3f1152aab5:core.Destroy.Core", scope: null, file: !18, line: 24, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !21) +// CHECK:STDOUT: !60 = !DILocation(line: 24, column: 3, scope: !58) +// CHECK:STDOUT: !61 = !{!59} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/field.carbon b/toolchain/lower/testdata/class/field.carbon index 3d22b199f7a1..c5f80bc3a9e2 100644 --- a/toolchain/lower/testdata/class/field.carbon +++ b/toolchain/lower/testdata/class/field.carbon @@ -73,45 +73,45 @@ fn Run() { // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main(ptr %c) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main(ptr %c) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_13.1.b = getelementptr inbounds nuw { i32, ptr }, ptr %c, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %.loc10_13.2 = load ptr, ptr %.loc10_13.1.b, align 8, !dbg !11 -// CHECK:STDOUT: %.loc10_16.1.a = getelementptr inbounds nuw { i32, ptr }, ptr %.loc10_13.2, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc10_16.2 = load i32, ptr %.loc10_16.1.a, align 4, !dbg !12 -// CHECK:STDOUT: ret i32 %.loc10_16.2, !dbg !13 +// CHECK:STDOUT: %.loc10_13.1.b = getelementptr inbounds nuw { i32, ptr }, ptr %c, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: %.loc10_13.2 = load ptr, ptr %.loc10_13.1.b, align 8, !dbg !35 +// CHECK:STDOUT: %.loc10_16.1.a = getelementptr inbounds nuw { i32, ptr }, ptr %.loc10_13.2, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: %.loc10_16.2 = load i32, ptr %.loc10_16.1.a, align 4, !dbg !37 +// CHECK:STDOUT: ret i32 %.loc10_16.2, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !14 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i32, ptr }, align 8, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !17 -// CHECK:STDOUT: %.loc15_4.a = getelementptr inbounds nuw { i32, ptr }, ptr %c.var, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: store i32 1, ptr %.loc15_4.a, align 4, !dbg !18 -// CHECK:STDOUT: %.loc16.b = getelementptr inbounds nuw { i32, ptr }, ptr %c.var, i32 0, i32 1, !dbg !19 -// CHECK:STDOUT: store ptr %c.var, ptr %.loc16.b, align 8, !dbg !19 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr %c.var), !dbg !20 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !17 -// CHECK:STDOUT: ret i32 %F.call, !dbg !21 +// CHECK:STDOUT: %c.var = alloca { i32, ptr }, align 8, !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !43 +// CHECK:STDOUT: %.loc15_4.a = getelementptr inbounds nuw { i32, ptr }, ptr %c.var, i32 0, i32 0, !dbg !45 +// CHECK:STDOUT: store i32 1, ptr %.loc15_4.a, align 4, !dbg !45 +// CHECK:STDOUT: %.loc16.b = getelementptr inbounds nuw { i32, ptr }, ptr %c.var, i32 0, i32 1, !dbg !46 +// CHECK:STDOUT: store ptr %c.var, ptr %.loc16.b, align 8, !dbg !46 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr %c.var), !dbg !50 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !43 +// CHECK:STDOUT: ret i32 %F.call, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.17d64d1458c6b56d:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.17d64d1458c6b56d:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -120,47 +120,47 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 10, column: 12, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 10, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !15, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{!7} -// CHECK:STDOUT: !17 = !DILocation(line: 14, column: 3, scope: !14) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !14) -// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !14) -// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 10, scope: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 3, scope: !14) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !7} -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !22, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 14, column: 3, scope: !22) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.17d64d1458c6b56d:core.Destroy.Core", scope: null, file: !1, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !8} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !8) -// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !8) -// CHECK:STDOUT: !37 = !DILocation(line: 14, column: 3, scope: !34) +// CHECK:STDOUT: !18 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !21) +// CHECK:STDOUT: !35 = !DILocation(line: 10, column: 12, scope: !30) +// CHECK:STDOUT: !37 = !DILocation(line: 10, column: 10, scope: !30) +// CHECK:STDOUT: !38 = !DILocation(line: 10, column: 3, scope: !30) +// CHECK:STDOUT: !39 = !{!31} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !43 = !DILocation(line: 14, column: 3, scope: !40) +// CHECK:STDOUT: !45 = !DILocation(line: 15, column: 3, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 16, column: 3, scope: !40) +// CHECK:STDOUT: !50 = !DILocation(line: 17, column: 10, scope: !40) +// CHECK:STDOUT: !51 = !DILocation(line: 17, column: 3, scope: !40) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !55) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !20) +// CHECK:STDOUT: !54 = !DILocation(line: 14, column: 3, scope: !52) +// CHECK:STDOUT: !55 = !{!53} +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.17d64d1458c6b56d:core.Destroy.Core", scope: null, file: !18, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !59) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !21) +// CHECK:STDOUT: !58 = !DILocation(line: 14, column: 3, scope: !56) +// CHECK:STDOUT: !59 = !{!57} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !18, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !21) +// CHECK:STDOUT: !62 = !DILocation(line: 14, column: 3, scope: !60) +// CHECK:STDOUT: !63 = !{!61} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'inplace_init_with_nonconst.carbon' @@ -169,37 +169,37 @@ fn Run() { // CHECK:STDOUT: @Other.val.loc15_33.5 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !66 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %o.var = alloca {}, align 1, !dbg !8 -// CHECK:STDOUT: %_.var = alloca { ptr, {} }, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %o.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: %.loc15_33.2.a = getelementptr inbounds nuw { ptr, {} }, ptr %_.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: store ptr %o.var, ptr %.loc15_33.2.a, align 8, !dbg !10 -// CHECK:STDOUT: %.loc15_33.4.b = getelementptr inbounds nuw { ptr, {} }, ptr %_.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc15_33.4.b, ptr align 1 @Other.val.loc15_33.5, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %o.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !11 +// CHECK:STDOUT: %o.var = alloca {}, align 1, !dbg !67 +// CHECK:STDOUT: %_.var = alloca { ptr, {} }, align 8, !dbg !69 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %o.var), !dbg !67 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !69 +// CHECK:STDOUT: %.loc15_33.2.a = getelementptr inbounds nuw { ptr, {} }, ptr %_.var, i32 0, i32 0, !dbg !72 +// CHECK:STDOUT: store ptr %o.var, ptr %.loc15_33.2.a, align 8, !dbg !72 +// CHECK:STDOUT: %.loc15_33.4.b = getelementptr inbounds nuw { ptr, {} }, ptr %_.var, i32 0, i32 1, !dbg !72 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc15_33.4.b, ptr align 1 @Other.val.loc15_33.5, i64 0, i1 false), !dbg !72 +// CHECK:STDOUT: call void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %_.var), !dbg !69 +// CHECK:STDOUT: call void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %o.var), !dbg !67 +// CHECK:STDOUT: ret i32 0, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e3984e3bd9fbe02:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e3984e3bd9fbe02:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -214,36 +214,36 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!65} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "inplace_init_with_nonconst.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 16, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 11, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82121332abd7a34:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e3984e3bd9fbe02:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8f6cee575ea47869:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !15) -// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 3, scope: !23) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !64 = !DIFile(filename: "inplace_init_with_nonconst.carbon", directory: "") +// CHECK:STDOUT: !65 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !64, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !64, line: 11, type: !25, spFlags: DISPFlagDefinition, unit: !65) +// CHECK:STDOUT: !67 = !DILocation(line: 12, column: 3, scope: !66) +// CHECK:STDOUT: !69 = !DILocation(line: 15, column: 3, scope: !66) +// CHECK:STDOUT: !72 = !DILocation(line: 15, column: 16, scope: !66) +// CHECK:STDOUT: !74 = !DILocation(line: 11, column: 1, scope: !66) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82121332abd7a34:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !78) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !21) +// CHECK:STDOUT: !77 = !DILocation(line: 15, column: 3, scope: !75) +// CHECK:STDOUT: !78 = !{!76} +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e3984e3bd9fbe02:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !82) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !21) +// CHECK:STDOUT: !81 = !DILocation(line: 15, column: 3, scope: !79) +// CHECK:STDOUT: !82 = !{!80} +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8f6cee575ea47869:core.Destroy.Core", scope: null, file: !64, line: 15, type: !29, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !86) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !21) +// CHECK:STDOUT: !85 = !DILocation(line: 15, column: 3, scope: !83) +// CHECK:STDOUT: !86 = !{!84} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'implicit_init_with_nonempty_nonconst.carbon' @@ -252,50 +252,50 @@ fn Run() { // CHECK:STDOUT: @Other.val.loc17_40.5 = internal constant { i32 } { i32 42 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %o.var = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %_.var = alloca <{ ptr, { i32 } }>, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %o.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: %.loc17_40.2.a = getelementptr inbounds nuw <{ ptr, { i32 } }>, ptr %_.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: store ptr %o.var, ptr %.loc17_40.2.a, align 8, !dbg !10 -// CHECK:STDOUT: %.loc17_40.4.b = getelementptr inbounds nuw <{ ptr, { i32 } }>, ptr %_.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: %.loc17_39.3.v = getelementptr inbounds nuw { i32 }, ptr %.loc17_40.4.b, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %.loc17_40.4.b, ptr align 4 @Other.val.loc17_40.5, i64 4, i1 false), !dbg !10 -// CHECK:STDOUT: call void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %o.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !12 +// CHECK:STDOUT: %o.var = alloca { i32 }, align 4, !dbg !90 +// CHECK:STDOUT: %_.var = alloca <{ ptr, { i32 } }>, align 8, !dbg !92 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %o.var), !dbg !90 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !92 +// CHECK:STDOUT: %.loc17_40.2.a = getelementptr inbounds nuw <{ ptr, { i32 } }>, ptr %_.var, i32 0, i32 0, !dbg !95 +// CHECK:STDOUT: store ptr %o.var, ptr %.loc17_40.2.a, align 8, !dbg !95 +// CHECK:STDOUT: %.loc17_40.4.b = getelementptr inbounds nuw <{ ptr, { i32 } }>, ptr %_.var, i32 0, i32 1, !dbg !95 +// CHECK:STDOUT: %.loc17_39.3.v = getelementptr inbounds nuw { i32 }, ptr %.loc17_40.4.b, i32 0, i32 0, !dbg !96 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %.loc17_40.4.b, ptr align 4 @Other.val.loc17_40.5, i64 4, i1 false), !dbg !95 +// CHECK:STDOUT: call void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %_.var), !dbg !92 +// CHECK:STDOUT: call void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %o.var), !dbg !90 +// CHECK:STDOUT: ret i32 0, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !99 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3264ca7d25351da2:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.3264ca7d25351da2:core.Destroy.Core"(ptr %self) #0 !dbg !103 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.d82121332abd7a34:core.Destroy.Core"(ptr %self) #0 !dbg !107 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e3984e3bd9fbe02:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e3984e3bd9fbe02:core.Destroy.Core"(ptr %self) #0 !dbg !111 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.8f6cee575ea47869:core.Destroy.Core"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -310,45 +310,45 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!88} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "implicit_init_with_nonempty_nonconst.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 17, column: 16, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 31, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 17, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !7} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3264ca7d25351da2:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82121332abd7a34:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) -// CHECK:STDOUT: !29 = !DILocation(line: 17, column: 3, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e3984e3bd9fbe02:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !22) -// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 3, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8f6cee575ea47869:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !22) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 3, scope: !34) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !87 = !DIFile(filename: "implicit_init_with_nonempty_nonconst.carbon", directory: "") +// CHECK:STDOUT: !88 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !87, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !87, line: 13, type: !25, spFlags: DISPFlagDefinition, unit: !88) +// CHECK:STDOUT: !90 = !DILocation(line: 14, column: 3, scope: !89) +// CHECK:STDOUT: !92 = !DILocation(line: 17, column: 3, scope: !89) +// CHECK:STDOUT: !95 = !DILocation(line: 17, column: 16, scope: !89) +// CHECK:STDOUT: !96 = !DILocation(line: 17, column: 31, scope: !89) +// CHECK:STDOUT: !98 = !DILocation(line: 13, column: 1, scope: !89) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !87, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !102) +// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !99, type: !20) +// CHECK:STDOUT: !101 = !DILocation(line: 17, column: 3, scope: !99) +// CHECK:STDOUT: !102 = !{!100} +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3264ca7d25351da2:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !106) +// CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !103, type: !21) +// CHECK:STDOUT: !105 = !DILocation(line: 17, column: 3, scope: !103) +// CHECK:STDOUT: !106 = !{!104} +// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82121332abd7a34:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !110) +// CHECK:STDOUT: !108 = !DILocalVariable(arg: 1, scope: !107, type: !21) +// CHECK:STDOUT: !109 = !DILocation(line: 17, column: 3, scope: !107) +// CHECK:STDOUT: !110 = !{!108} +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e3984e3bd9fbe02:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !114) +// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !21) +// CHECK:STDOUT: !113 = !DILocation(line: 17, column: 3, scope: !111) +// CHECK:STDOUT: !114 = !{!112} +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8f6cee575ea47869:core.Destroy.Core", scope: null, file: !87, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !88, retainedNodes: !118) +// CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !21) +// CHECK:STDOUT: !117 = !DILocation(line: 17, column: 3, scope: !115) +// CHECK:STDOUT: !118 = !{!116} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/field_initializer.carbon b/toolchain/lower/testdata/class/field_initializer.carbon index 6277de7a5a75..280ff66fe040 100644 --- a/toolchain/lower/testdata/class/field_initializer.carbon +++ b/toolchain/lower/testdata/class/field_initializer.carbon @@ -28,10 +28,10 @@ var c: C = {}; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cc.Main, ptr align 4 @C.val.loc7_1, i64 4, i1 false), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cc.Main, ptr align 4 @C.val.loc7_1, i64 4, i1 false), !dbg !24 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -40,16 +40,16 @@ var c: C = {}; // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "field_initializer.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "field_initializer.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 1, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 0, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/generic.carbon b/toolchain/lower/testdata/class/generic.carbon index d9ffe2a0c680..9a0887848f67 100644 --- a/toolchain/lower/testdata/class/generic.carbon +++ b/toolchain/lower/testdata/class/generic.carbon @@ -106,13 +106,13 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: ; ModuleID = 'classes.carbon' // CHECK:STDOUT: source_filename = "classes.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "classes.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !DIFile(filename: "classes.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'create.carbon' @@ -121,20 +121,20 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: @Derived.val.loc7_36 = internal constant { { i32 }, i32 } { { i32 } { i32 1 }, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCreateDerived.Create(ptr sret({ { i32 }, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCreateDerived.Create(ptr sret({ { i32 }, i32 }) %return) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_35.2.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc7_26.3.b = getelementptr inbounds nuw { i32 }, ptr %.loc7_35.2.base, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: %.loc7_35.6.d = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @Derived.val.loc7_36, i64 8, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %.loc7_35.2.base = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 0, !dbg !43 +// CHECK:STDOUT: %.loc7_26.3.b = getelementptr inbounds nuw { i32 }, ptr %.loc7_35.2.base, i32 0, i32 0, !dbg !44 +// CHECK:STDOUT: %.loc7_35.6.d = getelementptr inbounds nuw { { i32 }, i32 }, ptr %return, i32 0, i32 1, !dbg !43 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @Derived.val.loc7_36, i64 8, i1 false), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCreateAdapter.Create(ptr sret({ { i32 }, i32 }) %return) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CCreateAdapter.Create(ptr sret({ { i32 }, i32 }) %return) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCreateDerived.Create(ptr %return), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @_CCreateDerived.Create(ptr %return), !dbg !49 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -143,23 +143,23 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!35} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "create.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CreateDerived", linkageName: "_CCreateDerived.Create", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 7, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CreateAdapter", linkageName: "_CCreateAdapter.Create", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 11, column: 10, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 11, column: 3, scope: !11) +// CHECK:STDOUT: !34 = !DIFile(filename: "create.carbon", directory: "") +// CHECK:STDOUT: !35 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !34, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{!37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "CreateDerived", linkageName: "_CCreateDerived.Create", scope: null, file: !34, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !35) +// CHECK:STDOUT: !43 = !DILocation(line: 7, column: 10, scope: !40) +// CHECK:STDOUT: !44 = !DILocation(line: 7, column: 19, scope: !40) +// CHECK:STDOUT: !45 = !DILocation(line: 7, column: 3, scope: !40) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "CreateAdapter", linkageName: "_CCreateAdapter.Create", scope: null, file: !34, line: 10, type: !39, spFlags: DISPFlagDefinition, unit: !35) +// CHECK:STDOUT: !49 = !DILocation(line: 11, column: 10, scope: !46) +// CHECK:STDOUT: !50 = !DILocation(line: 11, column: 3, scope: !46) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'create_generic.carbon' @@ -168,65 +168,65 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: @tuple.102.loc22_28.6 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInts.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CInts.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.4d6ceefeb7f772f4(ptr %return, i32 1, i32 2), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: call void @_CMake.Main.4d6ceefeb7f772f4(ptr %return, i32 1, i32 2), !dbg !56 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CEmpty.Main(ptr sret({ {}, {} }) %return) #0 !dbg !10 { +// CHECK:STDOUT: define void @_CEmpty.Main(ptr sret({ {}, {} }) %return) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.22bf4b2f6c4322a2(ptr %return), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: call void @_CMake.Main.22bf4b2f6c4322a2(ptr %return), !dbg !63 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTuples.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CTuples.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.878c3517da47a752(ptr %return, ptr @tuple.102.loc22_28.6, ptr @tuple.102.loc22_28.6), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: call void @_CMake.Main.878c3517da47a752(ptr %return, ptr @tuple.102.loc22_28.6, ptr @tuple.102.loc22_28.6), !dbg !72 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.4d6ceefeb7f772f4(ptr sret({ i32, i32 }) %return, i32 %x, i32 %y) #0 !dbg !16 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.4d6ceefeb7f772f4(ptr sret({ i32, i32 }) %return, i32 %x, i32 %y) #0 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: store i32 %x, ptr %.loc10_25.2.x, align 4, !dbg !23 -// CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !23 -// CHECK:STDOUT: store i32 %y, ptr %.loc10_25.4.y, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !85 +// CHECK:STDOUT: store i32 %x, ptr %.loc10_25.2.x, align 4, !dbg !85 +// CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !85 +// CHECK:STDOUT: store i32 %y, ptr %.loc10_25.4.y, align 4, !dbg !85 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.22bf4b2f6c4322a2(ptr sret({ {}, {} }) %return) #0 !dbg !25 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.22bf4b2f6c4322a2(ptr sret({ {}, {} }) %return) #0 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { {}, {} }, ptr %return, i32 0, i32 0, !dbg !26 -// CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { {}, {} }, ptr %return, i32 0, i32 1, !dbg !26 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { {}, {} }, ptr %return, i32 0, i32 0, !dbg !95 +// CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { {}, {} }, ptr %return, i32 0, i32 1, !dbg !95 +// CHECK:STDOUT: ret void, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.878c3517da47a752(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.878c3517da47a752(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %.loc10_25.2.x, ptr %x), !dbg !35 -// CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !34 -// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %.loc10_25.4.y, ptr %y), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !106 +// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %.loc10_25.2.x, ptr %x), !dbg !104 +// CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !106 +// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %.loc10_25.4.y, ptr %y), !dbg !105 +// CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !38 { -// CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !44 -// CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !44 -// CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !45 -// CHECK:STDOUT: %tuple.elem2 = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !46 -// CHECK:STDOUT: %tuple.elem.load3 = load i32, ptr %tuple.elem2, align 4, !dbg !46 -// CHECK:STDOUT: %tuple.elem4 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !45 -// CHECK:STDOUT: store i32 %tuple.elem.load, ptr %tuple.elem1, align 4, !dbg !45 -// CHECK:STDOUT: store i32 %tuple.elem.load3, ptr %tuple.elem4, align 4, !dbg !45 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: define linkonce_odr void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !111 { +// CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !116 +// CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !116 +// CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !117 +// CHECK:STDOUT: %tuple.elem2 = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !118 +// CHECK:STDOUT: %tuple.elem.load3 = load i32, ptr %tuple.elem2, align 4, !dbg !118 +// CHECK:STDOUT: %tuple.elem4 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !117 +// CHECK:STDOUT: store i32 %tuple.elem.load, ptr %tuple.elem1, align 4, !dbg !117 +// CHECK:STDOUT: store i32 %tuple.elem.load3, ptr %tuple.elem4, align 4, !dbg !117 +// CHECK:STDOUT: ret void, !dbg !119 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -234,57 +234,57 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!52} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "create_generic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Ints", linkageName: "_CInts.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Empty", linkageName: "_CEmpty.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 18, column: 10, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !10) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Tuples", linkageName: "_CTuples.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 10, scope: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 3, scope: !13) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{!7, !19, !19} -// CHECK:STDOUT: !19 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !20 = !{!21, !22} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 2, scope: !16, type: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 10, column: 10, scope: !16) -// CHECK:STDOUT: !24 = !DILocation(line: 10, column: 3, scope: !16) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.22bf4b2f6c4322a2", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !26 = !DILocation(line: 10, column: 10, scope: !25) -// CHECK:STDOUT: !27 = !DILocation(line: 10, column: 3, scope: !25) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.878c3517da47a752", scope: null, file: !1, line: 9, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{!7, !7, !7} -// CHECK:STDOUT: !31 = !{!32, !33} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !7) -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !28, type: !7) -// CHECK:STDOUT: !34 = !DILocation(line: 10, column: 10, scope: !28) -// CHECK:STDOUT: !35 = !DILocation(line: 10, column: 16, scope: !28) -// CHECK:STDOUT: !36 = !DILocation(line: 10, column: 24, scope: !28) -// CHECK:STDOUT: !37 = !DILocation(line: 10, column: 3, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb", scope: null, file: !39, line: 52, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !39 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{!7, !7} -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 53, column: 13, scope: !38) -// CHECK:STDOUT: !45 = !DILocation(line: 53, column: 12, scope: !38) -// CHECK:STDOUT: !46 = !DILocation(line: 53, column: 26, scope: !38) -// CHECK:STDOUT: !47 = !DILocation(line: 53, column: 5, scope: !38) +// CHECK:STDOUT: !9 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") +// CHECK:STDOUT: !36 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{!37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !51 = !DIFile(filename: "create_generic.carbon", directory: "") +// CHECK:STDOUT: !52 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !51, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Ints", linkageName: "_CInts.Main", scope: null, file: !51, line: 13, type: !39, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !56 = !DILocation(line: 14, column: 10, scope: !53) +// CHECK:STDOUT: !57 = !{!37, !36, !36} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !59 = !DILocation(line: 14, column: 3, scope: !53) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Empty", linkageName: "_CEmpty.Main", scope: null, file: !51, line: 17, type: !39, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !63 = !DILocation(line: 18, column: 10, scope: !60) +// CHECK:STDOUT: !64 = !DILocation(line: 18, column: 3, scope: !60) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Tuples", linkageName: "_CTuples.Main", scope: null, file: !51, line: 21, type: !39, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !72 = !DILocation(line: 23, column: 10, scope: !65) +// CHECK:STDOUT: !73 = !{!37, !37, !37} +// CHECK:STDOUT: !74 = !DISubroutineType(types: !73) +// CHECK:STDOUT: !75 = !DILocation(line: 23, column: 3, scope: !65) +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.4d6ceefeb7f772f4", scope: null, file: !51, line: 9, type: !58, spFlags: DISPFlagDefinition, unit: !52, retainedNodes: !87) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !36) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 2, scope: !76, type: !36) +// CHECK:STDOUT: !85 = !DILocation(line: 10, column: 10, scope: !76) +// CHECK:STDOUT: !86 = !DILocation(line: 10, column: 3, scope: !76) +// CHECK:STDOUT: !87 = !{!77, !78} +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.22bf4b2f6c4322a2", scope: null, file: !51, line: 9, type: !39, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !95 = !DILocation(line: 10, column: 10, scope: !88) +// CHECK:STDOUT: !96 = !DILocation(line: 10, column: 3, scope: !88) +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.878c3517da47a752", scope: null, file: !51, line: 9, type: !74, spFlags: DISPFlagDefinition, unit: !52, retainedNodes: !110) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !37) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 2, scope: !97, type: !37) +// CHECK:STDOUT: !104 = !DILocation(line: 10, column: 16, scope: !97) +// CHECK:STDOUT: !105 = !DILocation(line: 10, column: 24, scope: !97) +// CHECK:STDOUT: !106 = !DILocation(line: 10, column: 10, scope: !97) +// CHECK:STDOUT: !107 = !{!37, !37} +// CHECK:STDOUT: !108 = !DISubroutineType(types: !107) +// CHECK:STDOUT: !109 = !DILocation(line: 10, column: 3, scope: !97) +// CHECK:STDOUT: !110 = !{!98, !99} +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb", scope: null, file: !9, line: 52, type: !108, spFlags: DISPFlagDefinition, unit: !52, retainedNodes: !120) +// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !37) +// CHECK:STDOUT: !116 = !DILocation(line: 53, column: 13, scope: !111) +// CHECK:STDOUT: !117 = !DILocation(line: 53, column: 12, scope: !111) +// CHECK:STDOUT: !118 = !DILocation(line: 53, column: 26, scope: !111) +// CHECK:STDOUT: !119 = !DILocation(line: 53, column: 5, scope: !111) +// CHECK:STDOUT: !120 = !{!112} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'access.carbon' @@ -295,106 +295,106 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: @C.val.727.loc31_3 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CAccessBool.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CAccessBool.Main() #0 !dbg !131 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i1, i32 }, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 -// CHECK:STDOUT: %.loc16_37.2.v = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: %.loc16_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.29b.loc16_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: %C.GetBool.call = call i1 @_CGetBool.C.Main.4d6ceefeb7f772f4(ptr %c.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %c.var), !dbg !8 -// CHECK:STDOUT: ret i1 %C.GetBool.call, !dbg !11 +// CHECK:STDOUT: %c.var = alloca { i1, i32 }, align 4, !dbg !134 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !134 +// CHECK:STDOUT: %.loc16_37.2.v = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 0, !dbg !135 +// CHECK:STDOUT: %.loc16_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !135 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.29b.loc16_3, i64 8, i1 false), !dbg !134 +// CHECK:STDOUT: %C.GetBool.call = call i1 @_CGetBool.C.Main.4d6ceefeb7f772f4(ptr %c.var), !dbg !137 +// CHECK:STDOUT: call void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %c.var), !dbg !134 +// CHECK:STDOUT: ret i1 %C.GetBool.call, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !139 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e72c587127f1eaf2:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.e72c587127f1eaf2:core.Destroy.Core"(ptr %self) #0 !dbg !143 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %self) #0 !dbg !147 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessInt.Main() #0 !dbg !29 { +// CHECK:STDOUT: define i32 @_CAccessInt.Main() #0 !dbg !151 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i1, i32 }, align 4, !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !32 -// CHECK:STDOUT: %.loc21_37.2.v = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 0, !dbg !33 -// CHECK:STDOUT: %.loc21_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !33 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.29b.loc16_3, i64 8, i1 false), !dbg !32 -// CHECK:STDOUT: %C.GetT.call = call i32 @_CGetT.C.Main.4d6ceefeb7f772f4(ptr %c.var), !dbg !34 -// CHECK:STDOUT: call void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %c.var), !dbg !32 -// CHECK:STDOUT: ret i32 %C.GetT.call, !dbg !35 +// CHECK:STDOUT: %c.var = alloca { i1, i32 }, align 4, !dbg !154 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !154 +// CHECK:STDOUT: %.loc21_37.2.v = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 0, !dbg !155 +// CHECK:STDOUT: %.loc21_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !155 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.29b.loc16_3, i64 8, i1 false), !dbg !154 +// CHECK:STDOUT: %C.GetT.call = call i32 @_CGetT.C.Main.4d6ceefeb7f772f4(ptr %c.var), !dbg !157 +// CHECK:STDOUT: call void @"_COp.a0d0786a20116357:core.Destroy.Core"(ptr %c.var), !dbg !154 +// CHECK:STDOUT: ret i32 %C.GetT.call, !dbg !160 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAccessEmpty.Main() #0 !dbg !36 { +// CHECK:STDOUT: define void @_CAccessEmpty.Main() #0 !dbg !161 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i1, {} }, align 1, !dbg !39 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !39 -// CHECK:STDOUT: %.loc26_37.2.v = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 0, !dbg !40 -// CHECK:STDOUT: %.loc26_37.4.w = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 1, !dbg !40 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.0ea.loc26_3, i64 1, i1 false), !dbg !39 -// CHECK:STDOUT: call void @_CGetT.C.Main.22bf4b2f6c4322a2(ptr %c.var), !dbg !41 -// CHECK:STDOUT: call void @"_COp.b215ecea30cf644d:core.Destroy.Core"(ptr %c.var), !dbg !39 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: %c.var = alloca { i1, {} }, align 1, !dbg !164 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !164 +// CHECK:STDOUT: %.loc26_37.2.v = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 0, !dbg !165 +// CHECK:STDOUT: %.loc26_37.4.w = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 1, !dbg !165 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.0ea.loc26_3, i64 1, i1 false), !dbg !164 +// CHECK:STDOUT: call void @_CGetT.C.Main.22bf4b2f6c4322a2(ptr %c.var), !dbg !167 +// CHECK:STDOUT: call void @"_COp.b215ecea30cf644d:core.Destroy.Core"(ptr %c.var), !dbg !164 +// CHECK:STDOUT: ret void, !dbg !168 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e76d4e9768eb659e:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.e76d4e9768eb659e:core.Destroy.Core"(ptr %self) #0 !dbg !169 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !171 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b215ecea30cf644d:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.b215ecea30cf644d:core.Destroy.Core"(ptr %self) #0 !dbg !173 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: ret void, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAccessTuple.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !51 { +// CHECK:STDOUT: define void @_CAccessTuple.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !177 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i1, { i32, i32, i32 } }, align 4, !dbg !52 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !52 -// CHECK:STDOUT: %.loc31_57.2.v = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %c.var, i32 0, i32 0, !dbg !53 -// CHECK:STDOUT: %.loc31_57.4.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %c.var, i32 0, i32 1, !dbg !53 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 0, !dbg !54 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 1, !dbg !54 -// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 2, !dbg !54 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.727.loc31_3, i64 16, i1 false), !dbg !52 -// CHECK:STDOUT: call void @_CGetT.C.Main.03220e6718a91584(ptr %return, ptr %c.var), !dbg !55 -// CHECK:STDOUT: call void @"_COp.d1fe91796c0f0ec3:core.Destroy.Core"(ptr %c.var), !dbg !52 -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: %c.var = alloca { i1, { i32, i32, i32 } }, align 4, !dbg !180 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !180 +// CHECK:STDOUT: %.loc31_57.2.v = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %c.var, i32 0, i32 0, !dbg !181 +// CHECK:STDOUT: %.loc31_57.4.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %c.var, i32 0, i32 1, !dbg !181 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 0, !dbg !182 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 1, !dbg !182 +// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 2, !dbg !182 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.727.loc31_3, i64 16, i1 false), !dbg !180 +// CHECK:STDOUT: call void @_CGetT.C.Main.03220e6718a91584(ptr %return, ptr %c.var), !dbg !184 +// CHECK:STDOUT: call void @"_COp.d1fe91796c0f0ec3:core.Destroy.Core"(ptr %c.var), !dbg !180 +// CHECK:STDOUT: ret void, !dbg !185 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !186 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: ret void, !dbg !188 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f23404d5ba6ed9a1:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.f23404d5ba6ed9a1:core.Destroy.Core"(ptr %self) #0 !dbg !190 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: ret void, !dbg !192 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d1fe91796c0f0ec3:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.d1fe91796c0f0ec3:core.Destroy.Core"(ptr %self) #0 !dbg !194 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: ret void, !dbg !196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -404,52 +404,52 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CGetBool.C.Main.4d6ceefeb7f772f4(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define linkonce_odr i1 @_CGetBool.C.Main.4d6ceefeb7f772f4(ptr %self) #0 !dbg !198 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc6_16.1.v = getelementptr inbounds nuw { i1, i32 }, ptr %self, i32 0, i32 0, !dbg !74 -// CHECK:STDOUT: %.loc6_16.2 = load i8, ptr %.loc6_16.1.v, align 1, !dbg !74 -// CHECK:STDOUT: %.loc6_16.21 = trunc i8 %.loc6_16.2 to i1, !dbg !74 -// CHECK:STDOUT: ret i1 %.loc6_16.21, !dbg !75 +// CHECK:STDOUT: %.loc6_16.1.v = getelementptr inbounds nuw { i1, i32 }, ptr %self, i32 0, i32 0, !dbg !203 +// CHECK:STDOUT: %.loc6_16.2 = load i8, ptr %.loc6_16.1.v, align 1, !dbg !203 +// CHECK:STDOUT: %.loc6_16.21 = trunc i8 %.loc6_16.2 to i1, !dbg !203 +// CHECK:STDOUT: ret i1 %.loc6_16.21, !dbg !204 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGetT.C.Main.4d6ceefeb7f772f4(ptr %self) #0 !dbg !76 { +// CHECK:STDOUT: define linkonce_odr i32 @_CGetT.C.Main.4d6ceefeb7f772f4(ptr %self) #0 !dbg !206 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, i32 }, ptr %self, i32 0, i32 1, !dbg !81 -// CHECK:STDOUT: %.loc9_16.2 = load i32, ptr %.loc9_16.1.w, align 4, !dbg !81 -// CHECK:STDOUT: ret i32 %.loc9_16.2, !dbg !82 +// CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, i32 }, ptr %self, i32 0, i32 1, !dbg !211 +// CHECK:STDOUT: %.loc9_16.2 = load i32, ptr %.loc9_16.1.w, align 4, !dbg !211 +// CHECK:STDOUT: ret i32 %.loc9_16.2, !dbg !212 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.22bf4b2f6c4322a2(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.22bf4b2f6c4322a2(ptr %self) #0 !dbg !214 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, {} }, ptr %self, i32 0, i32 1, !dbg !86 -// CHECK:STDOUT: ret void, !dbg !87 +// CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, {} }, ptr %self, i32 0, i32 1, !dbg !219 +// CHECK:STDOUT: ret void, !dbg !220 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.03220e6718a91584(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.03220e6718a91584(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !222 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %self, i32 0, i32 1, !dbg !91 -// CHECK:STDOUT: call void @"_COp.6753b13effab4291:Copy.Core.c9f31a0e20c75302"(ptr %return, ptr %.loc9_16.1.w), !dbg !91 -// CHECK:STDOUT: ret void, !dbg !92 +// CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %self, i32 0, i32 1, !dbg !227 +// CHECK:STDOUT: call void @"_COp.6753b13effab4291:Copy.Core.c9f31a0e20c75302"(ptr %return, ptr %.loc9_16.1.w), !dbg !227 +// CHECK:STDOUT: ret void, !dbg !228 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.6753b13effab4291:Copy.Core.c9f31a0e20c75302"(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !93 { -// CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 0, !dbg !97 -// CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !97 -// CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !98 -// CHECK:STDOUT: %tuple.elem2 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 1, !dbg !99 -// CHECK:STDOUT: %tuple.elem.load3 = load i32, ptr %tuple.elem2, align 4, !dbg !99 -// CHECK:STDOUT: %tuple.elem4 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !98 -// CHECK:STDOUT: %tuple.elem5 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 2, !dbg !100 -// CHECK:STDOUT: %tuple.elem.load6 = load i32, ptr %tuple.elem5, align 4, !dbg !100 -// CHECK:STDOUT: %tuple.elem7 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !98 -// CHECK:STDOUT: store i32 %tuple.elem.load, ptr %tuple.elem1, align 4, !dbg !98 -// CHECK:STDOUT: store i32 %tuple.elem.load3, ptr %tuple.elem4, align 4, !dbg !98 -// CHECK:STDOUT: store i32 %tuple.elem.load6, ptr %tuple.elem7, align 4, !dbg !98 -// CHECK:STDOUT: ret void, !dbg !101 +// CHECK:STDOUT: define linkonce_odr void @"_COp.6753b13effab4291:Copy.Core.c9f31a0e20c75302"(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !230 { +// CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 0, !dbg !235 +// CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !235 +// CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !236 +// CHECK:STDOUT: %tuple.elem2 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 1, !dbg !237 +// CHECK:STDOUT: %tuple.elem.load3 = load i32, ptr %tuple.elem2, align 4, !dbg !237 +// CHECK:STDOUT: %tuple.elem4 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !236 +// CHECK:STDOUT: %tuple.elem5 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 2, !dbg !238 +// CHECK:STDOUT: %tuple.elem.load6 = load i32, ptr %tuple.elem5, align 4, !dbg !238 +// CHECK:STDOUT: %tuple.elem7 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !236 +// CHECK:STDOUT: store i32 %tuple.elem.load, ptr %tuple.elem1, align 4, !dbg !236 +// CHECK:STDOUT: store i32 %tuple.elem.load3, ptr %tuple.elem4, align 4, !dbg !236 +// CHECK:STDOUT: store i32 %tuple.elem.load6, ptr %tuple.elem7, align 4, !dbg !236 +// CHECK:STDOUT: ret void, !dbg !239 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -459,109 +459,109 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!122} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "access.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "AccessBool", linkageName: "_CAccessBool.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 19, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 17, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e72c587127f1eaf2:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !7} -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a0d0786a20116357:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 3, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "AccessInt", linkageName: "_CAccessInt.Main", scope: null, file: !1, line: 20, type: !30, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !30 = !DISubroutineType(types: !31) -// CHECK:STDOUT: !31 = !{!15} -// CHECK:STDOUT: !32 = !DILocation(line: 21, column: 3, scope: !29) -// CHECK:STDOUT: !33 = !DILocation(line: 21, column: 19, scope: !29) -// CHECK:STDOUT: !34 = !DILocation(line: 22, column: 10, scope: !29) -// CHECK:STDOUT: !35 = !DILocation(line: 22, column: 3, scope: !29) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "AccessEmpty", linkageName: "_CAccessEmpty.Main", scope: null, file: !1, line: 25, type: !37, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !37 = !DISubroutineType(types: !38) -// CHECK:STDOUT: !38 = !{null} -// CHECK:STDOUT: !39 = !DILocation(line: 26, column: 3, scope: !36) -// CHECK:STDOUT: !40 = !DILocation(line: 26, column: 18, scope: !36) -// CHECK:STDOUT: !41 = !DILocation(line: 27, column: 10, scope: !36) -// CHECK:STDOUT: !42 = !DILocation(line: 27, column: 3, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e76d4e9768eb659e:core.Destroy.Core", scope: null, file: !1, line: 26, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !46 = !DILocation(line: 26, column: 3, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b215ecea30cf644d:core.Destroy.Core", scope: null, file: !1, line: 26, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !48) -// CHECK:STDOUT: !48 = !{!49} -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !7) -// CHECK:STDOUT: !50 = !DILocation(line: 26, column: 3, scope: !47) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "AccessTuple", linkageName: "_CAccessTuple.Main", scope: null, file: !1, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !52 = !DILocation(line: 31, column: 3, scope: !51) -// CHECK:STDOUT: !53 = !DILocation(line: 31, column: 31, scope: !51) -// CHECK:STDOUT: !54 = !DILocation(line: 31, column: 48, scope: !51) -// CHECK:STDOUT: !55 = !DILocation(line: 32, column: 10, scope: !51) -// CHECK:STDOUT: !56 = !DILocation(line: 32, column: 3, scope: !51) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !7) -// CHECK:STDOUT: !60 = !DILocation(line: 31, column: 3, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f23404d5ba6ed9a1:core.Destroy.Core", scope: null, file: !1, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !7) -// CHECK:STDOUT: !64 = !DILocation(line: 31, column: 3, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d1fe91796c0f0ec3:core.Destroy.Core", scope: null, file: !1, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !66) -// CHECK:STDOUT: !66 = !{!67} -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !7) -// CHECK:STDOUT: !68 = !DILocation(line: 31, column: 3, scope: !65) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "GetBool", linkageName: "_CGetBool.C.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 5, type: !70, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !70 = !DISubroutineType(types: !71) -// CHECK:STDOUT: !71 = !{!7, !7} -// CHECK:STDOUT: !72 = !{!73} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !69, type: !7) -// CHECK:STDOUT: !74 = !DILocation(line: 6, column: 12, scope: !69) -// CHECK:STDOUT: !75 = !DILocation(line: 6, column: 5, scope: !69) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 8, type: !77, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !79) -// CHECK:STDOUT: !77 = !DISubroutineType(types: !78) -// CHECK:STDOUT: !78 = !{!15, !7} -// CHECK:STDOUT: !79 = !{!80} -// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !76, type: !7) -// CHECK:STDOUT: !81 = !DILocation(line: 9, column: 12, scope: !76) -// CHECK:STDOUT: !82 = !DILocation(line: 9, column: 5, scope: !76) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.22bf4b2f6c4322a2", scope: null, file: !1, line: 8, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !84) -// CHECK:STDOUT: !84 = !{!85} -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !7) -// CHECK:STDOUT: !86 = !DILocation(line: 9, column: 12, scope: !83) -// CHECK:STDOUT: !87 = !DILocation(line: 9, column: 5, scope: !83) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.03220e6718a91584", scope: null, file: !1, line: 8, type: !70, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !89) -// CHECK:STDOUT: !89 = !{!90} -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !7) -// CHECK:STDOUT: !91 = !DILocation(line: 9, column: 12, scope: !88) -// CHECK:STDOUT: !92 = !DILocation(line: 9, column: 5, scope: !88) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6753b13effab4291:Copy.Core.c9f31a0e20c75302", scope: null, file: !94, line: 58, type: !70, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !95) -// CHECK:STDOUT: !94 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") -// CHECK:STDOUT: !95 = !{!96} -// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !93, type: !7) -// CHECK:STDOUT: !97 = !DILocation(line: 59, column: 13, scope: !93) -// CHECK:STDOUT: !98 = !DILocation(line: 59, column: 12, scope: !93) -// CHECK:STDOUT: !99 = !DILocation(line: 59, column: 26, scope: !93) -// CHECK:STDOUT: !100 = !DILocation(line: 59, column: 39, scope: !93) -// CHECK:STDOUT: !101 = !DILocation(line: 59, column: 5, scope: !93) +// CHECK:STDOUT: !9 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") +// CHECK:STDOUT: !36 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{!37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !107 = !{!37, !37} +// CHECK:STDOUT: !108 = !DISubroutineType(types: !107) +// CHECK:STDOUT: !121 = !DIFile(filename: "access.carbon", directory: "") +// CHECK:STDOUT: !122 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !121, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !123 = !{null, !36} +// CHECK:STDOUT: !124 = !DISubroutineType(types: !123) +// CHECK:STDOUT: !125 = !{null, !37} +// CHECK:STDOUT: !126 = !DISubroutineType(types: !125) +// CHECK:STDOUT: !127 = !{!36} +// CHECK:STDOUT: !128 = !DISubroutineType(types: !127) +// CHECK:STDOUT: !129 = !{null} +// CHECK:STDOUT: !130 = !DISubroutineType(types: !129) +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "AccessBool", linkageName: "_CAccessBool.Main", scope: null, file: !121, line: 15, type: !39, spFlags: DISPFlagDefinition, unit: !122) +// CHECK:STDOUT: !134 = !DILocation(line: 16, column: 3, scope: !131) +// CHECK:STDOUT: !135 = !DILocation(line: 16, column: 19, scope: !131) +// CHECK:STDOUT: !137 = !DILocation(line: 17, column: 10, scope: !131) +// CHECK:STDOUT: !138 = !DILocation(line: 17, column: 3, scope: !131) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !121, line: 16, type: !124, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !142) +// CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !36) +// CHECK:STDOUT: !141 = !DILocation(line: 16, column: 3, scope: !139) +// CHECK:STDOUT: !142 = !{!140} +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e72c587127f1eaf2:core.Destroy.Core", scope: null, file: !121, line: 16, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !146) +// CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !143, type: !37) +// CHECK:STDOUT: !145 = !DILocation(line: 16, column: 3, scope: !143) +// CHECK:STDOUT: !146 = !{!144} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a0d0786a20116357:core.Destroy.Core", scope: null, file: !121, line: 16, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !150) +// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !37) +// CHECK:STDOUT: !149 = !DILocation(line: 16, column: 3, scope: !147) +// CHECK:STDOUT: !150 = !{!148} +// CHECK:STDOUT: !151 = distinct !DISubprogram(name: "AccessInt", linkageName: "_CAccessInt.Main", scope: null, file: !121, line: 20, type: !128, spFlags: DISPFlagDefinition, unit: !122) +// CHECK:STDOUT: !154 = !DILocation(line: 21, column: 3, scope: !151) +// CHECK:STDOUT: !155 = !DILocation(line: 21, column: 19, scope: !151) +// CHECK:STDOUT: !157 = !DILocation(line: 22, column: 10, scope: !151) +// CHECK:STDOUT: !158 = !{!36, !37} +// CHECK:STDOUT: !159 = !DISubroutineType(types: !158) +// CHECK:STDOUT: !160 = !DILocation(line: 22, column: 3, scope: !151) +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "AccessEmpty", linkageName: "_CAccessEmpty.Main", scope: null, file: !121, line: 25, type: !130, spFlags: DISPFlagDefinition, unit: !122) +// CHECK:STDOUT: !164 = !DILocation(line: 26, column: 3, scope: !161) +// CHECK:STDOUT: !165 = !DILocation(line: 26, column: 18, scope: !161) +// CHECK:STDOUT: !167 = !DILocation(line: 27, column: 10, scope: !161) +// CHECK:STDOUT: !168 = !DILocation(line: 27, column: 3, scope: !161) +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e76d4e9768eb659e:core.Destroy.Core", scope: null, file: !121, line: 26, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !172) +// CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !37) +// CHECK:STDOUT: !171 = !DILocation(line: 26, column: 3, scope: !169) +// CHECK:STDOUT: !172 = !{!170} +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b215ecea30cf644d:core.Destroy.Core", scope: null, file: !121, line: 26, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !176) +// CHECK:STDOUT: !174 = !DILocalVariable(arg: 1, scope: !173, type: !37) +// CHECK:STDOUT: !175 = !DILocation(line: 26, column: 3, scope: !173) +// CHECK:STDOUT: !176 = !{!174} +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "AccessTuple", linkageName: "_CAccessTuple.Main", scope: null, file: !121, line: 30, type: !39, spFlags: DISPFlagDefinition, unit: !122) +// CHECK:STDOUT: !180 = !DILocation(line: 31, column: 3, scope: !177) +// CHECK:STDOUT: !181 = !DILocation(line: 31, column: 31, scope: !177) +// CHECK:STDOUT: !182 = !DILocation(line: 31, column: 48, scope: !177) +// CHECK:STDOUT: !184 = !DILocation(line: 32, column: 10, scope: !177) +// CHECK:STDOUT: !185 = !DILocation(line: 32, column: 3, scope: !177) +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !189) +// CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !37) +// CHECK:STDOUT: !188 = !DILocation(line: 31, column: 3, scope: !186) +// CHECK:STDOUT: !189 = !{!187} +// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f23404d5ba6ed9a1:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !193) +// CHECK:STDOUT: !191 = !DILocalVariable(arg: 1, scope: !190, type: !37) +// CHECK:STDOUT: !192 = !DILocation(line: 31, column: 3, scope: !190) +// CHECK:STDOUT: !193 = !{!191} +// CHECK:STDOUT: !194 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d1fe91796c0f0ec3:core.Destroy.Core", scope: null, file: !121, line: 31, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !197) +// CHECK:STDOUT: !195 = !DILocalVariable(arg: 1, scope: !194, type: !37) +// CHECK:STDOUT: !196 = !DILocation(line: 31, column: 3, scope: !194) +// CHECK:STDOUT: !197 = !{!195} +// CHECK:STDOUT: !198 = distinct !DISubprogram(name: "GetBool", linkageName: "_CGetBool.C.Main.4d6ceefeb7f772f4", scope: null, file: !121, line: 5, type: !108, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !205) +// CHECK:STDOUT: !199 = !DILocalVariable(arg: 1, scope: !198, type: !37) +// CHECK:STDOUT: !203 = !DILocation(line: 6, column: 12, scope: !198) +// CHECK:STDOUT: !204 = !DILocation(line: 6, column: 5, scope: !198) +// CHECK:STDOUT: !205 = !{!199} +// CHECK:STDOUT: !206 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.4d6ceefeb7f772f4", scope: null, file: !121, line: 8, type: !159, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !213) +// CHECK:STDOUT: !207 = !DILocalVariable(arg: 1, scope: !206, type: !37) +// CHECK:STDOUT: !211 = !DILocation(line: 9, column: 12, scope: !206) +// CHECK:STDOUT: !212 = !DILocation(line: 9, column: 5, scope: !206) +// CHECK:STDOUT: !213 = !{!207} +// CHECK:STDOUT: !214 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.22bf4b2f6c4322a2", scope: null, file: !121, line: 8, type: !126, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !221) +// CHECK:STDOUT: !215 = !DILocalVariable(arg: 1, scope: !214, type: !37) +// CHECK:STDOUT: !219 = !DILocation(line: 9, column: 12, scope: !214) +// CHECK:STDOUT: !220 = !DILocation(line: 9, column: 5, scope: !214) +// CHECK:STDOUT: !221 = !{!215} +// CHECK:STDOUT: !222 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.03220e6718a91584", scope: null, file: !121, line: 8, type: !108, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !229) +// CHECK:STDOUT: !223 = !DILocalVariable(arg: 1, scope: !222, type: !37) +// CHECK:STDOUT: !227 = !DILocation(line: 9, column: 12, scope: !222) +// CHECK:STDOUT: !228 = !DILocation(line: 9, column: 5, scope: !222) +// CHECK:STDOUT: !229 = !{!223} +// CHECK:STDOUT: !230 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6753b13effab4291:Copy.Core.c9f31a0e20c75302", scope: null, file: !9, line: 58, type: !108, spFlags: DISPFlagDefinition, unit: !122, retainedNodes: !240) +// CHECK:STDOUT: !231 = !DILocalVariable(arg: 1, scope: !230, type: !37) +// CHECK:STDOUT: !235 = !DILocation(line: 59, column: 13, scope: !230) +// CHECK:STDOUT: !236 = !DILocation(line: 59, column: 12, scope: !230) +// CHECK:STDOUT: !237 = !DILocation(line: 59, column: 26, scope: !230) +// CHECK:STDOUT: !238 = !DILocation(line: 59, column: 39, scope: !230) +// CHECK:STDOUT: !239 = !DILocation(line: 59, column: 5, scope: !230) +// CHECK:STDOUT: !240 = !{!231} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/import.carbon b/toolchain/lower/testdata/class/import.carbon index 9c997c7fffb0..156be2401f06 100644 --- a/toolchain/lower/testdata/class/import.carbon +++ b/toolchain/lower/testdata/class/import.carbon @@ -33,40 +33,40 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.C.Main() // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !14 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.C.Main(), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !9 +// CHECK:STDOUT: call void @_CF.C.Main(), !dbg !24 +// CHECK:STDOUT: ret i32 0, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.C.Main() // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 3, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 3, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !24 = !DILocation(line: 4, column: 3, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 3, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/method.carbon b/toolchain/lower/testdata/class/method.carbon index 53fb4a870722..8c4844734159 100644 --- a/toolchain/lower/testdata/class/method.carbon +++ b/toolchain/lower/testdata/class/method.carbon @@ -31,29 +31,29 @@ fn F(p: C*) { // CHECK:STDOUT: declare void @_CSet.C.Main(ptr, i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %p) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr %p) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %C.Get.call = call i32 @_CGet.C.Main(ptr %p), !dbg !10 -// CHECK:STDOUT: call void @_CSet.C.Main(ptr %p, i32 %C.Get.call), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %C.Get.call = call i32 @_CGet.C.Main(ptr %p), !dbg !33 +// CHECK:STDOUT: call void @_CSet.C.Main(ptr %p, i32 %C.Get.call), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "method.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 21, column: 16, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 20, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "method.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !21) +// CHECK:STDOUT: !33 = !DILocation(line: 21, column: 16, scope: !28) +// CHECK:STDOUT: !38 = !DILocation(line: 22, column: 3, scope: !28) +// CHECK:STDOUT: !40 = !DILocation(line: 20, column: 1, scope: !28) +// CHECK:STDOUT: !41 = !{!29} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/self.carbon b/toolchain/lower/testdata/class/self.carbon index 055ecf2c30c6..3a72cd4a5a7f 100644 --- a/toolchain/lower/testdata/class/self.carbon +++ b/toolchain/lower/testdata/class/self.carbon @@ -30,44 +30,44 @@ fn C.Set(ref self: C) { // CHECK:STDOUT: source_filename = "self.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CGet.C.Main(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CGet.C.Main(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc21_14.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc21_14.2 = load i32, ptr %.loc21_14.1.a, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc21_14.2, !dbg !12 +// CHECK:STDOUT: %.loc21_14.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !31 +// CHECK:STDOUT: %.loc21_14.2 = load i32, ptr %.loc21_14.1.a, align 4, !dbg !31 +// CHECK:STDOUT: ret i32 %.loc21_14.2, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CSet.C.Main(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CSet.C.Main(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc25_7.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: store i32 1, ptr %.loc25_7.a, align 4, !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc25_7.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: store i32 1, ptr %.loc25_7.a, align 4, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "self.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.C.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 21, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Set", linkageName: "_CSet.C.Main", scope: null, file: !1, line: 24, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !8} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !8) -// CHECK:STDOUT: !18 = !DILocation(line: 25, column: 3, scope: !13) -// CHECK:STDOUT: !19 = !DILocation(line: 24, column: 1, scope: !13) +// CHECK:STDOUT: !18 = !DIFile(filename: "self.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.C.Main", scope: null, file: !18, line: 20, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 21, column: 10, scope: !26) +// CHECK:STDOUT: !32 = !DILocation(line: 21, column: 3, scope: !26) +// CHECK:STDOUT: !33 = !{!27} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Set", linkageName: "_CSet.C.Main", scope: null, file: !18, line: 24, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 25, column: 3, scope: !34) +// CHECK:STDOUT: !38 = !DILocation(line: 24, column: 1, scope: !34) +// CHECK:STDOUT: !39 = !{!35} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/static.carbon b/toolchain/lower/testdata/class/static.carbon index f8134a5da375..4d707b12b431 100644 --- a/toolchain/lower/testdata/class/static.carbon +++ b/toolchain/lower/testdata/class/static.carbon @@ -50,40 +50,40 @@ fn Run() -> i32 { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 456, ptr @_Cstatic_field.C.Main, align 4, !dbg !7 -// CHECK:STDOUT: store i32 789, ptr @_Cstatic_field_with_init.C.Main, align 4, !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: store i32 456, ptr @_Cstatic_field.C.Main, align 4, !dbg !28 +// CHECK:STDOUT: store i32 789, ptr @_Cstatic_field_with_init.C.Main, align 4, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !10 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 poison, ptr @_Cstatic_field.C.Main, align 4, !dbg !11 -// CHECK:STDOUT: store i32 123, ptr @_Cstatic_field_with_init.C.Main, align 4, !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: store i32 poison, ptr @_Cstatic_field.C.Main, align 4, !dbg !33 +// CHECK:STDOUT: store i32 123, ptr @_Cstatic_field_with_init.C.Main, align 4, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} +// CHECK:STDOUT: !llvm.module.flags = !{!6, !7} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "static.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 8, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 4, column: 10, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 10, scope: !10) -// CHECK:STDOUT: !13 = !DILocation(line: 0, scope: !10) +// CHECK:STDOUT: !6 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !7 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !22 = !DIFile(filename: "static.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !25 = !{null} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !22, line: 8, type: !26, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 9, column: 3, scope: !27) +// CHECK:STDOUT: !29 = !DILocation(line: 10, column: 3, scope: !27) +// CHECK:STDOUT: !30 = !DILocation(line: 8, column: 1, scope: !27) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !22, type: !26, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !33 = !DILocation(line: 4, column: 10, scope: !31) +// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 10, scope: !31) +// CHECK:STDOUT: !35 = !DILocation(line: 0, scope: !31) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'static_export.carbon' @@ -97,78 +97,78 @@ fn Run() -> i32 { // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define dso_local noundef i32 @_Z1Fv() #0 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %0 = load i32, ptr @_Cx.C.Main, align 4, !tbaa !12 +// CHECK:STDOUT: %0 = load i32, ptr @_Cx.C.Main, align 4, !tbaa !3 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.C.Main"(ptr %self) #1 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.C.Main"(ptr %self) #1 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #2 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #2 !dbg !47 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #2 !dbg !24 { +// CHECK:STDOUT: define i32 @main() #2 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_Z1Fv(), !dbg !28 -// CHECK:STDOUT: ret i32 %F.call, !dbg !29 +// CHECK:STDOUT: %F.call = call i32 @_Z1Fv(), !dbg !54 +// CHECK:STDOUT: ret i32 %F.call, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #2 !dbg !30 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #2 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 123, ptr @_Cx.C.Main, align 4, !dbg !33 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: store i32 123, ptr @_Cx.C.Main, align 4, !dbg !57 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #2 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!37} +// CHECK:STDOUT: !llvm.module.flags = !{!59, !60, !61, !6, !7} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!63} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "static_export.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!9, !9, i64 0} -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.C.Main", scope: null, file: !1, line: 4, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !16} -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 4, column: 1, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 4, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !16) -// CHECK:STDOUT: !23 = !DILocation(line: 4, column: 1, scope: !20) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 14, type: !25, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !28 = !DILocation(line: 15, column: 10, scope: !24) -// CHECK:STDOUT: !29 = !DILocation(line: 15, column: 3, scope: !24) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !31, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{null} -// CHECK:STDOUT: !33 = !DILocation(line: 5, column: 10, scope: !30) -// CHECK:STDOUT: !34 = !DILocation(line: 0, scope: !30) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !3 = !{!2, !2, i64 0} +// CHECK:STDOUT: !6 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !7 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !25 = !{null} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !36 = !DIFile(filename: "static_export.carbon", directory: "") +// CHECK:STDOUT: !37 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !36, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !39 = !{null, !38} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = !{!24} +// CHECK:STDOUT: !42 = !DISubroutineType(types: !41) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.C.Main", scope: null, file: !36, line: 4, type: !40, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !46) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !38) +// CHECK:STDOUT: !45 = !DILocation(line: 4, column: 1, scope: !43) +// CHECK:STDOUT: !46 = !{!44} +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !36, line: 4, type: !40, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !50) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !38) +// CHECK:STDOUT: !49 = !DILocation(line: 4, column: 1, scope: !47) +// CHECK:STDOUT: !50 = !{!48} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !36, line: 14, type: !42, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !54 = !DILocation(line: 15, column: 10, scope: !51) +// CHECK:STDOUT: !55 = !DILocation(line: 15, column: 3, scope: !51) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !36, type: !26, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !57 = !DILocation(line: 5, column: 10, scope: !56) +// CHECK:STDOUT: !58 = !DILocation(line: 0, scope: !56) +// CHECK:STDOUT: !59 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !60 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !61 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !62 = !{!"__libc_errno", !2, i64 0} +// CHECK:STDOUT: !63 = !{!62, !2, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/value_access.carbon b/toolchain/lower/testdata/class/value_access.carbon index 8532efd3ce10..25200426fbd9 100644 --- a/toolchain/lower/testdata/class/value_access.carbon +++ b/toolchain/lower/testdata/class/value_access.carbon @@ -26,26 +26,26 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: source_filename = "value_access.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main(ptr %c) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main(ptr %c) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple = alloca { i32, i32, i32 }, align 4, !dbg !11 -// CHECK:STDOUT: %.loc21_11.1.a = getelementptr inbounds nuw { { i32, i32, i32 } }, ptr %c, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc21_11.1.a, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc21_11.2 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.loc21_11.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc21_11.1.a, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %.loc21_11.3 = load i32, ptr %tuple.elem1.loc21_11.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc21_11.1.a, i32 0, i32 2, !dbg !11 -// CHECK:STDOUT: %.loc21_11.4 = load i32, ptr %tuple.elem2.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple), !dbg !11 -// CHECK:STDOUT: %tuple1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc21_11.2, ptr %tuple1, align 4, !dbg !11 -// CHECK:STDOUT: %tuple2 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store i32 %.loc21_11.3, ptr %tuple2, align 4, !dbg !11 -// CHECK:STDOUT: %tuple3 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 2, !dbg !11 -// CHECK:STDOUT: store i32 %.loc21_11.4, ptr %tuple3, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.loc21_13.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.loc21_13.tuple.elem.load = load i32, ptr %tuple.elem1.loc21_13.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %tuple.elem1.loc21_13.tuple.elem.load, !dbg !12 +// CHECK:STDOUT: %tuple = alloca { i32, i32, i32 }, align 4, !dbg !29 +// CHECK:STDOUT: %.loc21_11.1.a = getelementptr inbounds nuw { { i32, i32, i32 } }, ptr %c, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc21_11.1.a, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc21_11.2 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !29 +// CHECK:STDOUT: %tuple.elem1.loc21_11.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc21_11.1.a, i32 0, i32 1, !dbg !29 +// CHECK:STDOUT: %.loc21_11.3 = load i32, ptr %tuple.elem1.loc21_11.tuple.elem, align 4, !dbg !29 +// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc21_11.1.a, i32 0, i32 2, !dbg !29 +// CHECK:STDOUT: %.loc21_11.4 = load i32, ptr %tuple.elem2.tuple.elem, align 4, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple), !dbg !29 +// CHECK:STDOUT: %tuple1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: store i32 %.loc21_11.2, ptr %tuple1, align 4, !dbg !29 +// CHECK:STDOUT: %tuple2 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 1, !dbg !29 +// CHECK:STDOUT: store i32 %.loc21_11.3, ptr %tuple2, align 4, !dbg !29 +// CHECK:STDOUT: %tuple3 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 2, !dbg !29 +// CHECK:STDOUT: store i32 %.loc21_11.4, ptr %tuple3, align 4, !dbg !29 +// CHECK:STDOUT: %tuple.elem1.loc21_13.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple, i32 0, i32 1, !dbg !29 +// CHECK:STDOUT: %tuple.elem1.loc21_13.tuple.elem.load = load i32, ptr %tuple.elem1.loc21_13.tuple.elem, align 4, !dbg !29 +// CHECK:STDOUT: ret i32 %tuple.elem1.loc21_13.tuple.elem.load, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -54,20 +54,20 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "value_access.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 21, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 21, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "value_access.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 21, column: 10, scope: !24) +// CHECK:STDOUT: !30 = !DILocation(line: 21, column: 3, scope: !24) +// CHECK:STDOUT: !31 = !{!25} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/class/virtual.carbon b/toolchain/lower/testdata/class/virtual.carbon index d5007d515193..ce7dc6b3f95e 100644 --- a/toolchain/lower/testdata/class/virtual.carbon +++ b/toolchain/lower/testdata/class/virtual.carbon @@ -220,49 +220,49 @@ fn Use() { // CHECK:STDOUT: @"_CDerived.Classes.$vtable" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @"_CFn:thunk:Intermediate.Classes:Derived.Classes" to i64), i64 ptrtoint (ptr @"_CDerived.Classes.$vtable" to i64)) to i32)] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFn.Intermediate.Classes(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFn.Intermediate.Classes(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFn.Derived.Classes(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CFn.Derived.Classes(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CFn:thunk:Intermediate.Classes:Derived.Classes"(ptr %self) #1 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_CFn:thunk:Intermediate.Classes:Derived.Classes"(ptr %self) #1 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CFn.Derived.Classes(ptr %self), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: call void @_CFn.Derived.Classes(ptr %self), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "classes.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.Intermediate.Classes", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.Derived.Classes", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 3, scope: !11) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn:thunk:Intermediate.Classes:Derived.Classes", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !15, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 3, scope: !15) +// CHECK:STDOUT: !18 = !DIFile(filename: "classes.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.Intermediate.Classes", scope: null, file: !18, line: 9, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !27) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 9, column: 3, scope: !23) +// CHECK:STDOUT: !27 = !{!24} +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.Derived.Classes", scope: null, file: !18, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !32) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !20) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !{!29} +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn:thunk:Intermediate.Classes:Derived.Classes", scope: null, file: !18, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !37) +// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !20) +// CHECK:STDOUT: !36 = !DILocation(line: 14, column: 3, scope: !33) +// CHECK:STDOUT: !37 = !{!34} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'create.carbon' @@ -275,32 +275,32 @@ fn Use() { // CHECK:STDOUT: @Derived.val.loc9_49.5 = internal constant { { ptr, {} } } { { ptr, {} } { ptr poison, {} zeroinitializer } } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCreate.Create() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCreate.Create() #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc7 = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: %_.var.loc8 = alloca { ptr, {} }, align 8, !dbg !8 -// CHECK:STDOUT: %_.var.loc9 = alloca { { ptr, {} } }, align 8, !dbg !9 -// CHECK:STDOUT: %_.var.loc12 = alloca { { ptr, {} } }, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc7), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc7, ptr align 1 @Base.val.loc7_3, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc8), !dbg !8 -// CHECK:STDOUT: %.loc8_44.2.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %_.var.loc8, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc8_44.4.base = getelementptr inbounds nuw { ptr, {} }, ptr %_.var.loc8, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc8, ptr align 8 @Intermediate.val.54b.loc8_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !9 -// CHECK:STDOUT: %.loc9_49.2.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %_.var.loc9, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc9_48.2.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.2.base, i32 0, i32 0, !dbg !13 -// CHECK:STDOUT: %.loc9_48.4.base = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.2.base, i32 0, i32 1, !dbg !13 -// CHECK:STDOUT: %.loc9_49.6.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %_.var.loc9, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc9_49.7.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.6.base, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc9, ptr align 8 @Derived.val.loc9_49.5, i64 8, i1 false), !dbg !12 -// CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc9_49.7.vptr, align 8, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !10 -// CHECK:STDOUT: call void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %_.var.loc12), !dbg !10 -// CHECK:STDOUT: call void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %_.var.loc9), !dbg !9 -// CHECK:STDOUT: call void @"_COp.21751b0492a59c62:core.Destroy.Core"(ptr %_.var.loc8), !dbg !8 -// CHECK:STDOUT: call void @"_COp.bbc7087405c1f238:core.Destroy.Core"(ptr %_.var.loc7), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: %_.var.loc7 = alloca {}, align 1, !dbg !43 +// CHECK:STDOUT: %_.var.loc8 = alloca { ptr, {} }, align 8, !dbg !45 +// CHECK:STDOUT: %_.var.loc9 = alloca { { ptr, {} } }, align 8, !dbg !48 +// CHECK:STDOUT: %_.var.loc12 = alloca { { ptr, {} } }, align 8, !dbg !52 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc7), !dbg !43 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc7, ptr align 1 @Base.val.loc7_3, i64 0, i1 false), !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc8), !dbg !45 +// CHECK:STDOUT: %.loc8_44.2.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %_.var.loc8, i32 0, i32 0, !dbg !46 +// CHECK:STDOUT: %.loc8_44.4.base = getelementptr inbounds nuw { ptr, {} }, ptr %_.var.loc8, i32 0, i32 1, !dbg !46 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc8, ptr align 8 @Intermediate.val.54b.loc8_3, i64 8, i1 false), !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !48 +// CHECK:STDOUT: %.loc9_49.2.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %_.var.loc9, i32 0, i32 0, !dbg !49 +// CHECK:STDOUT: %.loc9_48.2.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.2.base, i32 0, i32 0, !dbg !50 +// CHECK:STDOUT: %.loc9_48.4.base = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.2.base, i32 0, i32 1, !dbg !50 +// CHECK:STDOUT: %.loc9_49.6.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %_.var.loc9, i32 0, i32 0, !dbg !49 +// CHECK:STDOUT: %.loc9_49.7.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.6.base, i32 0, i32 0, !dbg !49 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc9, ptr align 8 @Derived.val.loc9_49.5, i64 8, i1 false), !dbg !49 +// CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc9_49.7.vptr, align 8, !dbg !49 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !52 +// CHECK:STDOUT: call void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %_.var.loc12), !dbg !52 +// CHECK:STDOUT: call void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %_.var.loc9), !dbg !48 +// CHECK:STDOUT: call void @"_COp.21751b0492a59c62:core.Destroy.Core"(ptr %_.var.loc8), !dbg !45 +// CHECK:STDOUT: call void @"_COp.bbc7087405c1f238:core.Destroy.Core"(ptr %_.var.loc7), !dbg !43 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CFn.Intermediate.Classes(ptr) @@ -308,42 +308,42 @@ fn Use() { // CHECK:STDOUT: declare void @"_CFn:thunk:Intermediate.Classes:Derived.Classes"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bbc7087405c1f238:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.bbc7087405c1f238:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f2ac7e7561e4076c:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.f2ac7e7561e4076c:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.21751b0492a59c62:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.21751b0492a59c62:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.558f48c06e972c2d:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.558f48c06e972c2d:core.Destroy.Core"(ptr %self) #0 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.90ba497113bea86f:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUse.Create(ptr %v) #0 !dbg !38 { +// CHECK:STDOUT: define void @_CUse.Create(ptr %v) #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Intermediate.Fn.call.vtable = load ptr, ptr %v, align 8, !dbg !41 -// CHECK:STDOUT: %Intermediate.Fn.call = call ptr @llvm.load.relative.i32(ptr %Intermediate.Fn.call.vtable, i32 0), !dbg !41 -// CHECK:STDOUT: call void %Intermediate.Fn.call(ptr %v), !dbg !41 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: %Intermediate.Fn.call.vtable = load ptr, ptr %v, align 8, !dbg !78 +// CHECK:STDOUT: %Intermediate.Fn.call = call ptr @llvm.load.relative.i32(ptr %Intermediate.Fn.call.vtable, i32 0), !dbg !78 +// CHECK:STDOUT: call void %Intermediate.Fn.call(ptr %v), !dbg !78 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -364,52 +364,52 @@ fn Use() { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!39} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "create.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Create", linkageName: "_CCreate.Create", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 8, column: 33, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 28, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 9, column: 37, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbc7087405c1f238:core.Destroy.Core", scope: null, file: !1, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 12, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f2ac7e7561e4076c:core.Destroy.Core", scope: null, file: !1, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !18) -// CHECK:STDOUT: !25 = !DILocation(line: 12, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.21751b0492a59c62:core.Destroy.Core", scope: null, file: !1, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !18) -// CHECK:STDOUT: !29 = !DILocation(line: 12, column: 3, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.558f48c06e972c2d:core.Destroy.Core", scope: null, file: !1, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !18) -// CHECK:STDOUT: !33 = !DILocation(line: 12, column: 3, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.90ba497113bea86f:core.Destroy.Core", scope: null, file: !1, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !18) -// CHECK:STDOUT: !37 = !DILocation(line: 12, column: 3, scope: !34) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Create", scope: null, file: !1, line: 15, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !18) -// CHECK:STDOUT: !41 = !DILocation(line: 16, column: 3, scope: !38) -// CHECK:STDOUT: !42 = !DILocation(line: 15, column: 1, scope: !38) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !38 = !DIFile(filename: "create.carbon", directory: "") +// CHECK:STDOUT: !39 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !38, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Create", linkageName: "_CCreate.Create", scope: null, file: !38, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !39) +// CHECK:STDOUT: !43 = !DILocation(line: 7, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !DILocation(line: 8, column: 3, scope: !42) +// CHECK:STDOUT: !46 = !DILocation(line: 8, column: 33, scope: !42) +// CHECK:STDOUT: !48 = !DILocation(line: 9, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 9, column: 28, scope: !42) +// CHECK:STDOUT: !50 = !DILocation(line: 9, column: 37, scope: !42) +// CHECK:STDOUT: !52 = !DILocation(line: 12, column: 3, scope: !42) +// CHECK:STDOUT: !54 = !DILocation(line: 6, column: 1, scope: !42) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbc7087405c1f238:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !20) +// CHECK:STDOUT: !57 = !DILocation(line: 12, column: 3, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f2ac7e7561e4076c:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !62) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !20) +// CHECK:STDOUT: !61 = !DILocation(line: 12, column: 3, scope: !59) +// CHECK:STDOUT: !62 = !{!60} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.21751b0492a59c62:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !66) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !20) +// CHECK:STDOUT: !65 = !DILocation(line: 12, column: 3, scope: !63) +// CHECK:STDOUT: !66 = !{!64} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.558f48c06e972c2d:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !70) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !20) +// CHECK:STDOUT: !69 = !DILocation(line: 12, column: 3, scope: !67) +// CHECK:STDOUT: !70 = !{!68} +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.90ba497113bea86f:core.Destroy.Core", scope: null, file: !38, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !74) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !20) +// CHECK:STDOUT: !73 = !DILocation(line: 12, column: 3, scope: !71) +// CHECK:STDOUT: !74 = !{!72} +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Create", scope: null, file: !38, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !39, retainedNodes: !80) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !20) +// CHECK:STDOUT: !78 = !DILocation(line: 16, column: 3, scope: !75) +// CHECK:STDOUT: !79 = !DILocation(line: 15, column: 1, scope: !75) +// CHECK:STDOUT: !80 = !{!76} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'create_named_ctor.carbon' @@ -420,62 +420,62 @@ fn Use() { // CHECK:STDOUT: @empty_struct.ac8.loc7_12 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakePartialBase.Main(ptr sret({}) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMakePartialBase.Main(ptr sret({}) %return) #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @empty_struct.ac8.loc7_12, i64 0, i1 false), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @empty_struct.ac8.loc7_12, i64 0, i1 false), !dbg !88 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakePartialIntermediate.Main(ptr sret({ ptr, {} }) %return) #0 !dbg !9 { +// CHECK:STDOUT: define void @_CMakePartialIntermediate.Main(ptr sret({ ptr, {} }) %return) #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_36.1.base = getelementptr inbounds nuw { ptr, {} }, ptr %return, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @_CMakePartialBase.Main(ptr %.loc11_36.1.base), !dbg !11 -// CHECK:STDOUT: %.loc11_36.3.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %return, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: store ptr poison, ptr %.loc11_36.3.vptr, align 8, !dbg !10 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc11_36.1.base = getelementptr inbounds nuw { ptr, {} }, ptr %return, i32 0, i32 1, !dbg !92 +// CHECK:STDOUT: call void @_CMakePartialBase.Main(ptr %.loc11_36.1.base), !dbg !93 +// CHECK:STDOUT: %.loc11_36.3.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %return, i32 0, i32 0, !dbg !92 +// CHECK:STDOUT: store ptr poison, ptr %.loc11_36.3.vptr, align 8, !dbg !92 +// CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakeBase.Main(ptr sret({}) %return) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CMakeBase.Main(ptr sret({}) %return) #0 !dbg !95 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMakePartialBase.Main(ptr %return), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: call void @_CMakePartialBase.Main(ptr %return), !dbg !98 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakeIntermediate.Main(ptr sret({ ptr, {} }) %return) #0 !dbg !16 { +// CHECK:STDOUT: define void @_CMakeIntermediate.Main(ptr sret({ ptr, {} }) %return) #0 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMakePartialIntermediate.Main(ptr %return), !dbg !17 -// CHECK:STDOUT: %.loc19_34.1.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %return, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: store ptr @"_CIntermediate.Classes.$vtable", ptr %.loc19_34.1.vptr, align 8, !dbg !17 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: call void @_CMakePartialIntermediate.Main(ptr %return), !dbg !103 +// CHECK:STDOUT: %.loc19_34.1.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %return, i32 0, i32 0, !dbg !103 +// CHECK:STDOUT: store ptr @"_CIntermediate.Classes.$vtable", ptr %.loc19_34.1.vptr, align 8, !dbg !103 +// CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CFn.Intermediate.Classes(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakeDerivedFromPartial.Main(ptr sret({ { ptr, {} } }) %return) #0 !dbg !19 { +// CHECK:STDOUT: define void @_CMakeDerivedFromPartial.Main(ptr sret({ { ptr, {} } }) %return) #0 !dbg !105 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc23_44.1.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !20 -// CHECK:STDOUT: call void @_CMakePartialIntermediate.Main(ptr %.loc23_44.1.base), !dbg !21 -// CHECK:STDOUT: %.loc23_44.5.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !20 -// CHECK:STDOUT: %.loc23_44.6.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc23_44.5.base, i32 0, i32 0, !dbg !20 -// CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc23_44.6.vptr, align 8, !dbg !20 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: %.loc23_44.1.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !108 +// CHECK:STDOUT: call void @_CMakePartialIntermediate.Main(ptr %.loc23_44.1.base), !dbg !109 +// CHECK:STDOUT: %.loc23_44.5.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !108 +// CHECK:STDOUT: %.loc23_44.6.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc23_44.5.base, i32 0, i32 0, !dbg !108 +// CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc23_44.6.vptr, align 8, !dbg !108 +// CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CFn:thunk:Intermediate.Classes:Derived.Classes"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakeDerivedFromNonPartial.Main(ptr sret({ { ptr, {} } }) %return) #0 !dbg !23 { +// CHECK:STDOUT: define void @_CMakeDerivedFromNonPartial.Main(ptr sret({ { ptr, {} } }) %return) #0 !dbg !111 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc27_37.1.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !24 -// CHECK:STDOUT: call void @_CMakeIntermediate.Main(ptr %.loc27_37.1.base), !dbg !25 -// CHECK:STDOUT: %.loc27_37.7.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !24 -// CHECK:STDOUT: %.loc27_37.8.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc27_37.7.base, i32 0, i32 0, !dbg !24 -// CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc27_37.8.vptr, align 8, !dbg !24 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: %.loc27_37.1.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !114 +// CHECK:STDOUT: call void @_CMakeIntermediate.Main(ptr %.loc27_37.1.base), !dbg !115 +// CHECK:STDOUT: %.loc27_37.7.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %return, i32 0, i32 0, !dbg !114 +// CHECK:STDOUT: %.loc27_37.8.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc27_37.7.base, i32 0, i32 0, !dbg !114 +// CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc27_37.8.vptr, align 8, !dbg !114 +// CHECK:STDOUT: ret void, !dbg !116 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -484,36 +484,36 @@ fn Use() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!82} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "create_named_ctor.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "MakePartialBase", linkageName: "_CMakePartialBase.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "MakePartialIntermediate", linkageName: "_CMakePartialIntermediate.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 11, column: 10, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 11, column: 19, scope: !9) -// CHECK:STDOUT: !12 = !DILocation(line: 11, column: 3, scope: !9) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "MakeBase", linkageName: "_CMakeBase.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 15, column: 10, scope: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 15, column: 3, scope: !13) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "MakeIntermediate", linkageName: "_CMakeIntermediate.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 10, scope: !16) -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 3, scope: !16) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "MakeDerivedFromPartial", linkageName: "_CMakeDerivedFromPartial.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !20 = !DILocation(line: 23, column: 10, scope: !19) -// CHECK:STDOUT: !21 = !DILocation(line: 23, column: 19, scope: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "MakeDerivedFromNonPartial", linkageName: "_CMakeDerivedFromNonPartial.Main", scope: null, file: !1, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !24 = !DILocation(line: 27, column: 10, scope: !23) -// CHECK:STDOUT: !25 = !DILocation(line: 27, column: 19, scope: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 27, column: 3, scope: !23) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !81 = !DIFile(filename: "create_named_ctor.carbon", directory: "") +// CHECK:STDOUT: !82 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !81, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !83 = !{!20} +// CHECK:STDOUT: !84 = !DISubroutineType(types: !83) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "MakePartialBase", linkageName: "_CMakePartialBase.Main", scope: null, file: !81, line: 6, type: !84, spFlags: DISPFlagDefinition, unit: !82) +// CHECK:STDOUT: !88 = !DILocation(line: 7, column: 3, scope: !85) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "MakePartialIntermediate", linkageName: "_CMakePartialIntermediate.Main", scope: null, file: !81, line: 10, type: !84, spFlags: DISPFlagDefinition, unit: !82) +// CHECK:STDOUT: !92 = !DILocation(line: 11, column: 10, scope: !89) +// CHECK:STDOUT: !93 = !DILocation(line: 11, column: 19, scope: !89) +// CHECK:STDOUT: !94 = !DILocation(line: 11, column: 3, scope: !89) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "MakeBase", linkageName: "_CMakeBase.Main", scope: null, file: !81, line: 14, type: !84, spFlags: DISPFlagDefinition, unit: !82) +// CHECK:STDOUT: !98 = !DILocation(line: 15, column: 10, scope: !95) +// CHECK:STDOUT: !99 = !DILocation(line: 15, column: 3, scope: !95) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "MakeIntermediate", linkageName: "_CMakeIntermediate.Main", scope: null, file: !81, line: 18, type: !84, spFlags: DISPFlagDefinition, unit: !82) +// CHECK:STDOUT: !103 = !DILocation(line: 19, column: 10, scope: !100) +// CHECK:STDOUT: !104 = !DILocation(line: 19, column: 3, scope: !100) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "MakeDerivedFromPartial", linkageName: "_CMakeDerivedFromPartial.Main", scope: null, file: !81, line: 22, type: !84, spFlags: DISPFlagDefinition, unit: !82) +// CHECK:STDOUT: !108 = !DILocation(line: 23, column: 10, scope: !105) +// CHECK:STDOUT: !109 = !DILocation(line: 23, column: 19, scope: !105) +// CHECK:STDOUT: !110 = !DILocation(line: 23, column: 3, scope: !105) +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "MakeDerivedFromNonPartial", linkageName: "_CMakeDerivedFromNonPartial.Main", scope: null, file: !81, line: 26, type: !84, spFlags: DISPFlagDefinition, unit: !82) +// CHECK:STDOUT: !114 = !DILocation(line: 27, column: 10, scope: !111) +// CHECK:STDOUT: !115 = !DILocation(line: 27, column: 19, scope: !111) +// CHECK:STDOUT: !116 = !DILocation(line: 27, column: 3, scope: !111) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'member_init.carbon' @@ -523,53 +523,53 @@ fn Use() { // CHECK:STDOUT: @Base.val.loc13_3 = internal constant <{ ptr, i32 }> <{ ptr @"_CBase.MemberInit.$vtable", i32 3 }> // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFn.Base.MemberInit(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFn.Base.MemberInit(ptr %self) #0 !dbg !122 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFn.MemberInit() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CFn.MemberInit() #0 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %i.var = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: %v.var = alloca <{ ptr, i32 }>, align 8, !dbg !15 -// CHECK:STDOUT: %_.var = alloca <{ ptr, i32 }>, align 8, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %i.var), !dbg !14 -// CHECK:STDOUT: store i32 3, ptr %i.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !15 -// CHECK:STDOUT: %.loc11_24.2.vptr = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %v.var, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc11_23 = load i32, ptr %i.var, align 4, !dbg !18 -// CHECK:STDOUT: %.loc11_24.4.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %v.var, i32 0, i32 1, !dbg !17 -// CHECK:STDOUT: store i32 %.loc11_23, ptr %.loc11_24.4.m, align 4, !dbg !17 -// CHECK:STDOUT: store ptr @"_CBase.MemberInit.$vtable", ptr %.loc11_24.2.vptr, align 8, !dbg !17 -// CHECK:STDOUT: %.loc12_4.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %v.var, i32 0, i32 1, !dbg !19 -// CHECK:STDOUT: store i32 5, ptr %.loc12_4.m, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !16 -// CHECK:STDOUT: %.loc13_24.2.vptr = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 0, !dbg !20 -// CHECK:STDOUT: %.loc13_24.5.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 1, !dbg !20 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var, ptr align 8 @Base.val.loc13_3, i64 12, i1 false), !dbg !16 -// CHECK:STDOUT: call void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %_.var), !dbg !16 -// CHECK:STDOUT: call void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %v.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %i.var), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %i.var = alloca i32, align 4, !dbg !128 +// CHECK:STDOUT: %v.var = alloca <{ ptr, i32 }>, align 8, !dbg !130 +// CHECK:STDOUT: %_.var = alloca <{ ptr, i32 }>, align 8, !dbg !135 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %i.var), !dbg !128 +// CHECK:STDOUT: store i32 3, ptr %i.var, align 4, !dbg !128 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !130 +// CHECK:STDOUT: %.loc11_24.2.vptr = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %v.var, i32 0, i32 0, !dbg !132 +// CHECK:STDOUT: %.loc11_23 = load i32, ptr %i.var, align 4, !dbg !131 +// CHECK:STDOUT: %.loc11_24.4.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %v.var, i32 0, i32 1, !dbg !132 +// CHECK:STDOUT: store i32 %.loc11_23, ptr %.loc11_24.4.m, align 4, !dbg !132 +// CHECK:STDOUT: store ptr @"_CBase.MemberInit.$vtable", ptr %.loc11_24.2.vptr, align 8, !dbg !132 +// CHECK:STDOUT: %.loc12_4.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %v.var, i32 0, i32 1, !dbg !134 +// CHECK:STDOUT: store i32 5, ptr %.loc12_4.m, align 4, !dbg !134 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !135 +// CHECK:STDOUT: %.loc13_24.2.vptr = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 0, !dbg !136 +// CHECK:STDOUT: %.loc13_24.5.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 1, !dbg !136 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var, ptr align 8 @Base.val.loc13_3, i64 12, i1 false), !dbg !135 +// CHECK:STDOUT: call void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %_.var), !dbg !135 +// CHECK:STDOUT: call void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %v.var), !dbg !130 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %i.var), !dbg !128 +// CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !139 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bef9da9070867db2:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.bef9da9070867db2:core.Destroy.Core"(ptr %self) #0 !dbg !143 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.a6a094e0f6bc9348:core.Destroy.Core"(ptr %self) #0 !dbg !147 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -585,46 +585,46 @@ fn Use() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!118} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "member_init.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.Base.MemberInit", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.MemberInit", scope: null, file: !1, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 10, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 11, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 3, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 11, column: 17, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 11, column: 23, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 12, column: 3, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 13, column: 17, scope: !11) -// CHECK:STDOUT: !21 = !DILocation(line: 9, column: 1, scope: !11) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 3, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bef9da9070867db2:core.Destroy.Core", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !7) -// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 3, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6a094e0f6bc9348:core.Destroy.Core", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !7) -// CHECK:STDOUT: !36 = !DILocation(line: 13, column: 3, scope: !33) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !117 = !DIFile(filename: "member_init.carbon", directory: "") +// CHECK:STDOUT: !118 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !117, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !119 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !120 = !{null, !119} +// CHECK:STDOUT: !121 = !DISubroutineType(types: !120) +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.Base.MemberInit", scope: null, file: !117, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !126) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !122, type: !20) +// CHECK:STDOUT: !125 = !DILocation(line: 6, column: 3, scope: !122) +// CHECK:STDOUT: !126 = !{!123} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Fn", linkageName: "_CFn.MemberInit", scope: null, file: !117, line: 9, type: !41, spFlags: DISPFlagDefinition, unit: !118) +// CHECK:STDOUT: !128 = !DILocation(line: 10, column: 3, scope: !127) +// CHECK:STDOUT: !130 = !DILocation(line: 11, column: 3, scope: !127) +// CHECK:STDOUT: !131 = !DILocation(line: 11, column: 23, scope: !127) +// CHECK:STDOUT: !132 = !DILocation(line: 11, column: 17, scope: !127) +// CHECK:STDOUT: !134 = !DILocation(line: 12, column: 3, scope: !127) +// CHECK:STDOUT: !135 = !DILocation(line: 13, column: 3, scope: !127) +// CHECK:STDOUT: !136 = !DILocation(line: 13, column: 17, scope: !127) +// CHECK:STDOUT: !138 = !DILocation(line: 9, column: 1, scope: !127) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !117, line: 13, type: !121, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !142) +// CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !119) +// CHECK:STDOUT: !141 = !DILocation(line: 13, column: 3, scope: !139) +// CHECK:STDOUT: !142 = !{!140} +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bef9da9070867db2:core.Destroy.Core", scope: null, file: !117, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !146) +// CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !143, type: !20) +// CHECK:STDOUT: !145 = !DILocation(line: 13, column: 3, scope: !143) +// CHECK:STDOUT: !146 = !{!144} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6a094e0f6bc9348:core.Destroy.Core", scope: null, file: !117, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !118, retainedNodes: !150) +// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !20) +// CHECK:STDOUT: !149 = !DILocation(line: 13, column: 3, scope: !147) +// CHECK:STDOUT: !150 = !{!148} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'member_brace_init.carbon' @@ -637,42 +637,42 @@ fn Use() { // CHECK:STDOUT: declare void @_CF.Base.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUse.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CUse.Main() #0 !dbg !153 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { { ptr } }, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !7 -// CHECK:STDOUT: %.loc13_32.2.base = getelementptr inbounds nuw { { ptr } }, ptr %_.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc13_31.2.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc13_32.2.base, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: %.loc13_32.6.base = getelementptr inbounds nuw { { ptr } }, ptr %_.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc13_32.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc13_32.6.base, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var, ptr align 8 @Derived.val.loc13_32.5, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc13_32.7.vptr, align 8, !dbg !8 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %_.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %_.var = alloca { { ptr } }, align 8, !dbg !154 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !154 +// CHECK:STDOUT: %.loc13_32.2.base = getelementptr inbounds nuw { { ptr } }, ptr %_.var, i32 0, i32 0, !dbg !155 +// CHECK:STDOUT: %.loc13_31.2.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc13_32.2.base, i32 0, i32 0, !dbg !156 +// CHECK:STDOUT: %.loc13_32.6.base = getelementptr inbounds nuw { { ptr } }, ptr %_.var, i32 0, i32 0, !dbg !155 +// CHECK:STDOUT: %.loc13_32.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc13_32.6.base, i32 0, i32 0, !dbg !155 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var, ptr align 8 @Derived.val.loc13_32.5, i64 8, i1 false), !dbg !155 +// CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc13_32.7.vptr, align 8, !dbg !155 +// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %_.var), !dbg !154 +// CHECK:STDOUT: ret void, !dbg !158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !159 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #0 !dbg !163 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !165 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #0 !dbg !167 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !171 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !173 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -684,39 +684,39 @@ fn Use() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!152} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "member_brace_init.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 21, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 13, column: 30, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 13, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 3, scope: !18) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !14) -// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !14) -// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 3, scope: !26) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !151 = !DIFile(filename: "member_brace_init.carbon", directory: "") +// CHECK:STDOUT: !152 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !151, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !151, line: 12, type: !41, spFlags: DISPFlagDefinition, unit: !152) +// CHECK:STDOUT: !154 = !DILocation(line: 13, column: 3, scope: !153) +// CHECK:STDOUT: !155 = !DILocation(line: 13, column: 21, scope: !153) +// CHECK:STDOUT: !156 = !DILocation(line: 13, column: 30, scope: !153) +// CHECK:STDOUT: !158 = !DILocation(line: 12, column: 1, scope: !153) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !162) +// CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !20) +// CHECK:STDOUT: !161 = !DILocation(line: 13, column: 3, scope: !159) +// CHECK:STDOUT: !162 = !{!160} +// CHECK:STDOUT: !163 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !166) +// CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !163, type: !20) +// CHECK:STDOUT: !165 = !DILocation(line: 13, column: 3, scope: !163) +// CHECK:STDOUT: !166 = !{!164} +// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !170) +// CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !167, type: !20) +// CHECK:STDOUT: !169 = !DILocation(line: 13, column: 3, scope: !167) +// CHECK:STDOUT: !170 = !{!168} +// CHECK:STDOUT: !171 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !151, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !152, retainedNodes: !174) +// CHECK:STDOUT: !172 = !DILocalVariable(arg: 1, scope: !171, type: !20) +// CHECK:STDOUT: !173 = !DILocation(line: 13, column: 3, scope: !171) +// CHECK:STDOUT: !174 = !{!172} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call.carbon' @@ -727,12 +727,12 @@ fn Use() { // CHECK:STDOUT: declare void @_CF.Base.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUse.Main(ptr %b) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CUse.Main(ptr %b) #0 !dbg !177 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %b, align 8, !dbg !10 -// CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !10 -// CHECK:STDOUT: call void %Base.F.call(ptr %b), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %b, align 8, !dbg !180 +// CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !180 +// CHECK:STDOUT: call void %Base.F.call(ptr %b), !dbg !180 +// CHECK:STDOUT: ret void, !dbg !181 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: read) @@ -741,21 +741,21 @@ fn Use() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!176} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 8, column: 1, scope: !4) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !175 = !DIFile(filename: "call.carbon", directory: "") +// CHECK:STDOUT: !176 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !175, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !175, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !176, retainedNodes: !182) +// CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !177, type: !20) +// CHECK:STDOUT: !180 = !DILocation(line: 9, column: 3, scope: !177) +// CHECK:STDOUT: !181 = !DILocation(line: 8, column: 1, scope: !177) +// CHECK:STDOUT: !182 = !{!178} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_impl.carbon' @@ -770,53 +770,53 @@ fn Use() { // CHECK:STDOUT: declare void @_CF.Derived.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:Base.Main:Derived.Main"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:Base.Main:Derived.Main"(ptr %self) #0 !dbg !185 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Derived.Main(ptr %self), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @_CF.Derived.Main(ptr %self), !dbg !188 +// CHECK:STDOUT: ret void, !dbg !188 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUse.Main() #1 !dbg !11 { +// CHECK:STDOUT: define void @_CUse.Main() #1 !dbg !190 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %v.var = alloca { { ptr } }, align 8, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !14 -// CHECK:STDOUT: %.loc14_32.2.base = getelementptr inbounds nuw { { ptr } }, ptr %v.var, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: %.loc14_31.2.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc14_32.2.base, i32 0, i32 0, !dbg !16 -// CHECK:STDOUT: %.loc14_32.6.base = getelementptr inbounds nuw { { ptr } }, ptr %v.var, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: %.loc14_32.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc14_32.6.base, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %v.var, ptr align 8 @Derived.val.loc14_32.5, i64 8, i1 false), !dbg !15 -// CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc14_32.7.vptr, align 8, !dbg !15 -// CHECK:STDOUT: %.loc15_3.2.vptr = getelementptr inbounds nuw { ptr }, ptr %v.var, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc15_3.2.vptr, align 8, !dbg !17 -// CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !17 -// CHECK:STDOUT: call void %Base.F.call(ptr %.loc15_3.2.vptr), !dbg !17 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %v.var), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %v.var = alloca { { ptr } }, align 8, !dbg !191 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !191 +// CHECK:STDOUT: %.loc14_32.2.base = getelementptr inbounds nuw { { ptr } }, ptr %v.var, i32 0, i32 0, !dbg !192 +// CHECK:STDOUT: %.loc14_31.2.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc14_32.2.base, i32 0, i32 0, !dbg !193 +// CHECK:STDOUT: %.loc14_32.6.base = getelementptr inbounds nuw { { ptr } }, ptr %v.var, i32 0, i32 0, !dbg !192 +// CHECK:STDOUT: %.loc14_32.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc14_32.6.base, i32 0, i32 0, !dbg !192 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %v.var, ptr align 8 @Derived.val.loc14_32.5, i64 8, i1 false), !dbg !192 +// CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc14_32.7.vptr, align 8, !dbg !192 +// CHECK:STDOUT: %.loc15_3.2.vptr = getelementptr inbounds nuw { ptr }, ptr %v.var, i32 0, i32 0, !dbg !195 +// CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc15_3.2.vptr, align 8, !dbg !195 +// CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !195 +// CHECK:STDOUT: call void %Base.F.call(ptr %.loc15_3.2.vptr), !dbg !195 +// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %v.var), !dbg !191 +// CHECK:STDOUT: ret void, !dbg !196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #1 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #1 !dbg !197 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #1 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #1 !dbg !201 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !203 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #1 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #1 !dbg !205 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !207 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #1 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #1 !dbg !209 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !211 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -833,56 +833,56 @@ fn Use() { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!184} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:Base.Main:Derived.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 14, column: 21, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 14, column: 30, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 15, column: 3, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 1, scope: !11) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 14, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 3, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !7) -// CHECK:STDOUT: !34 = !DILocation(line: 14, column: 3, scope: !31) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !183 = !DIFile(filename: "call_impl.carbon", directory: "") +// CHECK:STDOUT: !184 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !183, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !185 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:Base.Main:Derived.Main", scope: null, file: !183, line: 10, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !189) +// CHECK:STDOUT: !186 = !DILocalVariable(arg: 1, scope: !185, type: !20) +// CHECK:STDOUT: !188 = !DILocation(line: 10, column: 3, scope: !185) +// CHECK:STDOUT: !189 = !{!186} +// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !183, line: 13, type: !41, spFlags: DISPFlagDefinition, unit: !184) +// CHECK:STDOUT: !191 = !DILocation(line: 14, column: 3, scope: !190) +// CHECK:STDOUT: !192 = !DILocation(line: 14, column: 21, scope: !190) +// CHECK:STDOUT: !193 = !DILocation(line: 14, column: 30, scope: !190) +// CHECK:STDOUT: !195 = !DILocation(line: 15, column: 3, scope: !190) +// CHECK:STDOUT: !196 = !DILocation(line: 13, column: 1, scope: !190) +// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !200) +// CHECK:STDOUT: !198 = !DILocalVariable(arg: 1, scope: !197, type: !20) +// CHECK:STDOUT: !199 = !DILocation(line: 14, column: 3, scope: !197) +// CHECK:STDOUT: !200 = !{!198} +// CHECK:STDOUT: !201 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !204) +// CHECK:STDOUT: !202 = !DILocalVariable(arg: 1, scope: !201, type: !20) +// CHECK:STDOUT: !203 = !DILocation(line: 14, column: 3, scope: !201) +// CHECK:STDOUT: !204 = !{!202} +// CHECK:STDOUT: !205 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !208) +// CHECK:STDOUT: !206 = !DILocalVariable(arg: 1, scope: !205, type: !20) +// CHECK:STDOUT: !207 = !DILocation(line: 14, column: 3, scope: !205) +// CHECK:STDOUT: !208 = !{!206} +// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !183, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !184, retainedNodes: !212) +// CHECK:STDOUT: !210 = !DILocalVariable(arg: 1, scope: !209, type: !20) +// CHECK:STDOUT: !211 = !DILocation(line: 14, column: 3, scope: !209) +// CHECK:STDOUT: !212 = !{!210} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_noop.carbon' // CHECK:STDOUT: source_filename = "generic_noop.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!214} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_noop.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !213 = !DIFile(filename: "generic_noop.carbon", directory: "") +// CHECK:STDOUT: !214 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !213, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_use.carbon' @@ -894,73 +894,73 @@ fn Use() { // CHECK:STDOUT: @Base.val.7e9.loc17_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.d35bf058397cdfd9" } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !217 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc16 = alloca { ptr }, align 8, !dbg !7 -// CHECK:STDOUT: %_.var.loc17 = alloca { ptr }, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !7 -// CHECK:STDOUT: %.loc16_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc16, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc16, ptr align 8 @Base.val.389.loc16_3, i64 8, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !8 -// CHECK:STDOUT: %.loc17_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc17, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc17, ptr align 8 @Base.val.7e9.loc17_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: call void @"_COp.6a1d86cdd5547971:core.Destroy.Core"(ptr %_.var.loc17), !dbg !8 -// CHECK:STDOUT: call void @"_COp.40b7c6c0efee38e9:core.Destroy.Core"(ptr %_.var.loc16), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var.loc16 = alloca { ptr }, align 8, !dbg !218 +// CHECK:STDOUT: %_.var.loc17 = alloca { ptr }, align 8, !dbg !221 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !218 +// CHECK:STDOUT: %.loc16_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc16, i32 0, i32 0, !dbg !219 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc16, ptr align 8 @Base.val.389.loc16_3, i64 8, i1 false), !dbg !218 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !221 +// CHECK:STDOUT: %.loc17_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc17, i32 0, i32 0, !dbg !222 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc17, ptr align 8 @Base.val.7e9.loc17_3, i64 8, i1 false), !dbg !221 +// CHECK:STDOUT: call void @"_COp.6a1d86cdd5547971:core.Destroy.Core"(ptr %_.var.loc17), !dbg !221 +// CHECK:STDOUT: call void @"_COp.40b7c6c0efee38e9:core.Destroy.Core"(ptr %_.var.loc16), !dbg !218 +// CHECK:STDOUT: ret void, !dbg !224 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2a8a57e92efa0931:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.2a8a57e92efa0931:core.Destroy.Core"(ptr %self) #0 !dbg !225 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !227 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1afb52e20d18d857:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.1afb52e20d18d857:core.Destroy.Core"(ptr %self) #0 !dbg !229 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !231 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bbfe224db279cb80:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.bbfe224db279cb80:core.Destroy.Core"(ptr %self) #0 !dbg !233 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !235 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !237 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !239 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a1d86cdd5547971:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a1d86cdd5547971:core.Destroy.Core"(ptr %self) #0 !dbg !241 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !243 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.40b7c6c0efee38e9:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.40b7c6c0efee38e9:core.Destroy.Core"(ptr %self) #0 !dbg !245 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: ret void, !dbg !247 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.9203bf580ba2de56(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.9203bf580ba2de56(ptr %self) #0 !dbg !249 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !42 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !42 -// CHECK:STDOUT: call void @"_COp.2a8a57e92efa0931:core.Destroy.Core"(ptr %_.var), !dbg !42 -// CHECK:STDOUT: ret void, !dbg !43 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !252 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !252 +// CHECK:STDOUT: call void @"_COp.2a8a57e92efa0931:core.Destroy.Core"(ptr %_.var), !dbg !252 +// CHECK:STDOUT: ret void, !dbg !254 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.d35bf058397cdfd9(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.d35bf058397cdfd9(ptr %self) #0 !dbg !256 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { {} }, align 1, !dbg !47 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !47 -// CHECK:STDOUT: call void @"_COp.bbfe224db279cb80:core.Destroy.Core"(ptr %_.var), !dbg !47 -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: %_.var = alloca { {} }, align 1, !dbg !259 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !259 +// CHECK:STDOUT: call void @"_COp.bbfe224db279cb80:core.Destroy.Core"(ptr %_.var), !dbg !259 +// CHECK:STDOUT: ret void, !dbg !261 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -976,58 +976,58 @@ fn Use() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!216} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_use.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 21, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 17, column: 21, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2a8a57e92efa0931:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 10, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1afb52e20d18d857:core.Destroy.Core", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 17, column: 10, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbfe224db279cb80:core.Destroy.Core", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !15) -// CHECK:STDOUT: !26 = !DILocation(line: 17, column: 10, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !15) -// CHECK:STDOUT: !30 = !DILocation(line: 17, column: 3, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a1d86cdd5547971:core.Destroy.Core", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !15) -// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.40b7c6c0efee38e9:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !15) -// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.9203bf580ba2de56", scope: null, file: !1, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !15) -// CHECK:STDOUT: !42 = !DILocation(line: 6, column: 5, scope: !39) -// CHECK:STDOUT: !43 = !DILocation(line: 5, column: 3, scope: !39) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.d35bf058397cdfd9", scope: null, file: !1, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !15) -// CHECK:STDOUT: !47 = !DILocation(line: 6, column: 5, scope: !44) -// CHECK:STDOUT: !48 = !DILocation(line: 5, column: 3, scope: !44) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !215 = !DIFile(filename: "generic_use.carbon", directory: "") +// CHECK:STDOUT: !216 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !215, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !217 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !215, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !216) +// CHECK:STDOUT: !218 = !DILocation(line: 16, column: 3, scope: !217) +// CHECK:STDOUT: !219 = !DILocation(line: 16, column: 21, scope: !217) +// CHECK:STDOUT: !221 = !DILocation(line: 17, column: 3, scope: !217) +// CHECK:STDOUT: !222 = !DILocation(line: 17, column: 21, scope: !217) +// CHECK:STDOUT: !224 = !DILocation(line: 15, column: 1, scope: !217) +// CHECK:STDOUT: !225 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2a8a57e92efa0931:core.Destroy.Core", scope: null, file: !215, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !228) +// CHECK:STDOUT: !226 = !DILocalVariable(arg: 1, scope: !225, type: !20) +// CHECK:STDOUT: !227 = !DILocation(line: 16, column: 10, scope: !225) +// CHECK:STDOUT: !228 = !{!226} +// CHECK:STDOUT: !229 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1afb52e20d18d857:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !232) +// CHECK:STDOUT: !230 = !DILocalVariable(arg: 1, scope: !229, type: !20) +// CHECK:STDOUT: !231 = !DILocation(line: 17, column: 10, scope: !229) +// CHECK:STDOUT: !232 = !{!230} +// CHECK:STDOUT: !233 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbfe224db279cb80:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !236) +// CHECK:STDOUT: !234 = !DILocalVariable(arg: 1, scope: !233, type: !20) +// CHECK:STDOUT: !235 = !DILocation(line: 17, column: 10, scope: !233) +// CHECK:STDOUT: !236 = !{!234} +// CHECK:STDOUT: !237 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !240) +// CHECK:STDOUT: !238 = !DILocalVariable(arg: 1, scope: !237, type: !20) +// CHECK:STDOUT: !239 = !DILocation(line: 17, column: 3, scope: !237) +// CHECK:STDOUT: !240 = !{!238} +// CHECK:STDOUT: !241 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a1d86cdd5547971:core.Destroy.Core", scope: null, file: !215, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !244) +// CHECK:STDOUT: !242 = !DILocalVariable(arg: 1, scope: !241, type: !20) +// CHECK:STDOUT: !243 = !DILocation(line: 17, column: 3, scope: !241) +// CHECK:STDOUT: !244 = !{!242} +// CHECK:STDOUT: !245 = distinct !DISubprogram(name: "Op", linkageName: "_COp.40b7c6c0efee38e9:core.Destroy.Core", scope: null, file: !215, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !248) +// CHECK:STDOUT: !246 = !DILocalVariable(arg: 1, scope: !245, type: !20) +// CHECK:STDOUT: !247 = !DILocation(line: 16, column: 3, scope: !245) +// CHECK:STDOUT: !248 = !{!246} +// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.9203bf580ba2de56", scope: null, file: !215, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !255) +// CHECK:STDOUT: !250 = !DILocalVariable(arg: 1, scope: !249, type: !20) +// CHECK:STDOUT: !252 = !DILocation(line: 6, column: 5, scope: !249) +// CHECK:STDOUT: !254 = !DILocation(line: 5, column: 3, scope: !249) +// CHECK:STDOUT: !255 = !{!250} +// CHECK:STDOUT: !256 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.d35bf058397cdfd9", scope: null, file: !215, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !216, retainedNodes: !262) +// CHECK:STDOUT: !257 = !DILocalVariable(arg: 1, scope: !256, type: !20) +// CHECK:STDOUT: !259 = !DILocation(line: 6, column: 5, scope: !256) +// CHECK:STDOUT: !261 = !DILocation(line: 5, column: 3, scope: !256) +// CHECK:STDOUT: !262 = !{!257} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_base.carbon' @@ -1036,42 +1036,42 @@ fn Use() { // CHECK:STDOUT: @"_CDerived.Main.$vtable" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.6d6a4a2512463e59 to i64), i64 ptrtoint (ptr @"_CDerived.Main.$vtable" to i64)) to i32)] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMake.Main() #0 !dbg !265 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { { ptr } }, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !7 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %_.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %_.var = alloca { { ptr } }, align 8, !dbg !266 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !266 +// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %_.var), !dbg !266 +// CHECK:STDOUT: ret void, !dbg !268 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !9 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !269 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: ret void, !dbg !271 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.898d07056c7ee329:core.Destroy.Core"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_COp.898d07056c7ee329:core.Destroy.Core"(ptr %self) #0 !dbg !273 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !275 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.869a2dea742ac75c:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.869a2dea742ac75c:core.Destroy.Core"(ptr %self) #0 !dbg !277 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !279 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !281 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !283 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.6d6a4a2512463e59(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.6d6a4a2512463e59(ptr %self) #0 !dbg !285 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !288 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -1080,41 +1080,41 @@ fn Use() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!264} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_base.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !1, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null, !12} -// CHECK:STDOUT: !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !9, type: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 15, column: 3, scope: !9) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.898d07056c7ee329:core.Destroy.Core", scope: null, file: !1, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !16, type: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 3, scope: !16) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.869a2dea742ac75c:core.Destroy.Core", scope: null, file: !1, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 15, column: 3, scope: !20) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !1, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !12) -// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 3, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.6d6a4a2512463e59", scope: null, file: !1, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !12) -// CHECK:STDOUT: !31 = !DILocation(line: 5, column: 3, scope: !28) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !263 = !DIFile(filename: "generic_base.carbon", directory: "") +// CHECK:STDOUT: !264 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !263, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !265 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !263, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !264) +// CHECK:STDOUT: !266 = !DILocation(line: 15, column: 3, scope: !265) +// CHECK:STDOUT: !268 = !DILocation(line: 14, column: 1, scope: !265) +// CHECK:STDOUT: !269 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !272) +// CHECK:STDOUT: !270 = !DILocalVariable(arg: 1, scope: !269, type: !20) +// CHECK:STDOUT: !271 = !DILocation(line: 15, column: 3, scope: !269) +// CHECK:STDOUT: !272 = !{!270} +// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "Op", linkageName: "_COp.898d07056c7ee329:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !276) +// CHECK:STDOUT: !274 = !DILocalVariable(arg: 1, scope: !273, type: !20) +// CHECK:STDOUT: !275 = !DILocation(line: 15, column: 3, scope: !273) +// CHECK:STDOUT: !276 = !{!274} +// CHECK:STDOUT: !277 = distinct !DISubprogram(name: "Op", linkageName: "_COp.869a2dea742ac75c:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !280) +// CHECK:STDOUT: !278 = !DILocalVariable(arg: 1, scope: !277, type: !20) +// CHECK:STDOUT: !279 = !DILocation(line: 15, column: 3, scope: !277) +// CHECK:STDOUT: !280 = !{!278} +// CHECK:STDOUT: !281 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !263, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !284) +// CHECK:STDOUT: !282 = !DILocalVariable(arg: 1, scope: !281, type: !20) +// CHECK:STDOUT: !283 = !DILocation(line: 15, column: 3, scope: !281) +// CHECK:STDOUT: !284 = !{!282} +// CHECK:STDOUT: !285 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.6d6a4a2512463e59", scope: null, file: !263, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !264, retainedNodes: !289) +// CHECK:STDOUT: !286 = !DILocalVariable(arg: 1, scope: !285, type: !20) +// CHECK:STDOUT: !288 = !DILocation(line: 5, column: 3, scope: !285) +// CHECK:STDOUT: !289 = !{!286} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'thunk.carbon' @@ -1131,86 +1131,86 @@ fn Use() { // CHECK:STDOUT: declare void @_CF.Base.Main(ptr sret({}), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Derived.Main(ptr sret({}) %return, ptr %self, ptr %n) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Derived.Main(ptr sret({}) %return, ptr %self, ptr %n) #0 !dbg !296 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @From.val.loc18_14, i64 0, i1 false), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @From.val.loc18_14, i64 0, i1 false), !dbg !303 +// CHECK:STDOUT: ret void, !dbg !303 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:Base.Main:Derived.Main"(ptr sret({}) %return, ptr %self, ptr %n) #1 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:Base.Main:Derived.Main"(ptr sret({}) %return, ptr %self, ptr %n) #1 !dbg !305 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17_52.2.temp = alloca {}, align 1, !dbg !16 -// CHECK:STDOUT: %.5.temp = alloca {}, align 1, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_52.2.temp), !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.5.temp), !dbg !17 -// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %.5.temp, ptr %n), !dbg !17 -// CHECK:STDOUT: call void @_CF.Derived.Main(ptr %.loc17_52.2.temp, ptr %self, ptr %.5.temp), !dbg !16 -// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %return, ptr %.loc17_52.2.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr %.loc17_52.2.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %.5.temp), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %.loc17_52.2.temp = alloca {}, align 1, !dbg !309 +// CHECK:STDOUT: %.5.temp = alloca {}, align 1, !dbg !308 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_52.2.temp), !dbg !309 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.5.temp), !dbg !308 +// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %.5.temp, ptr %n), !dbg !308 +// CHECK:STDOUT: call void @_CF.Derived.Main(ptr %.loc17_52.2.temp, ptr %self, ptr %.5.temp), !dbg !309 +// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %return, ptr %.loc17_52.2.temp), !dbg !309 +// CHECK:STDOUT: call void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr %.loc17_52.2.temp), !dbg !309 +// CHECK:STDOUT: call void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %.5.temp), !dbg !308 +// CHECK:STDOUT: ret void, !dbg !309 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr %self) #0 !dbg !311 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !313 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %self) #0 !dbg !315 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !317 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUse.Main() #0 !dbg !28 { +// CHECK:STDOUT: define void @_CUse.Main() #0 !dbg !319 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %d.var = alloca { { ptr } }, align 8, !dbg !31 -// CHECK:STDOUT: %.loc25_10.1.temp = alloca {}, align 1, !dbg !32 -// CHECK:STDOUT: %.loc25_9.2.temp = alloca {}, align 1, !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !31 -// CHECK:STDOUT: %.loc23_31.2.base = getelementptr inbounds nuw { { ptr } }, ptr %d.var, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: %.loc23_30.2.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc23_31.2.base, i32 0, i32 0, !dbg !35 -// CHECK:STDOUT: %.loc23_31.6.base = getelementptr inbounds nuw { { ptr } }, ptr %d.var, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: %.loc23_31.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc23_31.6.base, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %d.var, ptr align 8 @Derived.val.loc23_31.5, i64 8, i1 false), !dbg !34 -// CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc23_31.7.vptr, align 8, !dbg !34 -// CHECK:STDOUT: %.loc24_18.2.base = getelementptr inbounds nuw { { ptr } }, ptr %d.var, i32 0, i32 0, !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_10.1.temp), !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_9.2.temp), !dbg !33 -// CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc25_10.1.temp, align 8, !dbg !32 -// CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !32 -// CHECK:STDOUT: call void %Base.F.call(ptr %.loc25_10.1.temp, ptr %.loc24_18.2.base, ptr @From.val.loc18_14), !dbg !32 -// CHECK:STDOUT: call void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %.loc25_10.1.temp), !dbg !32 -// CHECK:STDOUT: call void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr @From.val), !dbg !33 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %d.var), !dbg !31 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %d.var = alloca { { ptr } }, align 8, !dbg !320 +// CHECK:STDOUT: %.loc25_10.1.temp = alloca {}, align 1, !dbg !328 +// CHECK:STDOUT: %.loc25_9.2.temp = alloca {}, align 1, !dbg !329 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !320 +// CHECK:STDOUT: %.loc23_31.2.base = getelementptr inbounds nuw { { ptr } }, ptr %d.var, i32 0, i32 0, !dbg !321 +// CHECK:STDOUT: %.loc23_30.2.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc23_31.2.base, i32 0, i32 0, !dbg !322 +// CHECK:STDOUT: %.loc23_31.6.base = getelementptr inbounds nuw { { ptr } }, ptr %d.var, i32 0, i32 0, !dbg !321 +// CHECK:STDOUT: %.loc23_31.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc23_31.6.base, i32 0, i32 0, !dbg !321 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %d.var, ptr align 8 @Derived.val.loc23_31.5, i64 8, i1 false), !dbg !321 +// CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc23_31.7.vptr, align 8, !dbg !321 +// CHECK:STDOUT: %.loc24_18.2.base = getelementptr inbounds nuw { { ptr } }, ptr %d.var, i32 0, i32 0, !dbg !325 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_10.1.temp), !dbg !328 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_9.2.temp), !dbg !329 +// CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc25_10.1.temp, align 8, !dbg !328 +// CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !328 +// CHECK:STDOUT: call void %Base.F.call(ptr %.loc25_10.1.temp, ptr %.loc24_18.2.base, ptr @From.val.loc18_14), !dbg !328 +// CHECK:STDOUT: call void @"_COp.ce04c064f6006102:core.Destroy.Core"(ptr %.loc25_10.1.temp), !dbg !328 +// CHECK:STDOUT: call void @"_COp.5f7e8652ea6df95d:core.Destroy.Core"(ptr @From.val), !dbg !329 +// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %d.var), !dbg !320 +// CHECK:STDOUT: ret void, !dbg !330 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !331 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !333 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #0 !dbg !335 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !337 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.66f0cc6b13851099:core.Destroy.Core"(ptr %self) #0 !dbg !339 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !49 +// CHECK:STDOUT: ret void, !dbg !341 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #0 !dbg !343 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !53 +// CHECK:STDOUT: ret void, !dbg !345 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -1231,61 +1231,61 @@ fn Use() { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!291} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "thunk.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Derived.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 18, column: 5, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:Base.Main:Derived.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !13 = !{!14, !15} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 2, scope: !12, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 0, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f7e8652ea6df95d:core.Destroy.Core", scope: null, file: !1, line: 17, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !7} -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 17, column: 3, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ce04c064f6006102:core.Destroy.Core", scope: null, file: !1, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 0, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !1, line: 22, type: !29, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null} -// CHECK:STDOUT: !31 = !DILocation(line: 23, column: 3, scope: !28) -// CHECK:STDOUT: !32 = !DILocation(line: 25, column: 3, scope: !28) -// CHECK:STDOUT: !33 = !DILocation(line: 25, column: 8, scope: !28) -// CHECK:STDOUT: !34 = !DILocation(line: 23, column: 20, scope: !28) -// CHECK:STDOUT: !35 = !DILocation(line: 23, column: 29, scope: !28) -// CHECK:STDOUT: !36 = !DILocation(line: 24, column: 18, scope: !28) -// CHECK:STDOUT: !37 = !DILocation(line: 22, column: 1, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !1, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !41 = !DILocation(line: 23, column: 3, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !1, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !7) -// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 3, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !1, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !47) -// CHECK:STDOUT: !47 = !{!48} -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !7) -// CHECK:STDOUT: !49 = !DILocation(line: 23, column: 3, scope: !46) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !1, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !51 = !{!52} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !50, type: !7) -// CHECK:STDOUT: !53 = !DILocation(line: 23, column: 3, scope: !50) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !290 = !DIFile(filename: "thunk.carbon", directory: "") +// CHECK:STDOUT: !291 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !290, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !294 = !{!20, !20, !20} +// CHECK:STDOUT: !295 = !DISubroutineType(types: !294) +// CHECK:STDOUT: !296 = distinct !DISubprogram(name: "F", linkageName: "_CF.Derived.Main", scope: null, file: !290, line: 17, type: !295, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !304) +// CHECK:STDOUT: !297 = !DILocalVariable(arg: 1, scope: !296, type: !20) +// CHECK:STDOUT: !298 = !DILocalVariable(arg: 2, scope: !296, type: !20) +// CHECK:STDOUT: !303 = !DILocation(line: 18, column: 5, scope: !296) +// CHECK:STDOUT: !304 = !{!297, !298} +// CHECK:STDOUT: !305 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:Base.Main:Derived.Main", scope: null, file: !290, line: 17, type: !295, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !310) +// CHECK:STDOUT: !306 = !DILocalVariable(arg: 1, scope: !305, type: !20) +// CHECK:STDOUT: !307 = !DILocalVariable(arg: 2, scope: !305, type: !20) +// CHECK:STDOUT: !308 = !DILocation(line: 0, scope: !305) +// CHECK:STDOUT: !309 = !DILocation(line: 17, column: 3, scope: !305) +// CHECK:STDOUT: !310 = !{!306, !307} +// CHECK:STDOUT: !311 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f7e8652ea6df95d:core.Destroy.Core", scope: null, file: !290, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !314) +// CHECK:STDOUT: !312 = !DILocalVariable(arg: 1, scope: !311, type: !20) +// CHECK:STDOUT: !313 = !DILocation(line: 17, column: 3, scope: !311) +// CHECK:STDOUT: !314 = !{!312} +// CHECK:STDOUT: !315 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ce04c064f6006102:core.Destroy.Core", scope: null, file: !290, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !318) +// CHECK:STDOUT: !316 = !DILocalVariable(arg: 1, scope: !315, type: !20) +// CHECK:STDOUT: !317 = !DILocation(line: 0, scope: !315) +// CHECK:STDOUT: !318 = !{!316} +// CHECK:STDOUT: !319 = distinct !DISubprogram(name: "Use", linkageName: "_CUse.Main", scope: null, file: !290, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !291) +// CHECK:STDOUT: !320 = !DILocation(line: 23, column: 3, scope: !319) +// CHECK:STDOUT: !321 = !DILocation(line: 23, column: 20, scope: !319) +// CHECK:STDOUT: !322 = !DILocation(line: 23, column: 29, scope: !319) +// CHECK:STDOUT: !325 = !DILocation(line: 24, column: 18, scope: !319) +// CHECK:STDOUT: !328 = !DILocation(line: 25, column: 3, scope: !319) +// CHECK:STDOUT: !329 = !DILocation(line: 25, column: 8, scope: !319) +// CHECK:STDOUT: !330 = !DILocation(line: 22, column: 1, scope: !319) +// CHECK:STDOUT: !331 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !334) +// CHECK:STDOUT: !332 = !DILocalVariable(arg: 1, scope: !331, type: !20) +// CHECK:STDOUT: !333 = !DILocation(line: 23, column: 3, scope: !331) +// CHECK:STDOUT: !334 = !{!332} +// CHECK:STDOUT: !335 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !338) +// CHECK:STDOUT: !336 = !DILocalVariable(arg: 1, scope: !335, type: !20) +// CHECK:STDOUT: !337 = !DILocation(line: 23, column: 3, scope: !335) +// CHECK:STDOUT: !338 = !{!336} +// CHECK:STDOUT: !339 = distinct !DISubprogram(name: "Op", linkageName: "_COp.66f0cc6b13851099:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !342) +// CHECK:STDOUT: !340 = !DILocalVariable(arg: 1, scope: !339, type: !20) +// CHECK:STDOUT: !341 = !DILocation(line: 23, column: 3, scope: !339) +// CHECK:STDOUT: !342 = !{!340} +// CHECK:STDOUT: !343 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !290, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !291, retainedNodes: !346) +// CHECK:STDOUT: !344 = !DILocalVariable(arg: 1, scope: !343, type: !20) +// CHECK:STDOUT: !345 = !DILocation(line: 23, column: 3, scope: !343) +// CHECK:STDOUT: !346 = !{!344} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/for/bindings.carbon b/toolchain/lower/testdata/for/bindings.carbon index 41a340258e4b..4ba357981b23 100644 --- a/toolchain/lower/testdata/for/bindings.carbon +++ b/toolchain/lower/testdata/for/bindings.carbon @@ -40,95 +40,95 @@ fn For() { // CHECK:STDOUT: declare void @_CF.Main(i32, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFor.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFor.Main() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %r.var = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: %.loc29_33.1.temp = alloca <{ { i32, i32 }, i1 }>, align 4, !dbg !9 -// CHECK:STDOUT: %.loc29_33.8.temp = alloca { i32, i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %r.var), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc27_3, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !8 -// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %r.var), !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !9 -// CHECK:STDOUT: br label %for.next, !dbg !9 +// CHECK:STDOUT: %r.var = alloca {}, align 1, !dbg !17 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !19 +// CHECK:STDOUT: %var = alloca {}, align 1, !dbg !22 +// CHECK:STDOUT: %.loc29_33.1.temp = alloca <{ { i32, i32 }, i1 }>, align 4, !dbg !22 +// CHECK:STDOUT: %.loc29_33.8.temp = alloca { i32, i32 }, align 4, !dbg !22 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %r.var), !dbg !17 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc27_3, i64 0, i1 false), !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !19 +// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %r.var), !dbg !22 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !22 +// CHECK:STDOUT: br label %for.next, !dbg !22 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !9 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.f24ed4cfd4dc70ce(ptr %.loc29_33.1.temp), !dbg !9 -// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !9 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !22 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.f24ed4cfd4dc70ce(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !22 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.8.temp), !dbg !9 -// CHECK:STDOUT: call void @_CGet.Optional.Core.f24ed4cfd4dc70ce(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !9 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 1, !dbg !9 -// CHECK:STDOUT: %.loc29_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !9 -// CHECK:STDOUT: %.loc29_33.12 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !9 -// CHECK:STDOUT: store i32 %.loc29_33.12, ptr %n.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(i32 %.loc29_33.11, ptr %n.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !11 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.8.temp), !dbg !22 +// CHECK:STDOUT: call void @_CGet.Optional.Core.f24ed4cfd4dc70ce(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 0, !dbg !22 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 1, !dbg !22 +// CHECK:STDOUT: %.loc29_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !22 +// CHECK:STDOUT: %.loc29_33.12 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !22 +// CHECK:STDOUT: store i32 %.loc29_33.12, ptr %n.var, align 4, !dbg !19 +// CHECK:STDOUT: call void @_CF.Main(i32 %.loc29_33.11, ptr %n.var), !dbg !32 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !19 +// CHECK:STDOUT: br label %for.next, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.2f1484e6f9f8724d:core.Destroy.Core"(ptr %r.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: call void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !19 +// CHECK:STDOUT: call void @"_COp.2f1484e6f9f8724d:core.Destroy.Core"(ptr %r.var), !dbg !17 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.927f3a4d5771ff29:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.927f3a4d5771ff29:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2b5bebaac7360e57:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.2b5bebaac7360e57:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5af6617ed1d8eba3:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.5af6617ed1d8eba3:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.29436536cefc14d3:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.29436536cefc14d3:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.d151bf443fefa495:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2f1484e6f9f8724d:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.2f1484e6f9f8724d:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -138,69 +138,69 @@ fn For() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr %self) #0 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !54 +// CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !55 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CNone.Optional.Core.f24ed4cfd4dc70ce(ptr %return), !dbg !61 -// CHECK:STDOUT: ret void, !dbg !62 +// CHECK:STDOUT: call void @_CNone.Optional.Core.f24ed4cfd4dc70ce(ptr %return), !dbg !81 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.f24ed4cfd4dc70ce(ptr %self) #0 !dbg !63 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %self), !dbg !69 -// CHECK:STDOUT: ret i1 %1, !dbg !70 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.f24ed4cfd4dc70ce(ptr %self) #0 !dbg !87 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %self), !dbg !93 +// CHECK:STDOUT: ret i1 %1, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.f24ed4cfd4dc70ce(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !71 { -// CHECK:STDOUT: call void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %return, ptr %self), !dbg !74 -// CHECK:STDOUT: ret void, !dbg !75 +// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.f24ed4cfd4dc70ce(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !96 { +// CHECK:STDOUT: call void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %return, ptr %self), !dbg !102 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.f24ed4cfd4dc70ce(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !76 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %return), !dbg !79 -// CHECK:STDOUT: ret void, !dbg !80 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.f24ed4cfd4dc70ce(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !105 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %return), !dbg !108 +// CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %value) #0 !dbg !81 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 1, !dbg !84 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !84 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !84 -// CHECK:STDOUT: ret i1 %2, !dbg !85 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr %value) #0 !dbg !110 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 1, !dbg !115 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !115 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !115 +// CHECK:STDOUT: ret i1 %2, !dbg !116 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !86 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 0, !dbg !89 -// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %return, ptr %value1), !dbg !89 -// CHECK:STDOUT: ret void, !dbg !90 +// CHECK:STDOUT: define linkonce_odr void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !118 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 0, !dbg !123 +// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr %return, ptr %value1), !dbg !123 +// CHECK:STDOUT: ret void, !dbg !124 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !91 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %return, i32 0, i32 1, !dbg !92 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !92 -// CHECK:STDOUT: ret void, !dbg !93 +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !126 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %return, i32 0, i32 1, !dbg !133 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !133 +// CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !94 { -// CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !98 -// CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !98 -// CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !99 -// CHECK:STDOUT: %tuple.elem2 = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !100 -// CHECK:STDOUT: %tuple.elem.load3 = load i32, ptr %tuple.elem2, align 4, !dbg !100 -// CHECK:STDOUT: %tuple.elem4 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !99 -// CHECK:STDOUT: store i32 %tuple.elem.load, ptr %tuple.elem1, align 4, !dbg !99 -// CHECK:STDOUT: store i32 %tuple.elem.load3, ptr %tuple.elem4, align 4, !dbg !99 -// CHECK:STDOUT: ret void, !dbg !101 +// CHECK:STDOUT: define linkonce_odr void @"_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !136 { +// CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !141 +// CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !141 +// CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !142 +// CHECK:STDOUT: %tuple.elem2 = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !143 +// CHECK:STDOUT: %tuple.elem.load3 = load i32, ptr %tuple.elem2, align 4, !dbg !143 +// CHECK:STDOUT: %tuple.elem4 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !142 +// CHECK:STDOUT: store i32 %tuple.elem.load, ptr %tuple.elem1, align 4, !dbg !142 +// CHECK:STDOUT: store i32 %tuple.elem.load3, ptr %tuple.elem4, align 4, !dbg !142 +// CHECK:STDOUT: ret void, !dbg !144 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -211,109 +211,109 @@ fn For() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "bindings.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !1, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 27, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 29, column: 17, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 29, column: 7, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 30, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 29, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 26, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 27, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 27, column: 10, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 27, column: 10, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.927f3a4d5771ff29:core.Destroy.Core", scope: null, file: !1, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) -// CHECK:STDOUT: !30 = !DILocation(line: 29, column: 7, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2b5bebaac7360e57:core.Destroy.Core", scope: null, file: !1, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !23) -// CHECK:STDOUT: !34 = !DILocation(line: 29, column: 7, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5af6617ed1d8eba3:core.Destroy.Core", scope: null, file: !1, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !23) -// CHECK:STDOUT: !38 = !DILocation(line: 29, column: 7, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.29436536cefc14d3:core.Destroy.Core", scope: null, file: !1, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !23) -// CHECK:STDOUT: !42 = !DILocation(line: 29, column: 7, scope: !39) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d151bf443fefa495:core.Destroy.Core", scope: null, file: !1, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !23) -// CHECK:STDOUT: !46 = !DILocation(line: 29, column: 7, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2f1484e6f9f8724d:core.Destroy.Core", scope: null, file: !1, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !48) -// CHECK:STDOUT: !48 = !{!49} -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !23) -// CHECK:STDOUT: !50 = !DILocation(line: 27, column: 3, scope: !47) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f", scope: null, file: !1, line: 15, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !52) -// CHECK:STDOUT: !52 = !{!53} -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !51, type: !23) -// CHECK:STDOUT: !54 = !DILocation(line: 16, column: 7, scope: !51) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f", scope: null, file: !1, line: 18, type: !56, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !56 = !DISubroutineType(types: !57) -// CHECK:STDOUT: !57 = !{!23, !23, !23} -// CHECK:STDOUT: !58 = !{!59, !60} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !55, type: !23) -// CHECK:STDOUT: !60 = !DILocalVariable(arg: 2, scope: !55, type: !23) -// CHECK:STDOUT: !61 = !DILocation(line: 19, column: 14, scope: !55) -// CHECK:STDOUT: !62 = !DILocation(line: 19, column: 7, scope: !55) -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !64, line: 36, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) -// CHECK:STDOUT: !64 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !65 = !DISubroutineType(types: !66) -// CHECK:STDOUT: !66 = !{!23, !23} -// CHECK:STDOUT: !67 = !{!68} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !63, type: !23) -// CHECK:STDOUT: !69 = !DILocation(line: 37, column: 12, scope: !63) -// CHECK:STDOUT: !70 = !DILocation(line: 37, column: 5, scope: !63) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !64, line: 39, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !72 = !{!73} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !71, type: !23) -// CHECK:STDOUT: !74 = !DILocation(line: 40, column: 12, scope: !71) -// CHECK:STDOUT: !75 = !DILocation(line: 40, column: 5, scope: !71) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !64, line: 30, type: !77, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !77 = !DISubroutineType(types: !78) -// CHECK:STDOUT: !78 = !{!23} -// CHECK:STDOUT: !79 = !DILocation(line: 31, column: 12, scope: !76) -// CHECK:STDOUT: !80 = !DILocation(line: 31, column: 5, scope: !76) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !64, line: 141, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !82) -// CHECK:STDOUT: !82 = !{!83} -// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !23) -// CHECK:STDOUT: !84 = !DILocation(line: 142, column: 12, scope: !81) -// CHECK:STDOUT: !85 = !DILocation(line: 142, column: 5, scope: !81) -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !64, line: 144, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !87) -// CHECK:STDOUT: !87 = !{!88} -// CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !86, type: !23) -// CHECK:STDOUT: !89 = !DILocation(line: 145, column: 12, scope: !86) -// CHECK:STDOUT: !90 = !DILocation(line: 145, column: 5, scope: !86) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !64, line: 125, type: !77, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !92 = !DILocation(line: 128, column: 5, scope: !91) -// CHECK:STDOUT: !93 = !DILocation(line: 129, column: 5, scope: !91) -// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb", scope: null, file: !95, line: 62, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !96) -// CHECK:STDOUT: !95 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") -// CHECK:STDOUT: !96 = !{!97} -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !94, type: !23) -// CHECK:STDOUT: !98 = !DILocation(line: 63, column: 13, scope: !94) -// CHECK:STDOUT: !99 = !DILocation(line: 63, column: 12, scope: !94) -// CHECK:STDOUT: !100 = !DILocation(line: 63, column: 26, scope: !94) -// CHECK:STDOUT: !101 = !DILocation(line: 63, column: 5, scope: !94) +// CHECK:STDOUT: !4 = !DIFile(filename: "bindings.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{null, !7} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !4, line: 26, type: !11, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 27, column: 3, scope: !16) +// CHECK:STDOUT: !19 = !DILocation(line: 29, column: 17, scope: !16) +// CHECK:STDOUT: !22 = !DILocation(line: 29, column: 7, scope: !16) +// CHECK:STDOUT: !23 = !{!7, !7, !7} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !{!7, !7} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !32 = !DILocation(line: 30, column: 5, scope: !16) +// CHECK:STDOUT: !33 = !DILocation(line: 29, column: 3, scope: !16) +// CHECK:STDOUT: !34 = !DILocation(line: 26, column: 1, scope: !16) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 27, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !6) +// CHECK:STDOUT: !37 = !DILocation(line: 27, column: 10, scope: !35) +// CHECK:STDOUT: !38 = !{!36} +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !4, line: 27, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !7) +// CHECK:STDOUT: !41 = !DILocation(line: 27, column: 10, scope: !39) +// CHECK:STDOUT: !42 = !{!40} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.927f3a4d5771ff29:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !7) +// CHECK:STDOUT: !45 = !DILocation(line: 29, column: 7, scope: !43) +// CHECK:STDOUT: !46 = !{!44} +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2b5bebaac7360e57:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !7) +// CHECK:STDOUT: !49 = !DILocation(line: 29, column: 7, scope: !47) +// CHECK:STDOUT: !50 = !{!48} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5af6617ed1d8eba3:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !7) +// CHECK:STDOUT: !53 = !DILocation(line: 29, column: 7, scope: !51) +// CHECK:STDOUT: !54 = !{!52} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.29436536cefc14d3:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !7) +// CHECK:STDOUT: !57 = !DILocation(line: 29, column: 7, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d151bf443fefa495:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !7) +// CHECK:STDOUT: !61 = !DILocation(line: 29, column: 7, scope: !59) +// CHECK:STDOUT: !62 = !{!60} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2f1484e6f9f8724d:core.Destroy.Core", scope: null, file: !4, line: 27, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !66) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !7) +// CHECK:STDOUT: !65 = !DILocation(line: 27, column: 3, scope: !63) +// CHECK:STDOUT: !66 = !{!64} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f", scope: null, file: !4, line: 15, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !7) +// CHECK:STDOUT: !72 = !DILocation(line: 16, column: 7, scope: !67) +// CHECK:STDOUT: !73 = !{!68} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.6ce0b798b8ba1b7f", scope: null, file: !4, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !85) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !7) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !74, type: !7) +// CHECK:STDOUT: !81 = !DILocation(line: 19, column: 14, scope: !74) +// CHECK:STDOUT: !82 = !{!7} +// CHECK:STDOUT: !83 = !DISubroutineType(types: !82) +// CHECK:STDOUT: !84 = !DILocation(line: 19, column: 7, scope: !74) +// CHECK:STDOUT: !85 = !{!75, !76} +// CHECK:STDOUT: !86 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !86, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) +// CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !87, type: !7) +// CHECK:STDOUT: !93 = !DILocation(line: 37, column: 12, scope: !87) +// CHECK:STDOUT: !94 = !DILocation(line: 37, column: 5, scope: !87) +// CHECK:STDOUT: !95 = !{!88} +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !86, line: 39, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !104) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !7) +// CHECK:STDOUT: !102 = !DILocation(line: 40, column: 12, scope: !96) +// CHECK:STDOUT: !103 = !DILocation(line: 40, column: 5, scope: !96) +// CHECK:STDOUT: !104 = !{!97} +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.f24ed4cfd4dc70ce", scope: null, file: !86, line: 30, type: !83, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !108 = !DILocation(line: 31, column: 12, scope: !105) +// CHECK:STDOUT: !109 = !DILocation(line: 31, column: 5, scope: !105) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !86, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !117) +// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !7) +// CHECK:STDOUT: !115 = !DILocation(line: 142, column: 12, scope: !110) +// CHECK:STDOUT: !116 = !DILocation(line: 142, column: 5, scope: !110) +// CHECK:STDOUT: !117 = !{!111} +// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !86, line: 144, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !125) +// CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !118, type: !7) +// CHECK:STDOUT: !123 = !DILocation(line: 145, column: 12, scope: !118) +// CHECK:STDOUT: !124 = !DILocation(line: 145, column: 5, scope: !118) +// CHECK:STDOUT: !125 = !{!119} +// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.6ce0b798b8ba1b7f", scope: null, file: !86, line: 125, type: !83, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !133 = !DILocation(line: 128, column: 5, scope: !126) +// CHECK:STDOUT: !134 = !DILocation(line: 129, column: 5, scope: !126) +// CHECK:STDOUT: !135 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e4edddc7580c79b:Copy.Core.8608f3c6f62d80cb", scope: null, file: !135, line: 62, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !145) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !7) +// CHECK:STDOUT: !141 = !DILocation(line: 63, column: 13, scope: !136) +// CHECK:STDOUT: !142 = !DILocation(line: 63, column: 12, scope: !136) +// CHECK:STDOUT: !143 = !DILocation(line: 63, column: 26, scope: !136) +// CHECK:STDOUT: !144 = !DILocation(line: 63, column: 5, scope: !136) +// CHECK:STDOUT: !145 = !{!137} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/for/break_continue.carbon b/toolchain/lower/testdata/for/break_continue.carbon index b524578d30ef..0608075ffee8 100644 --- a/toolchain/lower/testdata/for/break_continue.carbon +++ b/toolchain/lower/testdata/for/break_continue.carbon @@ -33,50 +33,50 @@ fn For() { // CHECK:STDOUT: declare void @_CH.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFor.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFor.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_32.1.temp = alloca { i32, i32 }, align 4, !dbg !7 -// CHECK:STDOUT: %var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %.loc18_33.1.temp = alloca <{ i32, i1 }>, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_32.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc18_32.1.temp, i32 100), !dbg !7 -// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_32.1.temp), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 -// CHECK:STDOUT: store i32 %IntRange.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !8 +// CHECK:STDOUT: %.loc18_32.1.temp = alloca { i32, i32 }, align 4, !dbg !20 +// CHECK:STDOUT: %var = alloca i32, align 4, !dbg !21 +// CHECK:STDOUT: %.loc18_33.1.temp = alloca <{ i32, i1 }>, align 4, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_32.1.temp), !dbg !20 +// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc18_32.1.temp, i32 100), !dbg !20 +// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_32.1.temp), !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !21 +// CHECK:STDOUT: store i32 %IntRange.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !21 +// CHECK:STDOUT: br label %for.next, !dbg !21 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %if.else.loc20, %if.then.loc20, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_33.1.temp, ptr %.loc18_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_33.1.temp, ptr %.loc18_32.1.temp, ptr %var), !dbg !21 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !21 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !9 -// CHECK:STDOUT: br i1 %F.call, label %if.then.loc19, label %if.else.loc19, !dbg !10 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !28 +// CHECK:STDOUT: br i1 %F.call, label %if.then.loc19, label %if.else.loc19, !dbg !29 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc19: ; preds = %for.body -// CHECK:STDOUT: br label %for.done, !dbg !11 +// CHECK:STDOUT: br label %for.done, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc19: ; preds = %for.body -// CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !12 -// CHECK:STDOUT: br i1 %G.call, label %if.then.loc20, label %if.else.loc20, !dbg !13 +// CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !31 +// CHECK:STDOUT: br i1 %G.call, label %if.then.loc20, label %if.else.loc20, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc20: ; preds = %if.else.loc19 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !14 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: br label %for.next, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc20: ; preds = %if.else.loc19 -// CHECK:STDOUT: call void @_CH.Main(), !dbg !15 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !16 +// CHECK:STDOUT: call void @_CH.Main(), !dbg !34 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: br label %for.next, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %if.then.loc19, %for.next -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %.loc18_32.1.temp), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc18_33.1.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !21 +// CHECK:STDOUT: call void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %.loc18_32.1.temp), !dbg !20 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CRange.Core(ptr sret({ i32, i32 }), i32) @@ -84,169 +84,169 @@ fn For() { // CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !26 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !33 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.593df19eb3c40d5e:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !50 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !58 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.593df19eb3c40d5e:core.Destroy.Core"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %self) #0 !dbg !66 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !57 { -// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !62 -// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !62 -// CHECK:STDOUT: ret i32 %1, !dbg !63 +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !77 +// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !77 +// CHECK:STDOUT: ret i32 %1, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !64 { -// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !70 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !70 -// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !71 -// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !70 -// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !72 -// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !72 -// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !73 -// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !73 -// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !74 +// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !80 { +// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !87 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !87 +// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !89 +// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !87 +// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !92 +// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !92 +// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !91 +// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !91 +// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !93 // CHECK:STDOUT: // CHECK:STDOUT: 6: ; preds = %0 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !75 -// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !76 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %7), !dbg !77 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !70 -// CHECK:STDOUT: ret void, !dbg !78 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !96 +// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !97 +// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %7), !dbg !98 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !87 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !79 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !70 -// CHECK:STDOUT: ret void, !dbg !80 +// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !100 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !87 +// CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !81 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !87 -// CHECK:STDOUT: ret i1 %1, !dbg !88 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !104 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !110 +// CHECK:STDOUT: ret i1 %1, !dbg !111 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !89 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !92 -// CHECK:STDOUT: ret i32 %1, !dbg !93 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !113 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !119 +// CHECK:STDOUT: ret i32 %1, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CInclusiveRange.Core(ptr sret({ i32, i32 }), i32, i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !94 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !98 -// CHECK:STDOUT: ret void, !dbg !99 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !100 { -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !105 -// CHECK:STDOUT: ret void, !dbg !106 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !107 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !110 -// CHECK:STDOUT: ret void, !dbg !111 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !112 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !115 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !115 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !115 -// CHECK:STDOUT: ret i1 %2, !dbg !116 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !117 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !120 -// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !120 -// CHECK:STDOUT: ret i32 %1, !dbg !121 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !122 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !128 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !129 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !129 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !129 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !123 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !126 // CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !130 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !133 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !133 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !134 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !134 -// CHECK:STDOUT: ret void, !dbg !135 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !131 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !136 +// CHECK:STDOUT: ret void, !dbg !137 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !136 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !137 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !137 -// CHECK:STDOUT: ret void, !dbg !138 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !139 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !142 +// CHECK:STDOUT: ret void, !dbg !143 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !139 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !144 -// CHECK:STDOUT: ret i32 %1, !dbg !145 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !144 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !149 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !149 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !149 +// CHECK:STDOUT: ret i1 %2, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !146 { -// CHECK:STDOUT: ret i32 %self, !dbg !149 +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !152 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !157 +// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !157 +// CHECK:STDOUT: ret i32 %1, !dbg !158 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !160 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !163 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !164 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !164 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !164 +// CHECK:STDOUT: ret void, !dbg !164 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !168 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !177 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !177 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !179 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !179 +// CHECK:STDOUT: ret void, !dbg !180 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !182 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !189 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !189 +// CHECK:STDOUT: ret void, !dbg !190 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !191 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !196 +// CHECK:STDOUT: ret i32 %1, !dbg !198 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !200 { +// CHECK:STDOUT: ret i32 %self, !dbg !206 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -257,157 +257,157 @@ fn For() { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "break_continue.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 18, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 19, column: 9, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 8, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 16, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 20, column: 9, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 20, column: 8, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 20, column: 16, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 21, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 1, scope: !4) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !19, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !18, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 18, column: 39, scope: !18) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !29} -// CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) -// CHECK:STDOUT: !32 = !DILocation(line: 18, column: 7, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !1, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !22) -// CHECK:STDOUT: !36 = !DILocation(line: 18, column: 7, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !29) -// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 7, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !29) -// CHECK:STDOUT: !44 = !DILocation(line: 18, column: 7, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !29) -// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 7, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.593df19eb3c40d5e:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !29) -// CHECK:STDOUT: !52 = !DILocation(line: 18, column: 18, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.58d03c615b8abca5:core.Destroy.Core", scope: null, file: !1, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !29) -// CHECK:STDOUT: !56 = !DILocation(line: 18, column: 18, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !19, line: 19, type: !58, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !60) -// CHECK:STDOUT: !58 = !DISubroutineType(types: !59) -// CHECK:STDOUT: !59 = !{!22, !29} -// CHECK:STDOUT: !60 = !{!61} -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !57, type: !29) -// CHECK:STDOUT: !62 = !DILocation(line: 19, column: 43, scope: !57) -// CHECK:STDOUT: !63 = !DILocation(line: 19, column: 36, scope: !57) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !19, line: 20, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) -// CHECK:STDOUT: !65 = !DISubroutineType(types: !66) -// CHECK:STDOUT: !66 = !{!29, !29, !29} -// CHECK:STDOUT: !67 = !{!68, !69} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !64, type: !29) -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !64, type: !29) -// CHECK:STDOUT: !70 = !DILocation(line: 21, column: 7, scope: !64) -// CHECK:STDOUT: !71 = !DILocation(line: 21, column: 27, scope: !64) -// CHECK:STDOUT: !72 = !DILocation(line: 22, column: 19, scope: !64) -// CHECK:STDOUT: !73 = !DILocation(line: 22, column: 11, scope: !64) -// CHECK:STDOUT: !74 = !DILocation(line: 22, column: 10, scope: !64) -// CHECK:STDOUT: !75 = !DILocation(line: 23, column: 9, scope: !64) -// CHECK:STDOUT: !76 = !DILocation(line: 24, column: 38, scope: !64) -// CHECK:STDOUT: !77 = !DILocation(line: 24, column: 16, scope: !64) -// CHECK:STDOUT: !78 = !DILocation(line: 24, column: 9, scope: !64) -// CHECK:STDOUT: !79 = !DILocation(line: 26, column: 16, scope: !64) -// CHECK:STDOUT: !80 = !DILocation(line: 26, column: 9, scope: !64) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !82, line: 36, type: !83, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !85) -// CHECK:STDOUT: !82 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !83 = !DISubroutineType(types: !84) -// CHECK:STDOUT: !84 = !{!29, !29} -// CHECK:STDOUT: !85 = !{!86} -// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !81, type: !29) -// CHECK:STDOUT: !87 = !DILocation(line: 37, column: 12, scope: !81) -// CHECK:STDOUT: !88 = !DILocation(line: 37, column: 5, scope: !81) -// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !82, line: 39, type: !58, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !90) -// CHECK:STDOUT: !90 = !{!91} -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !89, type: !29) -// CHECK:STDOUT: !92 = !DILocation(line: 40, column: 12, scope: !89) -// CHECK:STDOUT: !93 = !DILocation(line: 40, column: 5, scope: !89) -// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !95, line: 396, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !96) -// CHECK:STDOUT: !95 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !96 = !{!97} -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !94, type: !22) -// CHECK:STDOUT: !98 = !DILocation(line: 398, column: 5, scope: !94) -// CHECK:STDOUT: !99 = !DILocation(line: 396, column: 3, scope: !94) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !82, line: 33, type: !101, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !103) -// CHECK:STDOUT: !101 = !DISubroutineType(types: !102) -// CHECK:STDOUT: !102 = !{!29, !22} -// CHECK:STDOUT: !103 = !{!104} -// CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !100, type: !22) -// CHECK:STDOUT: !105 = !DILocation(line: 34, column: 12, scope: !100) -// CHECK:STDOUT: !106 = !DILocation(line: 34, column: 5, scope: !100) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !82, line: 30, type: !108, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !108 = !DISubroutineType(types: !109) -// CHECK:STDOUT: !109 = !{!29} -// CHECK:STDOUT: !110 = !DILocation(line: 31, column: 12, scope: !107) -// CHECK:STDOUT: !111 = !DILocation(line: 31, column: 5, scope: !107) -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !82, line: 141, type: !83, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !113) -// CHECK:STDOUT: !113 = !{!114} -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !29) -// CHECK:STDOUT: !115 = !DILocation(line: 142, column: 12, scope: !112) -// CHECK:STDOUT: !116 = !DILocation(line: 142, column: 5, scope: !112) -// CHECK:STDOUT: !117 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !82, line: 144, type: !58, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !118) -// CHECK:STDOUT: !118 = !{!119} -// CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !117, type: !29) -// CHECK:STDOUT: !120 = !DILocation(line: 145, column: 12, scope: !117) -// CHECK:STDOUT: !121 = !DILocation(line: 145, column: 5, scope: !117) -// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !95, line: 331, type: !123, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !125) -// CHECK:STDOUT: !123 = !DISubroutineType(types: !124) -// CHECK:STDOUT: !124 = !{null, !22, !22} -// CHECK:STDOUT: !125 = !{!126, !127} -// CHECK:STDOUT: !126 = !DILocalVariable(arg: 1, scope: !122, type: !22) -// CHECK:STDOUT: !127 = !DILocalVariable(arg: 2, scope: !122, type: !22) -// CHECK:STDOUT: !128 = !DILocation(line: 0, scope: !122) -// CHECK:STDOUT: !129 = !DILocation(line: 331, column: 3, scope: !122) -// CHECK:STDOUT: !130 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !82, line: 131, type: !101, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !131) -// CHECK:STDOUT: !131 = !{!132} -// CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !130, type: !22) -// CHECK:STDOUT: !133 = !DILocation(line: 137, column: 5, scope: !130) -// CHECK:STDOUT: !134 = !DILocation(line: 138, column: 5, scope: !130) -// CHECK:STDOUT: !135 = !DILocation(line: 139, column: 5, scope: !130) -// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !82, line: 125, type: !108, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !137 = !DILocation(line: 128, column: 5, scope: !136) -// CHECK:STDOUT: !138 = !DILocation(line: 129, column: 5, scope: !136) -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !95, line: 64, type: !140, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !142) -// CHECK:STDOUT: !140 = !DISubroutineType(types: !141) -// CHECK:STDOUT: !141 = !{!22, !22} -// CHECK:STDOUT: !142 = !{!143} -// CHECK:STDOUT: !143 = !DILocalVariable(arg: 1, scope: !139, type: !22) -// CHECK:STDOUT: !144 = !DILocation(line: 66, column: 17, scope: !139) -// CHECK:STDOUT: !145 = !DILocation(line: 66, column: 5, scope: !139) -// CHECK:STDOUT: !146 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !95, line: 59, type: !140, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !147) -// CHECK:STDOUT: !147 = !{!148} -// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !146, type: !22) -// CHECK:STDOUT: !149 = !DILocation(line: 59, column: 28, scope: !146) +// CHECK:STDOUT: !4 = !DIFile(filename: "break_continue.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{!7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{null} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{!7, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{null, !6} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = !{null, !7} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !4, line: 17, type: !11, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 18, scope: !18) +// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 7, scope: !18) +// CHECK:STDOUT: !22 = !{!6, !7} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!7, !7, !7} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{!7, !7} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 19, column: 9, scope: !18) +// CHECK:STDOUT: !29 = !DILocation(line: 19, column: 8, scope: !18) +// CHECK:STDOUT: !30 = !DILocation(line: 19, column: 16, scope: !18) +// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 9, scope: !18) +// CHECK:STDOUT: !32 = !DILocation(line: 20, column: 8, scope: !18) +// CHECK:STDOUT: !33 = !DILocation(line: 20, column: 16, scope: !18) +// CHECK:STDOUT: !34 = !DILocation(line: 21, column: 5, scope: !18) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 3, scope: !18) +// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 1, scope: !18) +// CHECK:STDOUT: !37 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !37, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !6) +// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 39, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !7) +// CHECK:STDOUT: !44 = !DILocation(line: 18, column: 7, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !6) +// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 7, scope: !46) +// CHECK:STDOUT: !49 = !{!47} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !7) +// CHECK:STDOUT: !52 = !DILocation(line: 18, column: 7, scope: !50) +// CHECK:STDOUT: !53 = !{!51} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !7) +// CHECK:STDOUT: !56 = !DILocation(line: 18, column: 7, scope: !54) +// CHECK:STDOUT: !57 = !{!55} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !61) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !7) +// CHECK:STDOUT: !60 = !DILocation(line: 18, column: 7, scope: !58) +// CHECK:STDOUT: !61 = !{!59} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.593df19eb3c40d5e:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !7) +// CHECK:STDOUT: !64 = !DILocation(line: 18, column: 18, scope: !62) +// CHECK:STDOUT: !65 = !{!63} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Op", linkageName: "_COp.58d03c615b8abca5:core.Destroy.Core", scope: null, file: !4, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !69) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !7) +// CHECK:STDOUT: !68 = !DILocation(line: 18, column: 18, scope: !66) +// CHECK:STDOUT: !69 = !{!67} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !37, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !79) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !7) +// CHECK:STDOUT: !77 = !DILocation(line: 19, column: 43, scope: !72) +// CHECK:STDOUT: !78 = !DILocation(line: 19, column: 36, scope: !72) +// CHECK:STDOUT: !79 = !{!73} +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !37, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !102) +// CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !80, type: !7) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 2, scope: !80, type: !7) +// CHECK:STDOUT: !87 = !DILocation(line: 21, column: 7, scope: !80) +// CHECK:STDOUT: !89 = !DILocation(line: 21, column: 27, scope: !80) +// CHECK:STDOUT: !91 = !DILocation(line: 22, column: 11, scope: !80) +// CHECK:STDOUT: !92 = !DILocation(line: 22, column: 19, scope: !80) +// CHECK:STDOUT: !93 = !DILocation(line: 22, column: 10, scope: !80) +// CHECK:STDOUT: !96 = !DILocation(line: 23, column: 9, scope: !80) +// CHECK:STDOUT: !97 = !DILocation(line: 24, column: 38, scope: !80) +// CHECK:STDOUT: !98 = !DILocation(line: 24, column: 16, scope: !80) +// CHECK:STDOUT: !99 = !DILocation(line: 24, column: 9, scope: !80) +// CHECK:STDOUT: !100 = !DILocation(line: 26, column: 16, scope: !80) +// CHECK:STDOUT: !101 = !DILocation(line: 26, column: 9, scope: !80) +// CHECK:STDOUT: !102 = !{!81, !82} +// CHECK:STDOUT: !103 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !112) +// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !7) +// CHECK:STDOUT: !110 = !DILocation(line: 37, column: 12, scope: !104) +// CHECK:STDOUT: !111 = !DILocation(line: 37, column: 5, scope: !104) +// CHECK:STDOUT: !112 = !{!105} +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 39, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !121) +// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !113, type: !7) +// CHECK:STDOUT: !119 = !DILocation(line: 40, column: 12, scope: !113) +// CHECK:STDOUT: !120 = !DILocation(line: 40, column: 5, scope: !113) +// CHECK:STDOUT: !121 = !{!114} +// CHECK:STDOUT: !122 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !122, line: 396, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !130) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !6) +// CHECK:STDOUT: !126 = !DILocation(line: 398, column: 5, scope: !123) +// CHECK:STDOUT: !127 = !{null, !6, !6} +// CHECK:STDOUT: !128 = !DISubroutineType(types: !127) +// CHECK:STDOUT: !129 = !DILocation(line: 396, column: 3, scope: !123) +// CHECK:STDOUT: !130 = !{!124} +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !138) +// CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !131, type: !6) +// CHECK:STDOUT: !136 = !DILocation(line: 34, column: 12, scope: !131) +// CHECK:STDOUT: !137 = !DILocation(line: 34, column: 5, scope: !131) +// CHECK:STDOUT: !138 = !{!132} +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !103, line: 30, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !142 = !DILocation(line: 31, column: 12, scope: !139) +// CHECK:STDOUT: !143 = !DILocation(line: 31, column: 5, scope: !139) +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 141, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !151) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !7) +// CHECK:STDOUT: !149 = !DILocation(line: 142, column: 12, scope: !144) +// CHECK:STDOUT: !150 = !DILocation(line: 142, column: 5, scope: !144) +// CHECK:STDOUT: !151 = !{!145} +// CHECK:STDOUT: !152 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 144, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !159) +// CHECK:STDOUT: !153 = !DILocalVariable(arg: 1, scope: !152, type: !7) +// CHECK:STDOUT: !157 = !DILocation(line: 145, column: 12, scope: !152) +// CHECK:STDOUT: !158 = !DILocation(line: 145, column: 5, scope: !152) +// CHECK:STDOUT: !159 = !{!153} +// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !122, line: 331, type: !128, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !167) +// CHECK:STDOUT: !161 = !DILocalVariable(arg: 1, scope: !160, type: !6) +// CHECK:STDOUT: !162 = !DILocalVariable(arg: 2, scope: !160, type: !6) +// CHECK:STDOUT: !163 = !DILocation(line: 0, scope: !160) +// CHECK:STDOUT: !164 = !DILocation(line: 331, column: 3, scope: !160) +// CHECK:STDOUT: !165 = !{!6, !6} +// CHECK:STDOUT: !166 = !DISubroutineType(types: !165) +// CHECK:STDOUT: !167 = !{!161, !162} +// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 131, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !181) +// CHECK:STDOUT: !169 = !DILocalVariable(arg: 1, scope: !168, type: !6) +// CHECK:STDOUT: !177 = !DILocation(line: 137, column: 5, scope: !168) +// CHECK:STDOUT: !179 = !DILocation(line: 138, column: 5, scope: !168) +// CHECK:STDOUT: !180 = !DILocation(line: 139, column: 5, scope: !168) +// CHECK:STDOUT: !181 = !{!169} +// CHECK:STDOUT: !182 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !103, line: 125, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !189 = !DILocation(line: 128, column: 5, scope: !182) +// CHECK:STDOUT: !190 = !DILocation(line: 129, column: 5, scope: !182) +// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !122, line: 64, type: !166, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !199) +// CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !6) +// CHECK:STDOUT: !196 = !DILocation(line: 66, column: 17, scope: !191) +// CHECK:STDOUT: !198 = !DILocation(line: 66, column: 5, scope: !191) +// CHECK:STDOUT: !199 = !{!192} +// CHECK:STDOUT: !200 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !122, line: 59, type: !166, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !207) +// CHECK:STDOUT: !201 = !DILocalVariable(arg: 1, scope: !200, type: !6) +// CHECK:STDOUT: !206 = !DILocation(line: 59, column: 28, scope: !200) +// CHECK:STDOUT: !207 = !{!201} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/for/for.carbon b/toolchain/lower/testdata/for/for.carbon index 6baeb27c6824..9de63dbada52 100644 --- a/toolchain/lower/testdata/for/for.carbon +++ b/toolchain/lower/testdata/for/for.carbon @@ -33,37 +33,37 @@ fn For() { // CHECK:STDOUT: declare void @_CH.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFor.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFor.Main() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc19_32.1.temp = alloca { i32, i32 }, align 4, !dbg !7 -// CHECK:STDOUT: %var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %.loc19_33.1.temp = alloca <{ i32, i1 }>, align 4, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(), !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_32.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc19_32.1.temp, i32 100), !dbg !7 -// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_32.1.temp), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 -// CHECK:STDOUT: store i32 %IntRange.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !8 +// CHECK:STDOUT: %.loc19_32.1.temp = alloca { i32, i32 }, align 4, !dbg !19 +// CHECK:STDOUT: %var = alloca i32, align 4, !dbg !20 +// CHECK:STDOUT: %.loc19_33.1.temp = alloca <{ i32, i1 }>, align 4, !dbg !20 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_32.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc19_32.1.temp, i32 100), !dbg !19 +// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_32.1.temp), !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !20 +// CHECK:STDOUT: store i32 %IntRange.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !20 +// CHECK:STDOUT: br label %for.next, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_33.1.temp, ptr %.loc19_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc19_33.1.temp), !dbg !8 -// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_33.1.temp, ptr %.loc19_32.1.temp, ptr %var), !dbg !20 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !20 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc19_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(), !dbg !10 -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !8 -// CHECK:STDOUT: br label %for.next, !dbg !11 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !27 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: br label %for.next, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CH.Main(), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %.loc19_33.1.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var), !dbg !20 +// CHECK:STDOUT: call void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_CH.Main(), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CRange.Core(ptr sret({ i32, i32 }), i32) @@ -71,169 +71,169 @@ fn For() { // CHECK:STDOUT: declare void @"_COp.6f4dee545ed23f91:core.Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.5432973a0cb6f903:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.79101dbcae945290:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.593df19eb3c40d5e:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.593df19eb3c40d5e:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.58d03c615b8abca5:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !53 { -// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !58 -// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !58 -// CHECK:STDOUT: ret i32 %1, !dbg !59 +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !66 { +// CHECK:STDOUT: %start = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !71 +// CHECK:STDOUT: %1 = load i32, ptr %start, align 4, !dbg !71 +// CHECK:STDOUT: ret i32 %1, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !60 { -// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !66 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !66 -// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !67 -// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !66 -// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !68 -// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !68 -// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !69 -// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !69 -// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !70 +// CHECK:STDOUT: define linkonce_odr void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !74 { +// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !81 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !81 +// CHECK:STDOUT: %2 = load i32, ptr %cursor, align 4, !dbg !83 +// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !81 +// CHECK:STDOUT: %end = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !86 +// CHECK:STDOUT: %3 = load i32, ptr %end, align 4, !dbg !86 +// CHECK:STDOUT: %4 = load i32, ptr %1, align 4, !dbg !85 +// CHECK:STDOUT: %5 = icmp slt i32 %4, %3, !dbg !85 +// CHECK:STDOUT: br i1 %5, label %6, label %8, !dbg !87 // CHECK:STDOUT: // CHECK:STDOUT: 6: ; preds = %0 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !71 -// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !72 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %7), !dbg !73 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !66 -// CHECK:STDOUT: ret void, !dbg !74 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !90 +// CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !91 +// CHECK:STDOUT: call void @_CSome.Optional.Core.a5214d4ceffb522b(ptr %return, i32 %7), !dbg !92 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !81 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !75 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !66 -// CHECK:STDOUT: ret void, !dbg !76 +// CHECK:STDOUT: call void @_CNone.Optional.Core.a5214d4ceffb522b(ptr %return), !dbg !94 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !81 +// CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !77 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !83 -// CHECK:STDOUT: ret i1 %1, !dbg !84 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !100 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !106 +// CHECK:STDOUT: ret i1 %1, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !85 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !88 -// CHECK:STDOUT: ret i32 %1, !dbg !89 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a5214d4ceffb522b(ptr %self) #0 !dbg !109 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %self), !dbg !115 +// CHECK:STDOUT: ret i32 %1, !dbg !116 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CInclusiveRange.Core(ptr sret({ i32, i32 }), i32, i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !90 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !94 -// CHECK:STDOUT: ret void, !dbg !95 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !96 { -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !101 -// CHECK:STDOUT: ret void, !dbg !102 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !106 -// CHECK:STDOUT: ret void, !dbg !107 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !108 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !111 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !111 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !111 -// CHECK:STDOUT: ret i1 %2, !dbg !112 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !113 { -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !116 -// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !116 -// CHECK:STDOUT: ret i32 %1, !dbg !117 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !118 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !124 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !125 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !125 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !125 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !119 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !122 // CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !126 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !129 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !129 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !130 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !130 -// CHECK:STDOUT: ret void, !dbg !131 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !127 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return, i32 %value), !dbg !132 +// CHECK:STDOUT: ret void, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !132 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !133 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !133 -// CHECK:STDOUT: ret void, !dbg !134 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a5214d4ceffb522b(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !135 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %return), !dbg !138 +// CHECK:STDOUT: ret void, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !135 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !140 -// CHECK:STDOUT: ret i32 %1, !dbg !141 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !140 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !145 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !145 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !145 +// CHECK:STDOUT: ret i1 %2, !dbg !146 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !142 { -// CHECK:STDOUT: ret i32 %self, !dbg !145 +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr %value) #0 !dbg !148 { +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !153 +// CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !153 +// CHECK:STDOUT: ret i32 %1, !dbg !154 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !156 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !159 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !160 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !160 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !160 +// CHECK:STDOUT: ret void, !dbg !160 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !164 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !173 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !173 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !175 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !175 +// CHECK:STDOUT: ret void, !dbg !176 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !178 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !185 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !185 +// CHECK:STDOUT: ret void, !dbg !186 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !187 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !192 +// CHECK:STDOUT: ret i32 %1, !dbg !194 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !196 { +// CHECK:STDOUT: ret i32 %self, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -244,153 +244,153 @@ fn For() { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "for.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 19, column: 18, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 19, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 20, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !15, line: 18, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !15 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !14, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 39, scope: !14) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !1, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 19, column: 7, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !1, line: 19, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !18) -// CHECK:STDOUT: !32 = !DILocation(line: 19, column: 7, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !1, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !25) -// CHECK:STDOUT: !36 = !DILocation(line: 19, column: 7, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !1, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !25) -// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 7, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !1, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !25) -// CHECK:STDOUT: !44 = !DILocation(line: 19, column: 7, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.593df19eb3c40d5e:core.Destroy.Core", scope: null, file: !1, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !25) -// CHECK:STDOUT: !48 = !DILocation(line: 19, column: 18, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.58d03c615b8abca5:core.Destroy.Core", scope: null, file: !1, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !25) -// CHECK:STDOUT: !52 = !DILocation(line: 19, column: 18, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !15, line: 19, type: !54, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !54 = !DISubroutineType(types: !55) -// CHECK:STDOUT: !55 = !{!18, !25} -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !53, type: !25) -// CHECK:STDOUT: !58 = !DILocation(line: 19, column: 43, scope: !53) -// CHECK:STDOUT: !59 = !DILocation(line: 19, column: 36, scope: !53) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !15, line: 20, type: !61, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !63) -// CHECK:STDOUT: !61 = !DISubroutineType(types: !62) -// CHECK:STDOUT: !62 = !{!25, !25, !25} -// CHECK:STDOUT: !63 = !{!64, !65} -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !60, type: !25) -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 2, scope: !60, type: !25) -// CHECK:STDOUT: !66 = !DILocation(line: 21, column: 7, scope: !60) -// CHECK:STDOUT: !67 = !DILocation(line: 21, column: 27, scope: !60) -// CHECK:STDOUT: !68 = !DILocation(line: 22, column: 19, scope: !60) -// CHECK:STDOUT: !69 = !DILocation(line: 22, column: 11, scope: !60) -// CHECK:STDOUT: !70 = !DILocation(line: 22, column: 10, scope: !60) -// CHECK:STDOUT: !71 = !DILocation(line: 23, column: 9, scope: !60) -// CHECK:STDOUT: !72 = !DILocation(line: 24, column: 38, scope: !60) -// CHECK:STDOUT: !73 = !DILocation(line: 24, column: 16, scope: !60) -// CHECK:STDOUT: !74 = !DILocation(line: 24, column: 9, scope: !60) -// CHECK:STDOUT: !75 = !DILocation(line: 26, column: 16, scope: !60) -// CHECK:STDOUT: !76 = !DILocation(line: 26, column: 9, scope: !60) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !78, line: 36, type: !79, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !81) -// CHECK:STDOUT: !78 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !79 = !DISubroutineType(types: !80) -// CHECK:STDOUT: !80 = !{!25, !25} -// CHECK:STDOUT: !81 = !{!82} -// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !77, type: !25) -// CHECK:STDOUT: !83 = !DILocation(line: 37, column: 12, scope: !77) -// CHECK:STDOUT: !84 = !DILocation(line: 37, column: 5, scope: !77) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !78, line: 39, type: !54, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !86) -// CHECK:STDOUT: !86 = !{!87} -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !25) -// CHECK:STDOUT: !88 = !DILocation(line: 40, column: 12, scope: !85) -// CHECK:STDOUT: !89 = !DILocation(line: 40, column: 5, scope: !85) -// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !91, line: 396, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !92) -// CHECK:STDOUT: !91 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !92 = !{!93} -// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !90, type: !18) -// CHECK:STDOUT: !94 = !DILocation(line: 398, column: 5, scope: !90) -// CHECK:STDOUT: !95 = !DILocation(line: 396, column: 3, scope: !90) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !78, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !99) -// CHECK:STDOUT: !97 = !DISubroutineType(types: !98) -// CHECK:STDOUT: !98 = !{!25, !18} -// CHECK:STDOUT: !99 = !{!100} -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !96, type: !18) -// CHECK:STDOUT: !101 = !DILocation(line: 34, column: 12, scope: !96) -// CHECK:STDOUT: !102 = !DILocation(line: 34, column: 5, scope: !96) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !78, line: 30, type: !104, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !104 = !DISubroutineType(types: !105) -// CHECK:STDOUT: !105 = !{!25} -// CHECK:STDOUT: !106 = !DILocation(line: 31, column: 12, scope: !103) -// CHECK:STDOUT: !107 = !DILocation(line: 31, column: 5, scope: !103) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !78, line: 141, type: !79, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !109) -// CHECK:STDOUT: !109 = !{!110} -// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !108, type: !25) -// CHECK:STDOUT: !111 = !DILocation(line: 142, column: 12, scope: !108) -// CHECK:STDOUT: !112 = !DILocation(line: 142, column: 5, scope: !108) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !78, line: 144, type: !54, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !114) -// CHECK:STDOUT: !114 = !{!115} -// CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !113, type: !25) -// CHECK:STDOUT: !116 = !DILocation(line: 145, column: 12, scope: !113) -// CHECK:STDOUT: !117 = !DILocation(line: 145, column: 5, scope: !113) -// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !91, line: 331, type: !119, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !121) -// CHECK:STDOUT: !119 = !DISubroutineType(types: !120) -// CHECK:STDOUT: !120 = !{null, !18, !18} -// CHECK:STDOUT: !121 = !{!122, !123} -// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !118, type: !18) -// CHECK:STDOUT: !123 = !DILocalVariable(arg: 2, scope: !118, type: !18) -// CHECK:STDOUT: !124 = !DILocation(line: 0, scope: !118) -// CHECK:STDOUT: !125 = !DILocation(line: 331, column: 3, scope: !118) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !78, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !127) -// CHECK:STDOUT: !127 = !{!128} -// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !126, type: !18) -// CHECK:STDOUT: !129 = !DILocation(line: 137, column: 5, scope: !126) -// CHECK:STDOUT: !130 = !DILocation(line: 138, column: 5, scope: !126) -// CHECK:STDOUT: !131 = !DILocation(line: 139, column: 5, scope: !126) -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !78, line: 125, type: !104, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !133 = !DILocation(line: 128, column: 5, scope: !132) -// CHECK:STDOUT: !134 = !DILocation(line: 129, column: 5, scope: !132) -// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !91, line: 64, type: !136, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !138) -// CHECK:STDOUT: !136 = !DISubroutineType(types: !137) -// CHECK:STDOUT: !137 = !{!18, !18} -// CHECK:STDOUT: !138 = !{!139} -// CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !135, type: !18) -// CHECK:STDOUT: !140 = !DILocation(line: 66, column: 17, scope: !135) -// CHECK:STDOUT: !141 = !DILocation(line: 66, column: 5, scope: !135) -// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !91, line: 59, type: !136, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !143) -// CHECK:STDOUT: !143 = !{!144} -// CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !142, type: !18) -// CHECK:STDOUT: !145 = !DILocation(line: 59, column: 28, scope: !142) +// CHECK:STDOUT: !4 = !DIFile(filename: "for.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{!9, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{null, !9} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 3, scope: !16) +// CHECK:STDOUT: !19 = !DILocation(line: 19, column: 18, scope: !16) +// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 7, scope: !16) +// CHECK:STDOUT: !21 = !{!6, !9} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{!9, !9, !9} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !{!9, !9} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 20, column: 5, scope: !16) +// CHECK:STDOUT: !28 = !DILocation(line: 19, column: 3, scope: !16) +// CHECK:STDOUT: !29 = !DILocation(line: 22, column: 3, scope: !16) +// CHECK:STDOUT: !30 = !DILocation(line: 17, column: 1, scope: !16) +// CHECK:STDOUT: !31 = !DIFile(filename: "{{.*}}/prelude/range.carbon", directory: "") +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !31, line: 18, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !6) +// CHECK:STDOUT: !34 = !DILocation(line: 18, column: 39, scope: !32) +// CHECK:STDOUT: !35 = !{!33} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !39) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !9) +// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 7, scope: !36) +// CHECK:STDOUT: !39 = !{!37} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 19, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !6) +// CHECK:STDOUT: !42 = !DILocation(line: 19, column: 7, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !9) +// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 7, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5432973a0cb6f903:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !9) +// CHECK:STDOUT: !50 = !DILocation(line: 19, column: 7, scope: !48) +// CHECK:STDOUT: !51 = !{!49} +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.79101dbcae945290:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !9) +// CHECK:STDOUT: !54 = !DILocation(line: 19, column: 7, scope: !52) +// CHECK:STDOUT: !55 = !{!53} +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.593df19eb3c40d5e:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !59) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !9) +// CHECK:STDOUT: !58 = !DILocation(line: 19, column: 18, scope: !56) +// CHECK:STDOUT: !59 = !{!57} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.58d03c615b8abca5:core.Destroy.Core", scope: null, file: !4, line: 19, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !9) +// CHECK:STDOUT: !62 = !DILocation(line: 19, column: 18, scope: !60) +// CHECK:STDOUT: !63 = !{!61} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !31, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !9) +// CHECK:STDOUT: !71 = !DILocation(line: 19, column: 43, scope: !66) +// CHECK:STDOUT: !72 = !DILocation(line: 19, column: 36, scope: !66) +// CHECK:STDOUT: !73 = !{!67} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !31, line: 20, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !98) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !9) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !74, type: !9) +// CHECK:STDOUT: !81 = !DILocation(line: 21, column: 7, scope: !74) +// CHECK:STDOUT: !83 = !DILocation(line: 21, column: 27, scope: !74) +// CHECK:STDOUT: !85 = !DILocation(line: 22, column: 11, scope: !74) +// CHECK:STDOUT: !86 = !DILocation(line: 22, column: 19, scope: !74) +// CHECK:STDOUT: !87 = !DILocation(line: 22, column: 10, scope: !74) +// CHECK:STDOUT: !90 = !DILocation(line: 23, column: 9, scope: !74) +// CHECK:STDOUT: !91 = !DILocation(line: 24, column: 38, scope: !74) +// CHECK:STDOUT: !92 = !DILocation(line: 24, column: 16, scope: !74) +// CHECK:STDOUT: !93 = !DILocation(line: 24, column: 9, scope: !74) +// CHECK:STDOUT: !94 = !DILocation(line: 26, column: 16, scope: !74) +// CHECK:STDOUT: !95 = !{!9} +// CHECK:STDOUT: !96 = !DISubroutineType(types: !95) +// CHECK:STDOUT: !97 = !DILocation(line: 26, column: 9, scope: !74) +// CHECK:STDOUT: !98 = !{!75, !76} +// CHECK:STDOUT: !99 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 36, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !108) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !9) +// CHECK:STDOUT: !106 = !DILocation(line: 37, column: 12, scope: !100) +// CHECK:STDOUT: !107 = !DILocation(line: 37, column: 5, scope: !100) +// CHECK:STDOUT: !108 = !{!101} +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 39, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !117) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !9) +// CHECK:STDOUT: !115 = !DILocation(line: 40, column: 12, scope: !109) +// CHECK:STDOUT: !116 = !DILocation(line: 40, column: 5, scope: !109) +// CHECK:STDOUT: !117 = !{!110} +// CHECK:STDOUT: !118 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !118, line: 396, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !126) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !6) +// CHECK:STDOUT: !122 = !DILocation(line: 398, column: 5, scope: !119) +// CHECK:STDOUT: !123 = !{null, !6, !6} +// CHECK:STDOUT: !124 = !DISubroutineType(types: !123) +// CHECK:STDOUT: !125 = !DILocation(line: 396, column: 3, scope: !119) +// CHECK:STDOUT: !126 = !{!120} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 33, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !134) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !6) +// CHECK:STDOUT: !132 = !DILocation(line: 34, column: 12, scope: !127) +// CHECK:STDOUT: !133 = !DILocation(line: 34, column: 5, scope: !127) +// CHECK:STDOUT: !134 = !{!128} +// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a5214d4ceffb522b", scope: null, file: !99, line: 30, type: !96, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !138 = !DILocation(line: 31, column: 12, scope: !135) +// CHECK:STDOUT: !139 = !DILocation(line: 31, column: 5, scope: !135) +// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 141, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !147) +// CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !140, type: !9) +// CHECK:STDOUT: !145 = !DILocation(line: 142, column: 12, scope: !140) +// CHECK:STDOUT: !146 = !DILocation(line: 142, column: 5, scope: !140) +// CHECK:STDOUT: !147 = !{!141} +// CHECK:STDOUT: !148 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 144, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !155) +// CHECK:STDOUT: !149 = !DILocalVariable(arg: 1, scope: !148, type: !9) +// CHECK:STDOUT: !153 = !DILocation(line: 145, column: 12, scope: !148) +// CHECK:STDOUT: !154 = !DILocation(line: 145, column: 5, scope: !148) +// CHECK:STDOUT: !155 = !{!149} +// CHECK:STDOUT: !156 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !118, line: 331, type: !124, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !163) +// CHECK:STDOUT: !157 = !DILocalVariable(arg: 1, scope: !156, type: !6) +// CHECK:STDOUT: !158 = !DILocalVariable(arg: 2, scope: !156, type: !6) +// CHECK:STDOUT: !159 = !DILocation(line: 0, scope: !156) +// CHECK:STDOUT: !160 = !DILocation(line: 331, column: 3, scope: !156) +// CHECK:STDOUT: !161 = !{!6, !6} +// CHECK:STDOUT: !162 = !DISubroutineType(types: !161) +// CHECK:STDOUT: !163 = !{!157, !158} +// CHECK:STDOUT: !164 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 131, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !177) +// CHECK:STDOUT: !165 = !DILocalVariable(arg: 1, scope: !164, type: !6) +// CHECK:STDOUT: !173 = !DILocation(line: 137, column: 5, scope: !164) +// CHECK:STDOUT: !175 = !DILocation(line: 138, column: 5, scope: !164) +// CHECK:STDOUT: !176 = !DILocation(line: 139, column: 5, scope: !164) +// CHECK:STDOUT: !177 = !{!165} +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.553a1f59d1dd8381", scope: null, file: !99, line: 125, type: !96, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !185 = !DILocation(line: 128, column: 5, scope: !178) +// CHECK:STDOUT: !186 = !DILocation(line: 129, column: 5, scope: !178) +// CHECK:STDOUT: !187 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !118, line: 64, type: !162, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !195) +// CHECK:STDOUT: !188 = !DILocalVariable(arg: 1, scope: !187, type: !6) +// CHECK:STDOUT: !192 = !DILocation(line: 66, column: 17, scope: !187) +// CHECK:STDOUT: !194 = !DILocation(line: 66, column: 5, scope: !187) +// CHECK:STDOUT: !195 = !{!188} +// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !118, line: 59, type: !162, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !203) +// CHECK:STDOUT: !197 = !DILocalVariable(arg: 1, scope: !196, type: !6) +// CHECK:STDOUT: !202 = !DILocation(line: 59, column: 28, scope: !196) +// CHECK:STDOUT: !203 = !{!197} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/empty_struct.carbon b/toolchain/lower/testdata/function/call/empty_struct.carbon index 544301f580b3..c86e3ed39622 100644 --- a/toolchain/lower/testdata/function/call/empty_struct.carbon +++ b/toolchain/lower/testdata/function/call/empty_struct.carbon @@ -23,18 +23,18 @@ fn Main() { // CHECK:STDOUT: source_filename = "empty_struct.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CEcho.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CEcho.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @_CEcho.Main(), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !24 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !24 +// CHECK:STDOUT: call void @_CEcho.Main(), !dbg !25 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -43,19 +43,19 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty_struct.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 18, column: 15, scope: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 1, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "empty_struct.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !22 = !DILocation(line: 14, column: 3, scope: !18) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 17, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 3, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 18, column: 15, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 17, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/empty_tuple.carbon b/toolchain/lower/testdata/function/call/empty_tuple.carbon index aaf25a66453d..112c272673ad 100644 --- a/toolchain/lower/testdata/function/call/empty_tuple.carbon +++ b/toolchain/lower/testdata/function/call/empty_tuple.carbon @@ -23,18 +23,18 @@ fn Main() { // CHECK:STDOUT: source_filename = "empty_tuple.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CEcho.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CEcho.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @_CEcho.Main(), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !25 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !25 +// CHECK:STDOUT: call void @_CEcho.Main(), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -43,19 +43,19 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty_tuple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 18, column: 15, scope: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 1, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "empty_tuple.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !23 = !DILocation(line: 14, column: 3, scope: !18) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 17, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !25 = !DILocation(line: 18, column: 3, scope: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 18, column: 15, scope: !24) +// CHECK:STDOUT: !28 = !DILocation(line: 17, column: 1, scope: !24) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/form.carbon b/toolchain/lower/testdata/function/call/form.carbon index 02c98453c0ce..5376e7f975cc 100644 --- a/toolchain/lower/testdata/function/call/form.carbon +++ b/toolchain/lower/testdata/function/call/form.carbon @@ -72,20 +72,20 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %y.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %y.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @_CF.Main(ptr %y.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %y.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %y.var = alloca i32, align 4, !dbg !26 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !26 +// CHECK:STDOUT: store i32 0, ptr %y.var, align 4, !dbg !26 +// CHECK:STDOUT: call void @_CF.Main(ptr %y.var), !dbg !30 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %y.var), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -94,26 +94,26 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "ref_form_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 3, scope: !10) +// CHECK:STDOUT: !18 = !DIFile(filename: "ref_form_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 6, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 7, column: 3, scope: !25) +// CHECK:STDOUT: !31 = !DILocation(line: 5, column: 1, scope: !25) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 6, column: 3, scope: !32) +// CHECK:STDOUT: !35 = !{!33} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'var_form_param.carbon' @@ -122,20 +122,20 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @_CF.Main(ptr %x.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !39 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !39 +// CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !39 +// CHECK:STDOUT: call void @_CF.Main(ptr %x.var), !dbg !40 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !39 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -144,26 +144,26 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!37} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_form_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 3, column: 6, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 3, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 3, column: 6, scope: !10) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !36 = !DIFile(filename: "var_form_param.carbon", directory: "") +// CHECK:STDOUT: !37 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !36, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !36, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !39 = !DILocation(line: 3, column: 6, scope: !38) +// CHECK:STDOUT: !40 = !DILocation(line: 6, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !DILocation(line: 5, column: 1, scope: !38) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !36, line: 3, type: !22, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !20) +// CHECK:STDOUT: !44 = !DILocation(line: 3, column: 6, scope: !42) +// CHECK:STDOUT: !45 = !{!43} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'val_form_param.carbon' @@ -172,26 +172,26 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(i32 0), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CF.Main(i32 0), !dbg !49 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!47} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "val_form_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 1, scope: !4) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !46 = !DIFile(filename: "val_form_param.carbon", directory: "") +// CHECK:STDOUT: !47 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !46, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !46, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !47) +// CHECK:STDOUT: !49 = !DILocation(line: 6, column: 3, scope: !48) +// CHECK:STDOUT: !50 = !DILocation(line: 5, column: 1, scope: !48) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'ref_return_form.carbon' @@ -200,26 +200,26 @@ fn G() { // CHECK:STDOUT: declare ptr @_CF.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call ptr @_CF.Main(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main(), !dbg !57 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!52} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "ref_return_form.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 27, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 1, scope: !4) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !51 = !DIFile(filename: "ref_return_form.carbon", directory: "") +// CHECK:STDOUT: !52 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !51, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !51, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !57 = !DILocation(line: 6, column: 27, scope: !56) +// CHECK:STDOUT: !60 = !DILocation(line: 5, column: 1, scope: !56) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'var_return_form.carbon' @@ -228,20 +228,20 @@ fn G() { // CHECK:STDOUT: declare i32 @_CF.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !7 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !8 -// CHECK:STDOUT: store i32 %F.call, ptr %x.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !66 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !66 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !67 +// CHECK:STDOUT: store i32 %F.call, ptr %x.var, align 4, !dbg !66 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !66 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -250,26 +250,26 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!62} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_return_form.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 14, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 27, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 14, scope: !10) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !61 = !DIFile(filename: "var_return_form.carbon", directory: "") +// CHECK:STDOUT: !62 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !61, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !61, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !62) +// CHECK:STDOUT: !66 = !DILocation(line: 6, column: 14, scope: !65) +// CHECK:STDOUT: !67 = !DILocation(line: 6, column: 27, scope: !65) +// CHECK:STDOUT: !70 = !DILocation(line: 5, column: 1, scope: !65) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !61, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !62, retainedNodes: !74) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !20) +// CHECK:STDOUT: !73 = !DILocation(line: 6, column: 14, scope: !71) +// CHECK:STDOUT: !74 = !{!72} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'val_return_form.carbon' @@ -278,24 +278,24 @@ fn G() { // CHECK:STDOUT: declare i32 @_CF.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !78 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!76} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "val_return_form.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 23, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 1, scope: !4) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !75 = !DIFile(filename: "val_return_form.carbon", directory: "") +// CHECK:STDOUT: !76 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !75, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !75, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !76) +// CHECK:STDOUT: !78 = !DILocation(line: 6, column: 23, scope: !77) +// CHECK:STDOUT: !81 = !DILocation(line: 5, column: 1, scope: !77) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/i32.carbon b/toolchain/lower/testdata/function/call/i32.carbon index bc2c80892306..5c78c60aea03 100644 --- a/toolchain/lower/testdata/function/call/i32.carbon +++ b/toolchain/lower/testdata/function/call/i32.carbon @@ -23,26 +23,26 @@ fn Main() { // CHECK:STDOUT: source_filename = "i32.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CEcho.Main(i32 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CEcho.Main(i32 %a) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !10 +// CHECK:STDOUT: ret i32 %a, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: %Echo.call = call i32 @_CEcho.Main(i32 1), !dbg !15 -// CHECK:STDOUT: store i32 %Echo.call, ptr %_.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !36 +// CHECK:STDOUT: %Echo.call = call i32 @_CEcho.Main(i32 1), !dbg !37 +// CHECK:STDOUT: store i32 %Echo.call, ptr %_.var, align 4, !dbg !36 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -51,30 +51,30 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "i32.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 17, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 18, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 18, column: 16, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !7} -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 18, column: 3, scope: !17) +// CHECK:STDOUT: !18 = !DIFile(filename: "i32.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !{null, !20} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !34) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !20) +// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !27) +// CHECK:STDOUT: !34 = !{!28} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !36 = !DILocation(line: 18, column: 3, scope: !35) +// CHECK:STDOUT: !37 = !DILocation(line: 18, column: 16, scope: !35) +// CHECK:STDOUT: !39 = !DILocation(line: 17, column: 1, scope: !35) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !26, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) +// CHECK:STDOUT: !42 = !DILocation(line: 18, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/implicit_empty_tuple_as_arg.carbon b/toolchain/lower/testdata/function/call/implicit_empty_tuple_as_arg.carbon index 8b5f115218c5..42f3308b4539 100644 --- a/toolchain/lower/testdata/function/call/implicit_empty_tuple_as_arg.carbon +++ b/toolchain/lower/testdata/function/call/implicit_empty_tuple_as_arg.carbon @@ -24,27 +24,27 @@ fn Main() { // CHECK:STDOUT: source_filename = "implicit_empty_tuple_as_arg.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBar.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CBar.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !10 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: %.loc19_23.1.temp = alloca {}, align 1, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !11 -// CHECK:STDOUT: call void @_CFoo.Main(), !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_23.1.temp), !dbg !12 -// CHECK:STDOUT: call void @_CBar.Main(), !dbg !13 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !27 +// CHECK:STDOUT: %.loc19_23.1.temp = alloca {}, align 1, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !27 +// CHECK:STDOUT: call void @_CFoo.Main(), !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_23.1.temp), !dbg !28 +// CHECK:STDOUT: call void @_CBar.Main(), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -56,22 +56,22 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "implicit_empty_tuple_as_arg.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Bar", linkageName: "_CBar.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 23, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 3, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 19, column: 19, scope: !10) -// CHECK:STDOUT: !13 = !DILocation(line: 19, column: 15, scope: !10) -// CHECK:STDOUT: !14 = !DILocation(line: 18, column: 1, scope: !10) +// CHECK:STDOUT: !14 = !DIFile(filename: "implicit_empty_tuple_as_arg.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !14, line: 14, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 1, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Bar", linkageName: "_CBar.Main", scope: null, file: !14, line: 16, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !25 = !DILocation(line: 16, column: 23, scope: !20) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !27 = !DILocation(line: 19, column: 3, scope: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 19, column: 19, scope: !26) +// CHECK:STDOUT: !29 = !DILocation(line: 19, column: 15, scope: !26) +// CHECK:STDOUT: !31 = !DILocation(line: 18, column: 1, scope: !26) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/params_one.carbon b/toolchain/lower/testdata/function/call/params_one.carbon index 0f26ecedfedc..d408e2608992 100644 --- a/toolchain/lower/testdata/function/call/params_one.carbon +++ b/toolchain/lower/testdata/function/call/params_one.carbon @@ -21,37 +21,37 @@ fn Main() { // CHECK:STDOUT: source_filename = "params_one.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main(i32 %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main(i32 %_) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CFoo.Main(i32 1), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: call void @_CFoo.Main(i32 1), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_one.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 15, column: 1, scope: !11) +// CHECK:STDOUT: !18 = !DIFile(filename: "params_one.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !29) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !29 = !{!26} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 1, scope: !30) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/params_one_comma.carbon b/toolchain/lower/testdata/function/call/params_one_comma.carbon index 714aa3de8b29..e2472782b17d 100644 --- a/toolchain/lower/testdata/function/call/params_one_comma.carbon +++ b/toolchain/lower/testdata/function/call/params_one_comma.carbon @@ -22,39 +22,39 @@ fn Main() { // CHECK:STDOUT: source_filename = "params_one_comma.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main(i32 %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main(i32 %_) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CFoo.Main(i32 1), !dbg !14 -// CHECK:STDOUT: call void @_CFoo.Main(i32 1), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_CFoo.Main(i32 1), !dbg !31 +// CHECK:STDOUT: call void @_CFoo.Main(i32 1), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_one_comma.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !11) +// CHECK:STDOUT: !18 = !DIFile(filename: "params_one_comma.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !29) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !29 = !{!26} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 17, column: 3, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 15, column: 1, scope: !30) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/params_two.carbon b/toolchain/lower/testdata/function/call/params_two.carbon index 63254ac381f2..48b756576a11 100644 --- a/toolchain/lower/testdata/function/call/params_two.carbon +++ b/toolchain/lower/testdata/function/call/params_two.carbon @@ -21,38 +21,38 @@ fn Main() { // CHECK:STDOUT: source_filename = "params_two.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main(i32 %_, i32 %_1) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main(i32 %_, i32 %_1) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CFoo.Main(i32 1, i32 2), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_CFoo.Main(i32 1, i32 2), !dbg !33 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_two.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !12) +// CHECK:STDOUT: !18 = !DIFile(filename: "params_two.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 2, scope: !25, type: !20) +// CHECK:STDOUT: !30 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !31 = !{!26, !27} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 3, scope: !32) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 1, scope: !32) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/params_two_comma.carbon b/toolchain/lower/testdata/function/call/params_two_comma.carbon index aa7de53c9815..cf754a025784 100644 --- a/toolchain/lower/testdata/function/call/params_two_comma.carbon +++ b/toolchain/lower/testdata/function/call/params_two_comma.carbon @@ -22,40 +22,40 @@ fn Main() { // CHECK:STDOUT: source_filename = "params_two_comma.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main(i32 %_, i32 %_1) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main(i32 %_, i32 %_1) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CFoo.Main(i32 1, i32 2), !dbg !15 -// CHECK:STDOUT: call void @_CFoo.Main(i32 1, i32 2), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @_CFoo.Main(i32 1, i32 2), !dbg !33 +// CHECK:STDOUT: call void @_CFoo.Main(i32 1, i32 2), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_two_comma.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 15, column: 1, scope: !12) +// CHECK:STDOUT: !18 = !DIFile(filename: "params_two_comma.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 2, scope: !25, type: !20) +// CHECK:STDOUT: !30 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !31 = !{!26, !27} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 3, scope: !32) +// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !32) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !32) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/params_zero.carbon b/toolchain/lower/testdata/function/call/params_zero.carbon index 8203252dee87..dd2abfb51de8 100644 --- a/toolchain/lower/testdata/function/call/params_zero.carbon +++ b/toolchain/lower/testdata/function/call/params_zero.carbon @@ -21,32 +21,32 @@ fn Main() { // CHECK:STDOUT: source_filename = "params_zero.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CFoo.Main(), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @_CFoo.Main(), !dbg !21 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_zero.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 3, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 1, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "params_zero.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 13, column: 1, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 15, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 16, column: 3, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 1, scope: !20) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/ref_param.carbon b/toolchain/lower/testdata/function/call/ref_param.carbon index 039deff0e83a..3b96a91294ff 100644 --- a/toolchain/lower/testdata/function/call/ref_param.carbon +++ b/toolchain/lower/testdata/function/call/ref_param.carbon @@ -22,26 +22,26 @@ fn Main() { // CHECK:STDOUT: source_filename = "ref_param.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDoNothing.Main(ptr %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CDoNothing.Main(ptr %_) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !14 -// CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @_CDoNothing.Main(ptr %a.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !31 +// CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !31 +// CHECK:STDOUT: call void @_CDoNothing.Main(ptr %a.var), !dbg !35 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -50,28 +50,28 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "ref_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "DoNothing", linkageName: "_CDoNothing.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 16, column: 3, scope: !17) +// CHECK:STDOUT: !18 = !DIFile(filename: "ref_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "DoNothing", linkageName: "_CDoNothing.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !29) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !29 = !{!26} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 17, column: 3, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/ref_return.carbon b/toolchain/lower/testdata/function/call/ref_return.carbon index c655ce697986..0df657b46e7f 100644 --- a/toolchain/lower/testdata/function/call/ref_return.carbon +++ b/toolchain/lower/testdata/function/call/ref_return.carbon @@ -24,27 +24,27 @@ fn Main() { // CHECK:STDOUT: source_filename = "ref_return.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CEcho.Main(ptr %x) #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CEcho.Main(ptr %x) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %x, !dbg !11 +// CHECK:STDOUT: ret ptr %x, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !15 -// CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !15 -// CHECK:STDOUT: %Echo.call = call ptr @_CEcho.Main(ptr %a.var), !dbg !16 -// CHECK:STDOUT: store i32 1, ptr %Echo.call, align 4, !dbg !16 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !37 +// CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !37 +// CHECK:STDOUT: %Echo.call = call ptr @_CEcho.Main(ptr %a.var), !dbg !41 +// CHECK:STDOUT: store i32 1, ptr %Echo.call, align 4, !dbg !41 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !37 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -53,31 +53,31 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "ref_return.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 1, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !8} -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !8) -// CHECK:STDOUT: !23 = !DILocation(line: 18, column: 3, scope: !18) +// CHECK:STDOUT: !18 = !DIFile(filename: "ref_return.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !20} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !{!29} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 17, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !37 = !DILocation(line: 18, column: 3, scope: !36) +// CHECK:STDOUT: !41 = !DILocation(line: 19, column: 3, scope: !36) +// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 1, scope: !36) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !46) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !20) +// CHECK:STDOUT: !45 = !DILocation(line: 18, column: 3, scope: !43) +// CHECK:STDOUT: !46 = !{!44} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/return_implicit.carbon b/toolchain/lower/testdata/function/call/return_implicit.carbon index 3f0a2aeb6dbb..e6063c85a4f8 100644 --- a/toolchain/lower/testdata/function/call/return_implicit.carbon +++ b/toolchain/lower/testdata/function/call/return_implicit.carbon @@ -23,18 +23,18 @@ fn Main() { // CHECK:STDOUT: source_filename = "return_implicit.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMakeImplicitEmptyTuple.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMakeImplicitEmptyTuple.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @_CMakeImplicitEmptyTuple.Main(), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !21 +// CHECK:STDOUT: call void @_CMakeImplicitEmptyTuple.Main(), !dbg !22 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -43,19 +43,19 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_implicit.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "MakeImplicitEmptyTuple", linkageName: "_CMakeImplicitEmptyTuple.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 18, column: 15, scope: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 1, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "return_implicit.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "MakeImplicitEmptyTuple", linkageName: "_CMakeImplicitEmptyTuple.Main", scope: null, file: !14, line: 14, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 1, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 17, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 3, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 18, column: 15, scope: !20) +// CHECK:STDOUT: !24 = !DILocation(line: 17, column: 1, scope: !20) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/struct_param.carbon b/toolchain/lower/testdata/function/call/struct_param.carbon index a9ba068407e5..c166704a2323 100644 --- a/toolchain/lower/testdata/function/call/struct_param.carbon +++ b/toolchain/lower/testdata/function/call/struct_param.carbon @@ -23,38 +23,38 @@ fn Main() { // CHECK:STDOUT: @struct.e3f.loc16_34.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main({ i32 } %_, ptr %_1) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main({ i32 } %_, ptr %_1) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @struct.e3f.loc16_34.6), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @struct.e3f.loc16_34.6), !dbg !35 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "struct_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !12) +// CHECK:STDOUT: !18 = !DIFile(filename: "struct_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !26, type: !21) +// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 1, scope: !26) +// CHECK:STDOUT: !33 = !{!27, !28} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !35 = !DILocation(line: 16, column: 3, scope: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !34) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/tuple_param.carbon b/toolchain/lower/testdata/function/call/tuple_param.carbon index ded49ae78762..43bd30f7daa1 100644 --- a/toolchain/lower/testdata/function/call/tuple_param.carbon +++ b/toolchain/lower/testdata/function/call/tuple_param.carbon @@ -23,38 +23,38 @@ fn Main() { // CHECK:STDOUT: @tuple.97c.loc16_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main({ i32 } %_, ptr %_1) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main({ i32 } %_, ptr %_1) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @tuple.97c.loc16_20.6), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @tuple.97c.loc16_20.6), !dbg !35 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "tuple_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !12) +// CHECK:STDOUT: !18 = !DIFile(filename: "tuple_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !26, type: !21) +// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 1, scope: !26) +// CHECK:STDOUT: !33 = !{!27, !28} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !35 = !DILocation(line: 16, column: 3, scope: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !34) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon b/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon index 967c130c4010..d019c21ddd70 100644 --- a/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon +++ b/toolchain/lower/testdata/function/call/tuple_param_with_return_slot.carbon @@ -25,42 +25,42 @@ fn Main() { // CHECK:STDOUT: @tuple.97c.loc18_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return, { i32 } %b, ptr %c) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return, { i32 } %b, ptr %c) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.loc14_12.tuple.elem = extractvalue { i32 } %b, 0, !dbg !11 -// CHECK:STDOUT: %tuple.elem0.loc14_17.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %c, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %tuple.elem0.loc14_17.tuple.elem.load = load i32, ptr %tuple.elem0.loc14_17.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: %tuple.elem1.loc14_22.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %c, i32 0, i32 1, !dbg !13 -// CHECK:STDOUT: %tuple.elem1.loc14_22.tuple.elem.load = load i32, ptr %tuple.elem1.loc14_22.tuple.elem, align 4, !dbg !13 -// CHECK:STDOUT: %tuple.elem0.loc14_24.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !14 -// CHECK:STDOUT: store i32 %tuple.elem0.loc14_12.tuple.elem, ptr %tuple.elem0.loc14_24.tuple.elem, align 4, !dbg !14 -// CHECK:STDOUT: %tuple.elem1.loc14_24.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !14 -// CHECK:STDOUT: store i32 %tuple.elem0.loc14_17.tuple.elem.load, ptr %tuple.elem1.loc14_24.tuple.elem, align 4, !dbg !14 -// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !14 -// CHECK:STDOUT: store i32 %tuple.elem1.loc14_22.tuple.elem.load, ptr %tuple.elem2.tuple.elem, align 4, !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: %tuple.elem0.loc14_12.tuple.elem = extractvalue { i32 } %b, 0, !dbg !38 +// CHECK:STDOUT: %tuple.elem0.loc14_17.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %c, i32 0, i32 0, !dbg !39 +// CHECK:STDOUT: %tuple.elem0.loc14_17.tuple.elem.load = load i32, ptr %tuple.elem0.loc14_17.tuple.elem, align 4, !dbg !39 +// CHECK:STDOUT: %tuple.elem1.loc14_22.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %c, i32 0, i32 1, !dbg !40 +// CHECK:STDOUT: %tuple.elem1.loc14_22.tuple.elem.load = load i32, ptr %tuple.elem1.loc14_22.tuple.elem, align 4, !dbg !40 +// CHECK:STDOUT: %tuple.elem0.loc14_24.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !41 +// CHECK:STDOUT: store i32 %tuple.elem0.loc14_12.tuple.elem, ptr %tuple.elem0.loc14_24.tuple.elem, align 4, !dbg !41 +// CHECK:STDOUT: %tuple.elem1.loc14_24.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !41 +// CHECK:STDOUT: store i32 %tuple.elem0.loc14_17.tuple.elem.load, ptr %tuple.elem1.loc14_24.tuple.elem, align 4, !dbg !41 +// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !41 +// CHECK:STDOUT: store i32 %tuple.elem1.loc14_22.tuple.elem.load, ptr %tuple.elem2.tuple.elem, align 4, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !16 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_21.1.temp = alloca { i32, i32, i32 }, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_21.1.temp), !dbg !19 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc18_21.1.temp, { i32 } { i32 1 }, ptr @tuple.97c.loc18_20.6), !dbg !19 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %.loc18_21.1.temp), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %.loc18_21.1.temp = alloca { i32, i32, i32 }, align 4, !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_21.1.temp), !dbg !45 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc18_21.1.temp, { i32 } { i32 1 }, ptr @tuple.97c.loc18_20.6), !dbg !45 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %.loc18_21.1.temp), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -69,41 +69,41 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "tuple_param_with_return_slot.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 11, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 16, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 14, column: 21, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 17, type: !17, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null} -// CHECK:STDOUT: !19 = !DILocation(line: 18, column: 3, scope: !16) -// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 1, scope: !16) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !24} -// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 18, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !7} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !7) -// CHECK:STDOUT: !33 = !DILocation(line: 18, column: 3, scope: !28) +// CHECK:STDOUT: !18 = !DIFile(filename: "tuple_param_with_return_slot.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !21) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 2, scope: !30, type: !21) +// CHECK:STDOUT: !38 = !DILocation(line: 14, column: 11, scope: !30) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 16, scope: !30) +// CHECK:STDOUT: !40 = !DILocation(line: 14, column: 21, scope: !30) +// CHECK:STDOUT: !41 = !DILocation(line: 14, column: 10, scope: !30) +// CHECK:STDOUT: !42 = !DILocation(line: 14, column: 3, scope: !30) +// CHECK:STDOUT: !43 = !{!31, !32} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 17, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !45 = !DILocation(line: 18, column: 3, scope: !44) +// CHECK:STDOUT: !46 = !DILocation(line: 17, column: 1, scope: !44) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !20) +// CHECK:STDOUT: !49 = !DILocation(line: 18, column: 3, scope: !47) +// CHECK:STDOUT: !50 = !{!48} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !21) +// CHECK:STDOUT: !53 = !DILocation(line: 18, column: 3, scope: !51) +// CHECK:STDOUT: !54 = !{!52} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/var_param.carbon b/toolchain/lower/testdata/function/call/var_param.carbon index 72d7a074e219..514d2a655f2a 100644 --- a/toolchain/lower/testdata/function/call/var_param.carbon +++ b/toolchain/lower/testdata/function/call/var_param.carbon @@ -22,27 +22,27 @@ fn Main() { // CHECK:STDOUT: source_filename = "var_param.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDoNothing.Main(i32 %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CDoNothing.Main(i32 %_) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !14 -// CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !14 -// CHECK:STDOUT: %.loc17 = load i32, ptr %a.var, align 4, !dbg !15 -// CHECK:STDOUT: call void @_CDoNothing.Main(i32 %.loc17), !dbg !16 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !31 +// CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !31 +// CHECK:STDOUT: %.loc17 = load i32, ptr %a.var, align 4, !dbg !33 +// CHECK:STDOUT: call void @_CDoNothing.Main(i32 %.loc17), !dbg !34 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -51,29 +51,29 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "DoNothing", linkageName: "_CDoNothing.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 13, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 15, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 16, column: 3, scope: !18) +// CHECK:STDOUT: !18 = !DIFile(filename: "var_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "DoNothing", linkageName: "_CDoNothing.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !29) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !29 = !{!26} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 13, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !20) +// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !36) +// CHECK:STDOUT: !39 = !{!37} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/declaration/simple.carbon b/toolchain/lower/testdata/function/declaration/simple.carbon index a8f1813ad3ce..092c8a6494ec 100644 --- a/toolchain/lower/testdata/function/declaration/simple.carbon +++ b/toolchain/lower/testdata/function/declaration/simple.carbon @@ -25,10 +25,10 @@ fn I() -> A; // CHECK:STDOUT: declare void @_CF.Main(i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main(i32 %n) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main(i32 %n) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(i32 %n), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CF.Main(i32 %n), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CH.Main() @@ -37,19 +37,19 @@ fn I() -> A; // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 16, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "simple.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !29 = !DILocation(line: 15, column: 16, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 1, scope: !25) +// CHECK:STDOUT: !31 = !{!26} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/destroy.carbon b/toolchain/lower/testdata/function/definition/destroy.carbon index 47f872de6aa5..5c37e343e1f5 100644 --- a/toolchain/lower/testdata/function/definition/destroy.carbon +++ b/toolchain/lower/testdata/function/definition/destroy.carbon @@ -76,28 +76,28 @@ fn InitLet() { // CHECK:STDOUT: @C.val.loc12_6.6 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr %_) #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CG.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_6.2.temp = alloca {}, align 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_6.2.temp), !dbg !14 -// CHECK:STDOUT: call void @_CF.Main(ptr @C.val.loc12_6.6), !dbg !15 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !14 -// CHECK:STDOUT: call void @_CG.Main(), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %.loc12_6.2.temp = alloca {}, align 1, !dbg !27 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_6.2.temp), !dbg !27 +// CHECK:STDOUT: call void @_CF.Main(ptr @C.val.loc12_6.6), !dbg !28 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !27 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -106,31 +106,31 @@ fn InitLet() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "let_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 11, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 12, column: 5, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 12, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 3, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 11, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 12, column: 5, scope: !18) +// CHECK:STDOUT: !14 = !DIFile(filename: "let_param.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{null, !16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = !{null} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !14, line: 6, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !25) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !16) +// CHECK:STDOUT: !24 = !DILocation(line: 6, column: 1, scope: !21) +// CHECK:STDOUT: !25 = !{!22} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !14, line: 11, type: !20, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !27 = !DILocation(line: 12, column: 5, scope: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 12, column: 3, scope: !26) +// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 3, scope: !26) +// CHECK:STDOUT: !30 = !DILocation(line: 11, column: 1, scope: !26) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !14, line: 12, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !34) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !16) +// CHECK:STDOUT: !33 = !DILocation(line: 12, column: 5, scope: !31) +// CHECK:STDOUT: !34 = !{!32} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'var_param.carbon' @@ -139,29 +139,29 @@ fn InitLet() { // CHECK:STDOUT: @C.val.loc6 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr %_) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CG.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var, ptr align 1 @C.val.loc6, i64 0, i1 false), !dbg !14 -// CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @_CG.Main(), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !44 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var, ptr align 1 @C.val.loc6, i64 0, i1 false), !dbg !44 +// CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !45 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !44 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !46 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -173,31 +173,31 @@ fn InitLet() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!36} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 11, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 6, column: 6, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 12, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 3, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 11, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 6, scope: !18) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{null, !16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = !{null} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !35 = !DIFile(filename: "var_param.carbon", directory: "") +// CHECK:STDOUT: !36 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !35, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !35, line: 6, type: !18, spFlags: DISPFlagDefinition, unit: !36, retainedNodes: !42) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !16) +// CHECK:STDOUT: !41 = !DILocation(line: 6, column: 1, scope: !37) +// CHECK:STDOUT: !42 = !{!38} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !35, line: 11, type: !20, spFlags: DISPFlagDefinition, unit: !36) +// CHECK:STDOUT: !44 = !DILocation(line: 6, column: 6, scope: !43) +// CHECK:STDOUT: !45 = !DILocation(line: 12, column: 3, scope: !43) +// CHECK:STDOUT: !46 = !DILocation(line: 13, column: 3, scope: !43) +// CHECK:STDOUT: !47 = !DILocation(line: 11, column: 1, scope: !43) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !35, line: 6, type: !18, spFlags: DISPFlagDefinition, unit: !36, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !16) +// CHECK:STDOUT: !50 = !DILocation(line: 6, column: 6, scope: !48) +// CHECK:STDOUT: !51 = !{!49} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'return_slot.carbon' @@ -206,47 +206,47 @@ fn InitLet() { // CHECK:STDOUT: @C.val.loc7_12 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr sret({}) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr sret({}) %return) #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc7_12, i64 0, i1 false), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc7_12, i64 0, i1 false), !dbg !59 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CG.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CForward.Main(ptr sret({}) %return) #0 !dbg !9 { +// CHECK:STDOUT: define void @_CForward.Main(ptr sret({}) %return) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr %return), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CF.Main(ptr %return), !dbg !63 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitVar.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CInitVar.Main() #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !15 -// CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !16 -// CHECK:STDOUT: call void @_CG.Main(), !dbg !17 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !66 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !66 +// CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !67 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !69 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !66 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitLet.Main() #0 !dbg !25 { +// CHECK:STDOUT: define void @_CInitLet.Main() #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22_16.1.temp = alloca {}, align 1, !dbg !26 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_16.1.temp), !dbg !26 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc22_16.1.temp), !dbg !26 -// CHECK:STDOUT: call void @_CG.Main(), !dbg !27 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc22_16.1.temp), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: %.loc22_16.1.temp = alloca {}, align 1, !dbg !76 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_16.1.temp), !dbg !76 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc22_16.1.temp), !dbg !76 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !79 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc22_16.1.temp), !dbg !76 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -261,36 +261,36 @@ fn InitLet() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!53} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_slot.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Forward", linkageName: "_CForward.Main", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 10, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 3, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "InitVar", linkageName: "_CInitVar.Main", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 14, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !7} -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 17, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "InitLet", linkageName: "_CInitLet.Main", scope: null, file: !1, line: 21, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !26 = !DILocation(line: 22, column: 14, scope: !25) -// CHECK:STDOUT: !27 = !DILocation(line: 23, column: 3, scope: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 21, column: 1, scope: !25) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{null, !16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = !{null} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !52 = !DIFile(filename: "return_slot.carbon", directory: "") +// CHECK:STDOUT: !53 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !52, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !54 = !{!16} +// CHECK:STDOUT: !55 = !DISubroutineType(types: !54) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !52, line: 6, type: !55, spFlags: DISPFlagDefinition, unit: !53) +// CHECK:STDOUT: !59 = !DILocation(line: 7, column: 3, scope: !56) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Forward", linkageName: "_CForward.Main", scope: null, file: !52, line: 12, type: !55, spFlags: DISPFlagDefinition, unit: !53) +// CHECK:STDOUT: !63 = !DILocation(line: 13, column: 10, scope: !60) +// CHECK:STDOUT: !64 = !DILocation(line: 13, column: 3, scope: !60) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "InitVar", linkageName: "_CInitVar.Main", scope: null, file: !52, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !53) +// CHECK:STDOUT: !66 = !DILocation(line: 17, column: 3, scope: !65) +// CHECK:STDOUT: !67 = !DILocation(line: 17, column: 14, scope: !65) +// CHECK:STDOUT: !69 = !DILocation(line: 18, column: 3, scope: !65) +// CHECK:STDOUT: !70 = !DILocation(line: 16, column: 1, scope: !65) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !52, line: 17, type: !18, spFlags: DISPFlagDefinition, unit: !53, retainedNodes: !74) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !16) +// CHECK:STDOUT: !73 = !DILocation(line: 17, column: 3, scope: !71) +// CHECK:STDOUT: !74 = !{!72} +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "InitLet", linkageName: "_CInitLet.Main", scope: null, file: !52, line: 21, type: !20, spFlags: DISPFlagDefinition, unit: !53) +// CHECK:STDOUT: !76 = !DILocation(line: 22, column: 14, scope: !75) +// CHECK:STDOUT: !79 = !DILocation(line: 23, column: 3, scope: !75) +// CHECK:STDOUT: !80 = !DILocation(line: 21, column: 1, scope: !75) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/empty_struct.carbon b/toolchain/lower/testdata/function/definition/empty_struct.carbon index 9958e91d0468..b210be52c565 100644 --- a/toolchain/lower/testdata/function/definition/empty_struct.carbon +++ b/toolchain/lower/testdata/function/definition/empty_struct.carbon @@ -18,22 +18,22 @@ fn Echo(_: {}) { // CHECK:STDOUT: source_filename = "empty_struct.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CEcho.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CEcho.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty_struct.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "empty_struct.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Echo", linkageName: "_CEcho.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !20 = !DILocation(line: 13, column: 1, scope: !18) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/eval_musteval.carbon b/toolchain/lower/testdata/function/definition/eval_musteval.carbon index 63437e5cfc83..7f160303d626 100644 --- a/toolchain/lower/testdata/function/definition/eval_musteval.carbon +++ b/toolchain/lower/testdata/function/definition/eval_musteval.carbon @@ -48,72 +48,72 @@ fn F() -> i32 { // CHECK:STDOUT: source_filename = "eval.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CEval.Main(i32 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CEval.Main(i32 %a) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !10 +// CHECK:STDOUT: ret i32 %a, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 1, !dbg !14 +// CHECK:STDOUT: ret i32 1, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CG.Main(i32 %n) #0 !dbg !15 { +// CHECK:STDOUT: define i32 @_CG.Main(i32 %n) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Eval.call = call i32 @_CEval.Main(i32 %n), !dbg !18 -// CHECK:STDOUT: ret i32 %Eval.call, !dbg !19 +// CHECK:STDOUT: %Eval.call = call i32 @_CEval.Main(i32 %n), !dbg !43 +// CHECK:STDOUT: ret i32 %Eval.call, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "eval.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Eval", linkageName: "_CEval.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!7} -// CHECK:STDOUT: !14 = !DILocation(line: 11, column: 3, scope: !11) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !15, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 10, scope: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !15) +// CHECK:STDOUT: !18 = !DIFile(filename: "eval.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{!20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Eval", linkageName: "_CEval.Main", scope: null, file: !18, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !32) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !31 = !DILocation(line: 6, column: 3, scope: !25) +// CHECK:STDOUT: !32 = !{!26} +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !36 = !DILocation(line: 11, column: 3, scope: !33) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 16, column: 10, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 16, column: 3, scope: !37) +// CHECK:STDOUT: !45 = !{!38} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'musteval.carbon' // CHECK:STDOUT: source_filename = "musteval.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 1, !dbg !8 +// CHECK:STDOUT: ret i32 1, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!47} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "musteval.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 11, column: 3, scope: !4) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !23 = !{!20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !46 = !DIFile(filename: "musteval.carbon", directory: "") +// CHECK:STDOUT: !47 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !46, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !46, line: 10, type: !24, spFlags: DISPFlagDefinition, unit: !47) +// CHECK:STDOUT: !51 = !DILocation(line: 11, column: 3, scope: !48) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/params_one.carbon b/toolchain/lower/testdata/function/definition/params_one.carbon index 2c716ef0e9ad..49164a2c6086 100644 --- a/toolchain/lower/testdata/function/definition/params_one.carbon +++ b/toolchain/lower/testdata/function/definition/params_one.carbon @@ -17,25 +17,25 @@ fn Foo(_: i32) {} // CHECK:STDOUT: source_filename = "params_one.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main(i32 %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main(i32 %_) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_one.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "params_one.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !27) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 13, column: 1, scope: !23) +// CHECK:STDOUT: !27 = !{!24} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/params_two.carbon b/toolchain/lower/testdata/function/definition/params_two.carbon index ecbe35ad7c35..d6b35cbf25c9 100644 --- a/toolchain/lower/testdata/function/definition/params_two.carbon +++ b/toolchain/lower/testdata/function/definition/params_two.carbon @@ -17,26 +17,26 @@ fn Foo(_: i32, _: i32) {} // CHECK:STDOUT: source_filename = "params_two.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main(i32 %_, i32 %_1) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main(i32 %_, i32 %_1) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_two.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "params_two.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !29) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !20) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !23, type: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 1, scope: !23) +// CHECK:STDOUT: !29 = !{!24, !25} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/params_zero.carbon b/toolchain/lower/testdata/function/definition/params_zero.carbon index fe223e0c0c0e..35b50326cb6c 100644 --- a/toolchain/lower/testdata/function/definition/params_zero.carbon +++ b/toolchain/lower/testdata/function/definition/params_zero.carbon @@ -17,22 +17,22 @@ fn Foo() {} // CHECK:STDOUT: source_filename = "params_zero.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "params_zero.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "params_zero.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 13, column: 1, scope: !18) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/raw_name.carbon b/toolchain/lower/testdata/function/definition/raw_name.carbon index 7ae38237dc0c..b4339e770146 100644 --- a/toolchain/lower/testdata/function/definition/raw_name.carbon +++ b/toolchain/lower/testdata/function/definition/raw_name.carbon @@ -18,22 +18,22 @@ fn r#self() {} // CHECK:STDOUT: source_filename = "raw_name.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_Cself.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_Cself.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "raw_name.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "self", linkageName: "_Cself.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "raw_name.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "self", linkageName: "_Cself.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 13, column: 1, scope: !18) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/definition/var_param.carbon b/toolchain/lower/testdata/function/definition/var_param.carbon index 0a2d732eb636..41b080bc6b0a 100644 --- a/toolchain/lower/testdata/function/definition/var_param.carbon +++ b/toolchain/lower/testdata/function/definition/var_param.carbon @@ -38,83 +38,83 @@ fn Call() { // CHECK:STDOUT: @X.val.loc16 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_COneVar_i32.Main(ptr %_) #0 !dbg !4 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_COneVar_X.Main(ptr %_) #0 !dbg !11 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTwoVars.Main(ptr %_, ptr %_1) #0 !dbg !18 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CVarThenLet.Main(ptr %_, ptr %_1) #0 !dbg !25 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CLetThenVar.Main(i32 %_, ptr %_1) #0 !dbg !30 { +// CHECK:STDOUT: define void @_COneVar_i32.Main(ptr %_) #0 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main() #0 !dbg !35 { +// CHECK:STDOUT: define void @_COneVar_X.Main(ptr %_) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc15 = alloca i32, align 4, !dbg !38 -// CHECK:STDOUT: %_.var.loc16 = alloca {}, align 1, !dbg !39 -// CHECK:STDOUT: %_.var.loc18_12 = alloca i32, align 4, !dbg !40 -// CHECK:STDOUT: %_.var.loc18_24 = alloca {}, align 1, !dbg !41 -// CHECK:STDOUT: %_.var.loc20 = alloca i32, align 4, !dbg !42 -// CHECK:STDOUT: %.loc29_18.2.temp = alloca {}, align 1, !dbg !43 -// CHECK:STDOUT: %_.var.loc21 = alloca {}, align 1, !dbg !44 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !38 -// CHECK:STDOUT: store i32 1, ptr %_.var.loc15, align 4, !dbg !38 -// CHECK:STDOUT: call void @_COneVar_i32.Main(ptr %_.var.loc15), !dbg !45 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc15), !dbg !38 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !39 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !39 -// CHECK:STDOUT: call void @_COneVar_X.Main(ptr %_.var.loc16), !dbg !46 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !39 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18_12), !dbg !40 -// CHECK:STDOUT: store i32 1, ptr %_.var.loc18_12, align 4, !dbg !40 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18_24), !dbg !41 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc18_24, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !41 -// CHECK:STDOUT: call void @_CTwoVars.Main(ptr %_.var.loc18_12, ptr %_.var.loc18_24), !dbg !47 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc18_24), !dbg !41 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc18_12), !dbg !40 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc20), !dbg !42 -// CHECK:STDOUT: store i32 1, ptr %_.var.loc20, align 4, !dbg !42 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_18.2.temp), !dbg !43 -// CHECK:STDOUT: call void @_CVarThenLet.Main(ptr %_.var.loc20, ptr @X.val.loc16), !dbg !48 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr @X.val), !dbg !43 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc20), !dbg !42 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc21), !dbg !44 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc21, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !44 -// CHECK:STDOUT: call void @_CLetThenVar.Main(i32 1, ptr %_.var.loc21), !dbg !49 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc21), !dbg !44 -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define void @_CTwoVars.Main(ptr %_, ptr %_1) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !54 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define void @_CVarThenLet.Main(ptr %_, ptr %_1) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !58 +// CHECK:STDOUT: ret void, !dbg !57 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CLetThenVar.Main(i32 %_, ptr %_1) #0 !dbg !59 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !65 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CCall.Main() #0 !dbg !67 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %_.var.loc15 = alloca i32, align 4, !dbg !68 +// CHECK:STDOUT: %_.var.loc16 = alloca {}, align 1, !dbg !70 +// CHECK:STDOUT: %_.var.loc18_12 = alloca i32, align 4, !dbg !72 +// CHECK:STDOUT: %_.var.loc18_24 = alloca {}, align 1, !dbg !73 +// CHECK:STDOUT: %_.var.loc20 = alloca i32, align 4, !dbg !75 +// CHECK:STDOUT: %.loc29_18.2.temp = alloca {}, align 1, !dbg !76 +// CHECK:STDOUT: %_.var.loc21 = alloca {}, align 1, !dbg !78 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !68 +// CHECK:STDOUT: store i32 1, ptr %_.var.loc15, align 4, !dbg !68 +// CHECK:STDOUT: call void @_COneVar_i32.Main(ptr %_.var.loc15), !dbg !69 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc15), !dbg !68 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !70 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !70 +// CHECK:STDOUT: call void @_COneVar_X.Main(ptr %_.var.loc16), !dbg !71 +// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !70 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18_12), !dbg !72 +// CHECK:STDOUT: store i32 1, ptr %_.var.loc18_12, align 4, !dbg !72 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18_24), !dbg !73 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc18_24, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !73 +// CHECK:STDOUT: call void @_CTwoVars.Main(ptr %_.var.loc18_12, ptr %_.var.loc18_24), !dbg !74 +// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc18_24), !dbg !73 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc18_12), !dbg !72 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc20), !dbg !75 +// CHECK:STDOUT: store i32 1, ptr %_.var.loc20, align 4, !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_18.2.temp), !dbg !76 +// CHECK:STDOUT: call void @_CVarThenLet.Main(ptr %_.var.loc20, ptr @X.val.loc16), !dbg !77 +// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr @X.val), !dbg !76 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc20), !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc21), !dbg !78 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc21, ptr align 1 @X.val.loc16, i64 0, i1 false), !dbg !78 +// CHECK:STDOUT: call void @_CLetThenVar.Main(i32 1, ptr %_.var.loc21), !dbg !79 +// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var.loc21), !dbg !78 +// CHECK:STDOUT: ret void, !dbg !80 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !83 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -132,66 +132,66 @@ fn Call() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "OneVar_i32", linkageName: "_COneVar_i32.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "OneVar_X", linkageName: "_COneVar_X.Main", scope: null, file: !1, line: 16, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 16, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "TwoVars", linkageName: "_CTwoVars.Main", scope: null, file: !1, line: 18, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !7, !14} -// CHECK:STDOUT: !21 = !{!22, !23} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !18, type: !14) -// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 1, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "VarThenLet", linkageName: "_CVarThenLet.Main", scope: null, file: !1, line: 20, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27, !28} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !25, type: !14) -// CHECK:STDOUT: !29 = !DILocation(line: 20, column: 1, scope: !25) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "LetThenVar", linkageName: "_CLetThenVar.Main", scope: null, file: !1, line: 21, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32, !33} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !7) -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !30, type: !14) -// CHECK:STDOUT: !34 = !DILocation(line: 21, column: 1, scope: !30) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 23, type: !36, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !36 = !DISubroutineType(types: !37) -// CHECK:STDOUT: !37 = !{null} -// CHECK:STDOUT: !38 = !DILocation(line: 15, column: 15, scope: !35) -// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 13, scope: !35) -// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 12, scope: !35) -// CHECK:STDOUT: !41 = !DILocation(line: 18, column: 24, scope: !35) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 15, scope: !35) -// CHECK:STDOUT: !43 = !DILocation(line: 29, column: 17, scope: !35) -// CHECK:STDOUT: !44 = !DILocation(line: 21, column: 23, scope: !35) -// CHECK:STDOUT: !45 = !DILocation(line: 24, column: 3, scope: !35) -// CHECK:STDOUT: !46 = !DILocation(line: 25, column: 3, scope: !35) -// CHECK:STDOUT: !47 = !DILocation(line: 26, column: 3, scope: !35) -// CHECK:STDOUT: !48 = !DILocation(line: 29, column: 3, scope: !35) -// CHECK:STDOUT: !49 = !DILocation(line: 30, column: 3, scope: !35) -// CHECK:STDOUT: !50 = !DILocation(line: 23, column: 1, scope: !35) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !52) -// CHECK:STDOUT: !52 = !{!53} -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !51, type: !7) -// CHECK:STDOUT: !54 = !DILocation(line: 15, column: 15, scope: !51) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !1, line: 16, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !14) -// CHECK:STDOUT: !58 = !DILocation(line: 16, column: 13, scope: !55) +// CHECK:STDOUT: !18 = !DIFile(filename: "var_param.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !23} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20, !23} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "OneVar_i32", linkageName: "_COneVar_i32.Main", scope: null, file: !18, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !35 = !{!31} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "OneVar_X", linkageName: "_COneVar_X.Main", scope: null, file: !18, line: 16, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !23) +// CHECK:STDOUT: !40 = !DILocation(line: 16, column: 1, scope: !36) +// CHECK:STDOUT: !41 = !{!37} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "TwoVars", linkageName: "_CTwoVars.Main", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !50) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !20) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 2, scope: !42, type: !23) +// CHECK:STDOUT: !49 = !DILocation(line: 18, column: 1, scope: !42) +// CHECK:STDOUT: !50 = !{!43, !44} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "VarThenLet", linkageName: "_CVarThenLet.Main", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !58) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !20) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 2, scope: !51, type: !23) +// CHECK:STDOUT: !57 = !DILocation(line: 20, column: 1, scope: !51) +// CHECK:STDOUT: !58 = !{!52, !53} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "LetThenVar", linkageName: "_CLetThenVar.Main", scope: null, file: !18, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !66) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !20) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 2, scope: !59, type: !23) +// CHECK:STDOUT: !65 = !DILocation(line: 21, column: 1, scope: !59) +// CHECK:STDOUT: !66 = !{!60, !61} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !18, line: 23, type: !29, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !68 = !DILocation(line: 15, column: 15, scope: !67) +// CHECK:STDOUT: !69 = !DILocation(line: 24, column: 3, scope: !67) +// CHECK:STDOUT: !70 = !DILocation(line: 16, column: 13, scope: !67) +// CHECK:STDOUT: !71 = !DILocation(line: 25, column: 3, scope: !67) +// CHECK:STDOUT: !72 = !DILocation(line: 18, column: 12, scope: !67) +// CHECK:STDOUT: !73 = !DILocation(line: 18, column: 24, scope: !67) +// CHECK:STDOUT: !74 = !DILocation(line: 26, column: 3, scope: !67) +// CHECK:STDOUT: !75 = !DILocation(line: 20, column: 15, scope: !67) +// CHECK:STDOUT: !76 = !DILocation(line: 29, column: 17, scope: !67) +// CHECK:STDOUT: !77 = !DILocation(line: 29, column: 3, scope: !67) +// CHECK:STDOUT: !78 = !DILocation(line: 21, column: 23, scope: !67) +// CHECK:STDOUT: !79 = !DILocation(line: 30, column: 3, scope: !67) +// CHECK:STDOUT: !80 = !DILocation(line: 23, column: 1, scope: !67) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !84) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !20) +// CHECK:STDOUT: !83 = !DILocation(line: 15, column: 15, scope: !81) +// CHECK:STDOUT: !84 = !{!82} +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !18, line: 16, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !88) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !23) +// CHECK:STDOUT: !87 = !DILocation(line: 16, column: 13, scope: !85) +// CHECK:STDOUT: !88 = !{!86} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call.carbon b/toolchain/lower/testdata/function/generic/call.carbon index b651c589e664..7f6bea9c9440 100644 --- a/toolchain/lower/testdata/function/generic/call.carbon +++ b/toolchain/lower/testdata/function/generic/call.carbon @@ -39,56 +39,56 @@ fn G() { // CHECK:STDOUT: @D.val.loc21_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: %d.var = alloca {}, align 1, !dbg !8 -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc20_3, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %d.var, ptr align 1 @D.val.loc21_3, i64 0, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !9 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !10 -// CHECK:STDOUT: store double 0.000000e+00, ptr %m.var, align 8, !dbg !10 -// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr %c.var), !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr %d.var), !dbg !12 -// CHECK:STDOUT: %.loc27 = load i32, ptr %n.var, align 4, !dbg !13 -// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc27), !dbg !14 -// CHECK:STDOUT: %.loc28 = load double, ptr %m.var, align 8, !dbg !15 -// CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc28), !dbg !16 -// CHECK:STDOUT: call void @_CF.Main.5754c7a55c7cbe4a(%type.26 zeroinitializer), !dbg !17 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %d.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !43 +// CHECK:STDOUT: %d.var = alloca {}, align 1, !dbg !45 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !47 +// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !49 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !43 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc20_3, i64 0, i1 false), !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !45 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %d.var, ptr align 1 @D.val.loc21_3, i64 0, i1 false), !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !47 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !47 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !49 +// CHECK:STDOUT: store double 0.000000e+00, ptr %m.var, align 8, !dbg !49 +// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr %c.var), !dbg !52 +// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr %d.var), !dbg !54 +// CHECK:STDOUT: %.loc27 = load i32, ptr %n.var, align 4, !dbg !55 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc27), !dbg !56 +// CHECK:STDOUT: %.loc28 = load double, ptr %m.var, align 8, !dbg !57 +// CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc28), !dbg !58 +// CHECK:STDOUT: call void @_CF.Main.5754c7a55c7cbe4a(%type.26 zeroinitializer), !dbg !59 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !49 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !47 +// CHECK:STDOUT: call void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %d.var), !dbg !45 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !43 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -98,27 +98,27 @@ fn G() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.9522ff908e97e267(ptr %_) #0 !dbg !41 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.9522ff908e97e267(ptr %_) #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !87 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.073fbce68be6103e(double %_) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.073fbce68be6103e(double %_) #0 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5754c7a55c7cbe4a(%type.26 %_) #0 !dbg !53 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5754c7a55c7cbe4a(%type.26 %_) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -129,64 +129,64 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 26, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 27, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 27, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 28, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 28, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 29, column: 3, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 23, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 23, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !29} -// CHECK:STDOUT: !29 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) -// CHECK:STDOUT: !32 = !DILocation(line: 22, column: 3, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.86bfabb7802f32e5:core.Destroy.Core", scope: null, file: !1, line: 21, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !22) -// CHECK:STDOUT: !36 = !DILocation(line: 21, column: 3, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !22) -// CHECK:STDOUT: !40 = !DILocation(line: 20, column: 3, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9522ff908e97e267", scope: null, file: !1, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !22) -// CHECK:STDOUT: !44 = !DILocation(line: 13, column: 1, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !1, line: 13, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !29) -// CHECK:STDOUT: !48 = !DILocation(line: 13, column: 1, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.073fbce68be6103e", scope: null, file: !1, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !22) -// CHECK:STDOUT: !52 = !DILocation(line: 13, column: 1, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5754c7a55c7cbe4a", scope: null, file: !1, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !22) -// CHECK:STDOUT: !56 = !DILocation(line: 13, column: 1, scope: !53) +// CHECK:STDOUT: !32 = !DIFile(filename: "call.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{null} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{null, !37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !34} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !32, line: 19, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !43 = !DILocation(line: 20, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !DILocation(line: 21, column: 3, scope: !42) +// CHECK:STDOUT: !47 = !DILocation(line: 22, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 23, column: 3, scope: !42) +// CHECK:STDOUT: !52 = !DILocation(line: 25, column: 3, scope: !42) +// CHECK:STDOUT: !54 = !DILocation(line: 26, column: 3, scope: !42) +// CHECK:STDOUT: !55 = !DILocation(line: 27, column: 5, scope: !42) +// CHECK:STDOUT: !56 = !DILocation(line: 27, column: 3, scope: !42) +// CHECK:STDOUT: !57 = !DILocation(line: 28, column: 5, scope: !42) +// CHECK:STDOUT: !58 = !DILocation(line: 28, column: 3, scope: !42) +// CHECK:STDOUT: !59 = !DILocation(line: 29, column: 3, scope: !42) +// CHECK:STDOUT: !60 = !DILocation(line: 19, column: 1, scope: !42) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 23, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !64) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !37) +// CHECK:STDOUT: !63 = !DILocation(line: 23, column: 3, scope: !61) +// CHECK:STDOUT: !64 = !{!62} +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !68) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !34) +// CHECK:STDOUT: !67 = !DILocation(line: 22, column: 3, scope: !65) +// CHECK:STDOUT: !68 = !{!66} +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.86bfabb7802f32e5:core.Destroy.Core", scope: null, file: !32, line: 21, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !37) +// CHECK:STDOUT: !71 = !DILocation(line: 21, column: 3, scope: !69) +// CHECK:STDOUT: !72 = !{!70} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !32, line: 20, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !76) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !37) +// CHECK:STDOUT: !75 = !DILocation(line: 20, column: 3, scope: !73) +// CHECK:STDOUT: !76 = !{!74} +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9522ff908e97e267", scope: null, file: !32, line: 13, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !81) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !37) +// CHECK:STDOUT: !80 = !DILocation(line: 13, column: 1, scope: !77) +// CHECK:STDOUT: !81 = !{!78} +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !32, line: 13, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !91) +// CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !87, type: !34) +// CHECK:STDOUT: !90 = !DILocation(line: 13, column: 1, scope: !87) +// CHECK:STDOUT: !91 = !{!88} +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.073fbce68be6103e", scope: null, file: !32, line: 13, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !96) +// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !37) +// CHECK:STDOUT: !95 = !DILocation(line: 13, column: 1, scope: !92) +// CHECK:STDOUT: !96 = !{!93} +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5754c7a55c7cbe4a", scope: null, file: !32, line: 13, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !101) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !37) +// CHECK:STDOUT: !100 = !DILocation(line: 13, column: 1, scope: !97) +// CHECK:STDOUT: !101 = !{!98} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_basic.carbon b/toolchain/lower/testdata/function/generic/call_basic.carbon index 82b640b883e1..49c9b640e8f2 100644 --- a/toolchain/lower/testdata/function/generic/call_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic.carbon @@ -64,50 +64,50 @@ fn M() { // CHECK:STDOUT: @C.val.loc15_43 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.C.Main:Copy.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_COp.C.Main:Copy.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !49 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !21 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !24 -// CHECK:STDOUT: %p.var = alloca double, align 8, !dbg !25 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !24 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p.var), !dbg !25 -// CHECK:STDOUT: store double 1.000000e+00, ptr %p.var, align 8, !dbg !25 -// CHECK:STDOUT: %.loc52 = load i32, ptr %n.var, align 4, !dbg !26 -// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc52), !dbg !27 -// CHECK:STDOUT: %.loc53_18 = load i32, ptr %n.var, align 4, !dbg !28 -// CHECK:STDOUT: %G.call.loc53 = call i32 @_CG.Main.553a1f59d1dd8381(i32 %.loc53_18), !dbg !29 -// CHECK:STDOUT: %.loc54 = load double, ptr %p.var, align 8, !dbg !30 -// CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc54), !dbg !31 -// CHECK:STDOUT: %.loc55_18 = load double, ptr %p.var, align 8, !dbg !32 -// CHECK:STDOUT: %G.call.loc55 = call double @_CG.Main.2c62211f0854a75a(double %.loc55_18), !dbg !33 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %p.var), !dbg !25 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !60 +// CHECK:STDOUT: %p.var = alloca double, align 8, !dbg !62 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !60 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !60 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p.var), !dbg !62 +// CHECK:STDOUT: store double 1.000000e+00, ptr %p.var, align 8, !dbg !62 +// CHECK:STDOUT: %.loc52 = load i32, ptr %n.var, align 4, !dbg !64 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc52), !dbg !65 +// CHECK:STDOUT: %.loc53_18 = load i32, ptr %n.var, align 4, !dbg !66 +// CHECK:STDOUT: %G.call.loc53 = call i32 @_CG.Main.553a1f59d1dd8381(i32 %.loc53_18), !dbg !67 +// CHECK:STDOUT: %.loc54 = load double, ptr %p.var, align 8, !dbg !72 +// CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc54), !dbg !73 +// CHECK:STDOUT: %.loc55_18 = load double, ptr %p.var, align 8, !dbg !74 +// CHECK:STDOUT: %G.call.loc55 = call double @_CG.Main.2c62211f0854a75a(double %.loc55_18), !dbg !75 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %p.var), !dbg !62 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !60 +// CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -117,148 +117,148 @@ fn M() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.553a1f59d1dd8381(i32 %x) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.553a1f59d1dd8381(i32 %x) #0 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc29_6.3.temp = alloca i32, align 4, !dbg !51 -// CHECK:STDOUT: %.loc31_8.3.temp = alloca i32, align 4, !dbg !52 -// CHECK:STDOUT: %.loc31_9.3.temp = alloca i32, align 4, !dbg !53 -// CHECK:STDOUT: %var_f64.var = alloca double, align 8, !dbg !54 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !55 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !56 -// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !57 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !58 -// CHECK:STDOUT: %.loc43_6.3.temp = alloca {}, align 1, !dbg !59 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.3.temp), !dbg !51 -// CHECK:STDOUT: %H.call.loc29 = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x), !dbg !51 -// CHECK:STDOUT: store i32 %H.call.loc29, ptr %.loc29_6.3.temp, align 4, !dbg !51 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !51 -// CHECK:STDOUT: %H.call.loc30 = call %type.26 @_CH.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !60 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !52 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.553a1f59d1dd8381(i32 %x), !dbg !52 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !53 -// CHECK:STDOUT: store i32 %G.call, ptr %.loc31_8.3.temp, align 4, !dbg !52 -// CHECK:STDOUT: %.loc31_8.5 = load i32, ptr %.loc31_8.3.temp, align 4, !dbg !52 -// CHECK:STDOUT: %H.call.loc31 = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %.loc31_8.5), !dbg !53 -// CHECK:STDOUT: store i32 %H.call.loc31, ptr %.loc31_9.3.temp, align 4, !dbg !53 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !53 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !52 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !54 -// CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !54 -// CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !61 -// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc35_5), !dbg !62 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !55 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !55 -// CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !63 -// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc37_5), !dbg !64 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !56 -// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !56 -// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !65 -// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc39_5), !dbg !66 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !57 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !57 -// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !67 -// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc41_5), !dbg !68 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !58 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.3.temp), !dbg !59 -// CHECK:STDOUT: call void @_CH.Main.42513763e01cba2c(ptr %.loc43_6.3.temp, ptr %c.var), !dbg !59 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !59 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !58 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !54 -// CHECK:STDOUT: ret i32 %x, !dbg !69 +// CHECK:STDOUT: %.loc29_6.3.temp = alloca i32, align 4, !dbg !94 +// CHECK:STDOUT: %.loc31_8.3.temp = alloca i32, align 4, !dbg !97 +// CHECK:STDOUT: %.loc31_9.3.temp = alloca i32, align 4, !dbg !98 +// CHECK:STDOUT: %var_f64.var = alloca double, align 8, !dbg !99 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !103 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !107 +// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !111 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !115 +// CHECK:STDOUT: %.loc43_6.3.temp = alloca {}, align 1, !dbg !118 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.3.temp), !dbg !94 +// CHECK:STDOUT: %H.call.loc29 = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x), !dbg !94 +// CHECK:STDOUT: store i32 %H.call.loc29, ptr %.loc29_6.3.temp, align 4, !dbg !94 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !94 +// CHECK:STDOUT: %H.call.loc30 = call %type.26 @_CH.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !95 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !97 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.553a1f59d1dd8381(i32 %x), !dbg !97 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !98 +// CHECK:STDOUT: store i32 %G.call, ptr %.loc31_8.3.temp, align 4, !dbg !97 +// CHECK:STDOUT: %.loc31_8.5 = load i32, ptr %.loc31_8.3.temp, align 4, !dbg !97 +// CHECK:STDOUT: %H.call.loc31 = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %.loc31_8.5), !dbg !98 +// CHECK:STDOUT: store i32 %H.call.loc31, ptr %.loc31_9.3.temp, align 4, !dbg !98 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !98 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !97 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !99 +// CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !99 +// CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !101 +// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc35_5), !dbg !102 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !103 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !103 +// CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !105 +// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc37_5), !dbg !106 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !107 +// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !107 +// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !109 +// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc39_5), !dbg !110 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !111 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !111 +// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !113 +// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc41_5), !dbg !114 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !115 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.3.temp), !dbg !118 +// CHECK:STDOUT: call void @_CH.Main.42513763e01cba2c(ptr %.loc43_6.3.temp, ptr %c.var), !dbg !118 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !118 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !115 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !99 +// CHECK:STDOUT: ret i32 %x, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.073fbce68be6103e(double %_) #0 !dbg !70 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.073fbce68be6103e(double %_) #0 !dbg !122 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !73 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.2c62211f0854a75a(double %x) #0 !dbg !74 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.2c62211f0854a75a(double %x) #0 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc29_6.3.temp = alloca double, align 8, !dbg !77 -// CHECK:STDOUT: %.loc31_8.3.temp = alloca double, align 8, !dbg !78 -// CHECK:STDOUT: %.loc31_9.3.temp = alloca double, align 8, !dbg !79 -// CHECK:STDOUT: %var_f64.var = alloca double, align 8, !dbg !80 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !81 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !82 -// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !83 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !84 -// CHECK:STDOUT: %.loc43_6.3.temp = alloca {}, align 1, !dbg !85 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.3.temp), !dbg !77 -// CHECK:STDOUT: %H.call.loc29 = call double @_CH.Main.c5e4ba542a56b71f(double %x), !dbg !77 -// CHECK:STDOUT: store double %H.call.loc29, ptr %.loc29_6.3.temp, align 8, !dbg !77 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !77 -// CHECK:STDOUT: %H.call.loc30 = call %type.26 @_CH.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !86 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !78 -// CHECK:STDOUT: %G.call = call double @_CG.Main.2c62211f0854a75a(double %x), !dbg !78 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !79 -// CHECK:STDOUT: store double %G.call, ptr %.loc31_8.3.temp, align 8, !dbg !78 -// CHECK:STDOUT: %.loc31_8.5 = load double, ptr %.loc31_8.3.temp, align 8, !dbg !78 -// CHECK:STDOUT: %H.call.loc31 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc31_8.5), !dbg !79 -// CHECK:STDOUT: store double %H.call.loc31, ptr %.loc31_9.3.temp, align 8, !dbg !79 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !79 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !78 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !80 -// CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !80 -// CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !87 -// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc35_5), !dbg !88 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !81 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !81 -// CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !89 -// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc37_5), !dbg !90 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !82 -// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !82 -// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !91 -// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc39_5), !dbg !92 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !83 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !83 -// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !93 -// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc41_5), !dbg !94 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !84 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.3.temp), !dbg !85 -// CHECK:STDOUT: call void @_CH.Main.42513763e01cba2c(ptr %.loc43_6.3.temp, ptr %c.var), !dbg !85 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !85 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !84 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !80 -// CHECK:STDOUT: ret double %x, !dbg !95 +// CHECK:STDOUT: %.loc29_6.3.temp = alloca double, align 8, !dbg !133 +// CHECK:STDOUT: %.loc31_8.3.temp = alloca double, align 8, !dbg !136 +// CHECK:STDOUT: %.loc31_9.3.temp = alloca double, align 8, !dbg !137 +// CHECK:STDOUT: %var_f64.var = alloca double, align 8, !dbg !138 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !142 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !146 +// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !150 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !154 +// CHECK:STDOUT: %.loc43_6.3.temp = alloca {}, align 1, !dbg !157 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.3.temp), !dbg !133 +// CHECK:STDOUT: %H.call.loc29 = call double @_CH.Main.c5e4ba542a56b71f(double %x), !dbg !133 +// CHECK:STDOUT: store double %H.call.loc29, ptr %.loc29_6.3.temp, align 8, !dbg !133 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc29_6.3.temp), !dbg !133 +// CHECK:STDOUT: %H.call.loc30 = call %type.26 @_CH.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !134 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !136 +// CHECK:STDOUT: %G.call = call double @_CG.Main.2c62211f0854a75a(double %x), !dbg !136 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !137 +// CHECK:STDOUT: store double %G.call, ptr %.loc31_8.3.temp, align 8, !dbg !136 +// CHECK:STDOUT: %.loc31_8.5 = load double, ptr %.loc31_8.3.temp, align 8, !dbg !136 +// CHECK:STDOUT: %H.call.loc31 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc31_8.5), !dbg !137 +// CHECK:STDOUT: store double %H.call.loc31, ptr %.loc31_9.3.temp, align 8, !dbg !137 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc31_9.3.temp), !dbg !137 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc31_8.3.temp), !dbg !136 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !138 +// CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !138 +// CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !140 +// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.c5e4ba542a56b71f(double %.loc35_5), !dbg !141 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !142 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !142 +// CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !144 +// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc37_5), !dbg !145 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !146 +// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !146 +// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !148 +// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc39_5), !dbg !149 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !150 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !150 +// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !152 +// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.a76b78461416b4a8(ptr %.loc41_5), !dbg !153 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !154 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.3.temp), !dbg !157 +// CHECK:STDOUT: call void @_CH.Main.42513763e01cba2c(ptr %.loc43_6.3.temp, ptr %c.var), !dbg !157 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc43_6.3.temp), !dbg !157 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !154 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !138 +// CHECK:STDOUT: ret double %x, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !96 { +// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !161 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !99 +// CHECK:STDOUT: ret i32 %x, !dbg !167 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type.26 @_CH.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !100 { +// CHECK:STDOUT: define linkonce_odr %type.26 @_CH.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !169 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.26 %x, !dbg !103 +// CHECK:STDOUT: ret %type.26 %x, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CH.Main.c5e4ba542a56b71f(double %x) #0 !dbg !104 { +// CHECK:STDOUT: define linkonce_odr double @_CH.Main.c5e4ba542a56b71f(double %x) #0 !dbg !177 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret double %x, !dbg !107 +// CHECK:STDOUT: ret double %x, !dbg !183 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CH.Main.a76b78461416b4a8(ptr %x) #0 !dbg !108 { +// CHECK:STDOUT: define linkonce_odr ptr @_CH.Main.a76b78461416b4a8(ptr %x) #0 !dbg !185 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %x, !dbg !111 +// CHECK:STDOUT: ret ptr %x, !dbg !191 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CH.Main.42513763e01cba2c(ptr sret({}) %return, ptr %x) #0 !dbg !112 { +// CHECK:STDOUT: define linkonce_odr void @_CH.Main.42513763e01cba2c(ptr sret({}) %return, ptr %x) #0 !dbg !209 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.C.Main:Copy.Core"(ptr %return, ptr %x), !dbg !115 -// CHECK:STDOUT: ret void, !dbg !116 +// CHECK:STDOUT: call void @"_COp.C.Main:Copy.Core"(ptr %return, ptr %x), !dbg !214 +// CHECK:STDOUT: ret void, !dbg !215 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -272,124 +272,124 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.C.Main:Copy.Core", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 34, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 43, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 43, column: 3, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 34, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 34, column: 3, scope: !17) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 48, type: !22, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null} -// CHECK:STDOUT: !24 = !DILocation(line: 49, column: 3, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 50, column: 3, scope: !21) -// CHECK:STDOUT: !26 = !DILocation(line: 52, column: 5, scope: !21) -// CHECK:STDOUT: !27 = !DILocation(line: 52, column: 3, scope: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 53, column: 18, scope: !21) -// CHECK:STDOUT: !29 = !DILocation(line: 53, column: 16, scope: !21) -// CHECK:STDOUT: !30 = !DILocation(line: 54, column: 5, scope: !21) -// CHECK:STDOUT: !31 = !DILocation(line: 54, column: 3, scope: !21) -// CHECK:STDOUT: !32 = !DILocation(line: 55, column: 18, scope: !21) -// CHECK:STDOUT: !33 = !DILocation(line: 55, column: 16, scope: !21) -// CHECK:STDOUT: !34 = !DILocation(line: 48, column: 1, scope: !21) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 53, type: !36, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !36 = !DISubroutineType(types: !37) -// CHECK:STDOUT: !37 = !{null, !38} -// CHECK:STDOUT: !38 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !35, type: !38) -// CHECK:STDOUT: !41 = !DILocation(line: 53, column: 16, scope: !35) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !1, line: 19, type: !36, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !38) -// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 1, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.553a1f59d1dd8381", scope: null, file: !1, line: 28, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !47 = !DISubroutineType(types: !48) -// CHECK:STDOUT: !48 = !{!38, !38} -// CHECK:STDOUT: !49 = !{!50} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !46, type: !38) -// CHECK:STDOUT: !51 = !DILocation(line: 29, column: 3, scope: !46) -// CHECK:STDOUT: !52 = !DILocation(line: 31, column: 5, scope: !46) -// CHECK:STDOUT: !53 = !DILocation(line: 31, column: 3, scope: !46) -// CHECK:STDOUT: !54 = !DILocation(line: 34, column: 3, scope: !46) -// CHECK:STDOUT: !55 = !DILocation(line: 36, column: 3, scope: !46) -// CHECK:STDOUT: !56 = !DILocation(line: 38, column: 3, scope: !46) -// CHECK:STDOUT: !57 = !DILocation(line: 40, column: 3, scope: !46) -// CHECK:STDOUT: !58 = !DILocation(line: 42, column: 3, scope: !46) -// CHECK:STDOUT: !59 = !DILocation(line: 43, column: 3, scope: !46) -// CHECK:STDOUT: !60 = !DILocation(line: 30, column: 3, scope: !46) -// CHECK:STDOUT: !61 = !DILocation(line: 35, column: 5, scope: !46) -// CHECK:STDOUT: !62 = !DILocation(line: 35, column: 3, scope: !46) -// CHECK:STDOUT: !63 = !DILocation(line: 37, column: 5, scope: !46) -// CHECK:STDOUT: !64 = !DILocation(line: 37, column: 3, scope: !46) -// CHECK:STDOUT: !65 = !DILocation(line: 39, column: 5, scope: !46) -// CHECK:STDOUT: !66 = !DILocation(line: 39, column: 3, scope: !46) -// CHECK:STDOUT: !67 = !DILocation(line: 41, column: 5, scope: !46) -// CHECK:STDOUT: !68 = !DILocation(line: 41, column: 3, scope: !46) -// CHECK:STDOUT: !69 = !DILocation(line: 45, column: 3, scope: !46) -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.073fbce68be6103e", scope: null, file: !1, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !71) -// CHECK:STDOUT: !71 = !{!72} -// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !70, type: !7) -// CHECK:STDOUT: !73 = !DILocation(line: 19, column: 1, scope: !70) -// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c62211f0854a75a", scope: null, file: !1, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !75) -// CHECK:STDOUT: !75 = !{!76} -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !74, type: !7) -// CHECK:STDOUT: !77 = !DILocation(line: 29, column: 3, scope: !74) -// CHECK:STDOUT: !78 = !DILocation(line: 31, column: 5, scope: !74) -// CHECK:STDOUT: !79 = !DILocation(line: 31, column: 3, scope: !74) -// CHECK:STDOUT: !80 = !DILocation(line: 34, column: 3, scope: !74) -// CHECK:STDOUT: !81 = !DILocation(line: 36, column: 3, scope: !74) -// CHECK:STDOUT: !82 = !DILocation(line: 38, column: 3, scope: !74) -// CHECK:STDOUT: !83 = !DILocation(line: 40, column: 3, scope: !74) -// CHECK:STDOUT: !84 = !DILocation(line: 42, column: 3, scope: !74) -// CHECK:STDOUT: !85 = !DILocation(line: 43, column: 3, scope: !74) -// CHECK:STDOUT: !86 = !DILocation(line: 30, column: 3, scope: !74) -// CHECK:STDOUT: !87 = !DILocation(line: 35, column: 5, scope: !74) -// CHECK:STDOUT: !88 = !DILocation(line: 35, column: 3, scope: !74) -// CHECK:STDOUT: !89 = !DILocation(line: 37, column: 5, scope: !74) -// CHECK:STDOUT: !90 = !DILocation(line: 37, column: 3, scope: !74) -// CHECK:STDOUT: !91 = !DILocation(line: 39, column: 5, scope: !74) -// CHECK:STDOUT: !92 = !DILocation(line: 39, column: 3, scope: !74) -// CHECK:STDOUT: !93 = !DILocation(line: 41, column: 5, scope: !74) -// CHECK:STDOUT: !94 = !DILocation(line: 41, column: 3, scope: !74) -// CHECK:STDOUT: !95 = !DILocation(line: 45, column: 3, scope: !74) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 22, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !97) -// CHECK:STDOUT: !97 = !{!98} -// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !96, type: !38) -// CHECK:STDOUT: !99 = !DILocation(line: 23, column: 3, scope: !96) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.71d6c598da8ca542", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !101) -// CHECK:STDOUT: !101 = !{!102} -// CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !100, type: !7) -// CHECK:STDOUT: !103 = !DILocation(line: 23, column: 3, scope: !100) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !105) -// CHECK:STDOUT: !105 = !{!106} -// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !104, type: !7) -// CHECK:STDOUT: !107 = !DILocation(line: 23, column: 3, scope: !104) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.a76b78461416b4a8", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !109) -// CHECK:STDOUT: !109 = !{!110} -// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !108, type: !7) -// CHECK:STDOUT: !111 = !DILocation(line: 23, column: 3, scope: !108) -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.42513763e01cba2c", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !113) -// CHECK:STDOUT: !113 = !{!114} -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !7) -// CHECK:STDOUT: !115 = !DILocation(line: 23, column: 10, scope: !112) -// CHECK:STDOUT: !116 = !DILocation(line: 23, column: 3, scope: !112) +// CHECK:STDOUT: !32 = !DIFile(filename: "call_basic.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{!35, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !{null, !35} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !{null, !34} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.C.Main:Copy.Core", scope: null, file: !32, line: 15, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !50) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !35) +// CHECK:STDOUT: !49 = !DILocation(line: 15, column: 34, scope: !44) +// CHECK:STDOUT: !50 = !{!45} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !32, line: 43, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !35) +// CHECK:STDOUT: !53 = !DILocation(line: 43, column: 3, scope: !51) +// CHECK:STDOUT: !54 = !{!52} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 34, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !35) +// CHECK:STDOUT: !57 = !DILocation(line: 34, column: 3, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !32, line: 48, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !60 = !DILocation(line: 49, column: 3, scope: !59) +// CHECK:STDOUT: !62 = !DILocation(line: 50, column: 3, scope: !59) +// CHECK:STDOUT: !64 = !DILocation(line: 52, column: 5, scope: !59) +// CHECK:STDOUT: !65 = !DILocation(line: 52, column: 3, scope: !59) +// CHECK:STDOUT: !66 = !DILocation(line: 53, column: 18, scope: !59) +// CHECK:STDOUT: !67 = !DILocation(line: 53, column: 16, scope: !59) +// CHECK:STDOUT: !68 = !{!34, !34} +// CHECK:STDOUT: !69 = !DISubroutineType(types: !68) +// CHECK:STDOUT: !72 = !DILocation(line: 54, column: 5, scope: !59) +// CHECK:STDOUT: !73 = !DILocation(line: 54, column: 3, scope: !59) +// CHECK:STDOUT: !74 = !DILocation(line: 55, column: 18, scope: !59) +// CHECK:STDOUT: !75 = !DILocation(line: 55, column: 16, scope: !59) +// CHECK:STDOUT: !78 = !DILocation(line: 48, column: 1, scope: !59) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 53, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !34) +// CHECK:STDOUT: !81 = !DILocation(line: 53, column: 16, scope: !79) +// CHECK:STDOUT: !82 = !{!80} +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !32, line: 19, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !87) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !34) +// CHECK:STDOUT: !86 = !DILocation(line: 19, column: 1, scope: !83) +// CHECK:STDOUT: !87 = !{!84} +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.553a1f59d1dd8381", scope: null, file: !32, line: 28, type: !69, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !121) +// CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !88, type: !34) +// CHECK:STDOUT: !94 = !DILocation(line: 29, column: 3, scope: !88) +// CHECK:STDOUT: !95 = !DILocation(line: 30, column: 3, scope: !88) +// CHECK:STDOUT: !97 = !DILocation(line: 31, column: 5, scope: !88) +// CHECK:STDOUT: !98 = !DILocation(line: 31, column: 3, scope: !88) +// CHECK:STDOUT: !99 = !DILocation(line: 34, column: 3, scope: !88) +// CHECK:STDOUT: !101 = !DILocation(line: 35, column: 5, scope: !88) +// CHECK:STDOUT: !102 = !DILocation(line: 35, column: 3, scope: !88) +// CHECK:STDOUT: !103 = !DILocation(line: 36, column: 3, scope: !88) +// CHECK:STDOUT: !105 = !DILocation(line: 37, column: 5, scope: !88) +// CHECK:STDOUT: !106 = !DILocation(line: 37, column: 3, scope: !88) +// CHECK:STDOUT: !107 = !DILocation(line: 38, column: 3, scope: !88) +// CHECK:STDOUT: !109 = !DILocation(line: 39, column: 5, scope: !88) +// CHECK:STDOUT: !110 = !DILocation(line: 39, column: 3, scope: !88) +// CHECK:STDOUT: !111 = !DILocation(line: 40, column: 3, scope: !88) +// CHECK:STDOUT: !113 = !DILocation(line: 41, column: 5, scope: !88) +// CHECK:STDOUT: !114 = !DILocation(line: 41, column: 3, scope: !88) +// CHECK:STDOUT: !115 = !DILocation(line: 42, column: 3, scope: !88) +// CHECK:STDOUT: !118 = !DILocation(line: 43, column: 3, scope: !88) +// CHECK:STDOUT: !120 = !DILocation(line: 45, column: 3, scope: !88) +// CHECK:STDOUT: !121 = !{!89} +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.073fbce68be6103e", scope: null, file: !32, line: 19, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !126) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !122, type: !35) +// CHECK:STDOUT: !125 = !DILocation(line: 19, column: 1, scope: !122) +// CHECK:STDOUT: !126 = !{!123} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c62211f0854a75a", scope: null, file: !32, line: 28, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !160) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !35) +// CHECK:STDOUT: !133 = !DILocation(line: 29, column: 3, scope: !127) +// CHECK:STDOUT: !134 = !DILocation(line: 30, column: 3, scope: !127) +// CHECK:STDOUT: !136 = !DILocation(line: 31, column: 5, scope: !127) +// CHECK:STDOUT: !137 = !DILocation(line: 31, column: 3, scope: !127) +// CHECK:STDOUT: !138 = !DILocation(line: 34, column: 3, scope: !127) +// CHECK:STDOUT: !140 = !DILocation(line: 35, column: 5, scope: !127) +// CHECK:STDOUT: !141 = !DILocation(line: 35, column: 3, scope: !127) +// CHECK:STDOUT: !142 = !DILocation(line: 36, column: 3, scope: !127) +// CHECK:STDOUT: !144 = !DILocation(line: 37, column: 5, scope: !127) +// CHECK:STDOUT: !145 = !DILocation(line: 37, column: 3, scope: !127) +// CHECK:STDOUT: !146 = !DILocation(line: 38, column: 3, scope: !127) +// CHECK:STDOUT: !148 = !DILocation(line: 39, column: 5, scope: !127) +// CHECK:STDOUT: !149 = !DILocation(line: 39, column: 3, scope: !127) +// CHECK:STDOUT: !150 = !DILocation(line: 40, column: 3, scope: !127) +// CHECK:STDOUT: !152 = !DILocation(line: 41, column: 5, scope: !127) +// CHECK:STDOUT: !153 = !DILocation(line: 41, column: 3, scope: !127) +// CHECK:STDOUT: !154 = !DILocation(line: 42, column: 3, scope: !127) +// CHECK:STDOUT: !157 = !DILocation(line: 43, column: 3, scope: !127) +// CHECK:STDOUT: !159 = !DILocation(line: 45, column: 3, scope: !127) +// CHECK:STDOUT: !160 = !{!128} +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4d6ceefeb7f772f4", scope: null, file: !32, line: 22, type: !69, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !168) +// CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !34) +// CHECK:STDOUT: !167 = !DILocation(line: 23, column: 3, scope: !161) +// CHECK:STDOUT: !168 = !{!162} +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.71d6c598da8ca542", scope: null, file: !32, line: 22, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !176) +// CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !35) +// CHECK:STDOUT: !175 = !DILocation(line: 23, column: 3, scope: !169) +// CHECK:STDOUT: !176 = !{!170} +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.c5e4ba542a56b71f", scope: null, file: !32, line: 22, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !184) +// CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !177, type: !35) +// CHECK:STDOUT: !183 = !DILocation(line: 23, column: 3, scope: !177) +// CHECK:STDOUT: !184 = !{!178} +// CHECK:STDOUT: !185 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.a76b78461416b4a8", scope: null, file: !32, line: 22, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !192) +// CHECK:STDOUT: !186 = !DILocalVariable(arg: 1, scope: !185, type: !35) +// CHECK:STDOUT: !191 = !DILocation(line: 23, column: 3, scope: !185) +// CHECK:STDOUT: !192 = !{!186} +// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.42513763e01cba2c", scope: null, file: !32, line: 22, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !216) +// CHECK:STDOUT: !210 = !DILocalVariable(arg: 1, scope: !209, type: !35) +// CHECK:STDOUT: !214 = !DILocation(line: 23, column: 10, scope: !209) +// CHECK:STDOUT: !215 = !DILocation(line: 23, column: 3, scope: !209) +// CHECK:STDOUT: !216 = !{!210} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon index 67bbc87fedbc..958118056657 100644 --- a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon @@ -41,57 +41,57 @@ fn M() -> i32 { // CHECK:STDOUT: source_filename = "call_basic_depth.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CM.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %m.var = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !8 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !9 -// CHECK:STDOUT: store i32 poison, ptr %m.var, align 4, !dbg !9 -// CHECK:STDOUT: %.loc34 = load i32, ptr %n.var, align 4, !dbg !10 -// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc34), !dbg !11 -// CHECK:STDOUT: %.loc35_9 = load i32, ptr %n.var, align 4, !dbg !12 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.553a1f59d1dd8381(i32 %.loc35_9), !dbg !13 -// CHECK:STDOUT: store i32 %G.call, ptr %m.var, align 4, !dbg !14 -// CHECK:STDOUT: %.loc36 = load i32, ptr %m.var, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %m.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc36, !dbg !16 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !28 +// CHECK:STDOUT: %m.var = alloca i32, align 4, !dbg !30 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !28 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !30 +// CHECK:STDOUT: store i32 poison, ptr %m.var, align 4, !dbg !30 +// CHECK:STDOUT: %.loc34 = load i32, ptr %n.var, align 4, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc34), !dbg !33 +// CHECK:STDOUT: %.loc35_9 = load i32, ptr %n.var, align 4, !dbg !35 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.553a1f59d1dd8381(i32 %.loc35_9), !dbg !36 +// CHECK:STDOUT: store i32 %G.call, ptr %m.var, align 4, !dbg !34 +// CHECK:STDOUT: %.loc36 = load i32, ptr %m.var, align 4, !dbg !39 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %m.var), !dbg !30 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !28 +// CHECK:STDOUT: ret i32 %.loc36, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !23 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.553a1f59d1dd8381(i32 %x) #0 !dbg !27 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.553a1f59d1dd8381(i32 %x) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc25_6.3.temp = alloca i32, align 4, !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_6.3.temp), !dbg !32 -// CHECK:STDOUT: %H.call = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x), !dbg !32 -// CHECK:STDOUT: store i32 %H.call, ptr %.loc25_6.3.temp, align 4, !dbg !32 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc25_6.3.temp), !dbg !32 -// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !33 -// CHECK:STDOUT: ret i32 %x, !dbg !34 +// CHECK:STDOUT: %.loc25_6.3.temp = alloca i32, align 4, !dbg !56 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_6.3.temp), !dbg !56 +// CHECK:STDOUT: %H.call = call i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x), !dbg !56 +// CHECK:STDOUT: store i32 %H.call, ptr %.loc25_6.3.temp, align 4, !dbg !56 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc25_6.3.temp), !dbg !56 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !58 +// CHECK:STDOUT: ret i32 %x, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !35 { +// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !38 -// CHECK:STDOUT: ret i32 %x, !dbg !39 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !68 +// CHECK:STDOUT: ret i32 %x, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -101,47 +101,47 @@ fn M() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_basic_depth.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 31, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 32, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 34, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 34, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 35, column: 9, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 35, column: 7, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 35, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 36, column: 10, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 35, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !7} -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 35, column: 7, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !1, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 16, column: 1, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.553a1f59d1dd8381", scope: null, file: !1, line: 24, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{!7, !7} -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !32 = !DILocation(line: 25, column: 3, scope: !27) -// CHECK:STDOUT: !33 = !DILocation(line: 26, column: 3, scope: !27) -// CHECK:STDOUT: !34 = !DILocation(line: 27, column: 3, scope: !27) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 19, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !7) -// CHECK:STDOUT: !38 = !DILocation(line: 20, column: 3, scope: !35) -// CHECK:STDOUT: !39 = !DILocation(line: 21, column: 3, scope: !35) +// CHECK:STDOUT: !18 = !DIFile(filename: "call_basic_depth.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !18, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !28 = !DILocation(line: 31, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 32, column: 3, scope: !25) +// CHECK:STDOUT: !32 = !DILocation(line: 34, column: 5, scope: !25) +// CHECK:STDOUT: !33 = !DILocation(line: 34, column: 3, scope: !25) +// CHECK:STDOUT: !34 = !DILocation(line: 35, column: 3, scope: !25) +// CHECK:STDOUT: !35 = !DILocation(line: 35, column: 9, scope: !25) +// CHECK:STDOUT: !36 = !DILocation(line: 35, column: 7, scope: !25) +// CHECK:STDOUT: !37 = !{!20, !20} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !DILocation(line: 36, column: 10, scope: !25) +// CHECK:STDOUT: !40 = !DILocation(line: 36, column: 3, scope: !25) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 35, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 35, column: 7, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !20) +// CHECK:STDOUT: !48 = !DILocation(line: 16, column: 1, scope: !45) +// CHECK:STDOUT: !49 = !{!46} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.553a1f59d1dd8381", scope: null, file: !18, line: 24, type: !38, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !20) +// CHECK:STDOUT: !56 = !DILocation(line: 25, column: 3, scope: !50) +// CHECK:STDOUT: !58 = !DILocation(line: 26, column: 3, scope: !50) +// CHECK:STDOUT: !60 = !DILocation(line: 27, column: 3, scope: !50) +// CHECK:STDOUT: !61 = !{!51} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4d6ceefeb7f772f4", scope: null, file: !18, line: 19, type: !38, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !20) +// CHECK:STDOUT: !68 = !DILocation(line: 20, column: 3, scope: !62) +// CHECK:STDOUT: !70 = !DILocation(line: 21, column: 3, scope: !62) +// CHECK:STDOUT: !71 = !{!63} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon b/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon index 211941970a66..f2044ccccefc 100644 --- a/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon +++ b/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon @@ -28,33 +28,33 @@ fn M() { // CHECK:STDOUT: source_filename = "call_dedup_ptr.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !7 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !8 -// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !7 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !7 -// CHECK:STDOUT: %.loc19_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !10 -// CHECK:STDOUT: %F.call.loc19 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc19_5), !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !8 -// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !8 -// CHECK:STDOUT: %.loc21_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !12 -// CHECK:STDOUT: %F.call.loc21 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc21_5), !dbg !13 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !9 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !9 -// CHECK:STDOUT: %.loc23_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !14 -// CHECK:STDOUT: %F.call.loc23 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc23_5), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !37 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !44 +// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !48 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !37 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !37 +// CHECK:STDOUT: %.loc19_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !39 +// CHECK:STDOUT: %F.call.loc19 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc19_5), !dbg !40 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !44 +// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !44 +// CHECK:STDOUT: %.loc21_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !46 +// CHECK:STDOUT: %F.call.loc21 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc21_5), !dbg !47 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !48 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !48 +// CHECK:STDOUT: %.loc23_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !50 +// CHECK:STDOUT: %F.call.loc23 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc23_5), !dbg !51 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x) #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %x, !dbg !23 +// CHECK:STDOUT: ret ptr %x, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -64,31 +64,31 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_dedup_ptr.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 21, column: 5, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 5, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 1, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !1, line: 13, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{!20, !20} -// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !17, type: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 14, column: 3, scope: !17) +// CHECK:STDOUT: !32 = !DIFile(filename: "call_dedup_ptr.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !{null} +// CHECK:STDOUT: !35 = !DISubroutineType(types: !34) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !32, line: 17, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !37 = !DILocation(line: 18, column: 3, scope: !36) +// CHECK:STDOUT: !39 = !DILocation(line: 19, column: 5, scope: !36) +// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 3, scope: !36) +// CHECK:STDOUT: !41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !42 = !{!41, !41} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = !DILocation(line: 20, column: 3, scope: !36) +// CHECK:STDOUT: !46 = !DILocation(line: 21, column: 5, scope: !36) +// CHECK:STDOUT: !47 = !DILocation(line: 21, column: 3, scope: !36) +// CHECK:STDOUT: !48 = !DILocation(line: 22, column: 3, scope: !36) +// CHECK:STDOUT: !50 = !DILocation(line: 23, column: 5, scope: !36) +// CHECK:STDOUT: !51 = !DILocation(line: 23, column: 3, scope: !36) +// CHECK:STDOUT: !52 = !DILocation(line: 17, column: 1, scope: !36) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !32, line: 13, type: !43, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !60) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !41) +// CHECK:STDOUT: !59 = !DILocation(line: 14, column: 3, scope: !53) +// CHECK:STDOUT: !60 = !{!54} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon index 1d60ca3ad099..a81a780ca9ba 100644 --- a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon +++ b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon @@ -47,92 +47,92 @@ fn M() { // CHECK:STDOUT: %type.26 = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !7 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !7 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !8 -// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !8 -// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @_CF.Main.553a1f59d1dd8381(ptr %.loc39_5), !dbg !10 -// CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.2c62211f0854a75a(ptr %.loc40_5), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !43 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !43 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !45 +// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !45 +// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !47 +// CHECK:STDOUT: call void @_CF.Main.553a1f59d1dd8381(ptr %.loc39_5), !dbg !48 +// CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !49 +// CHECK:STDOUT: call void @_CF.Main.2c62211f0854a75a(ptr %.loc40_5), !dbg !50 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type.26 @_CA.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !31 -// CHECK:STDOUT: call void @_CB.Main.553a1f59d1dd8381(ptr %x), !dbg !32 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: %A.call = call %type.26 @_CA.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !63 +// CHECK:STDOUT: call void @_CB.Main.553a1f59d1dd8381(ptr %x), !dbg !67 +// CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2c62211f0854a75a(ptr %x) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2c62211f0854a75a(ptr %x) #0 !dbg !70 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type.26 @_CA.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !37 -// CHECK:STDOUT: call void @_CB.Main.2c62211f0854a75a(ptr %x), !dbg !38 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: %A.call = call %type.26 @_CA.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !73 +// CHECK:STDOUT: call void @_CB.Main.2c62211f0854a75a(ptr %x), !dbg !75 +// CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type.26 @_CA.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !40 { +// CHECK:STDOUT: define linkonce_odr %type.26 @_CA.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.26 %x, !dbg !45 +// CHECK:STDOUT: ret %type.26 %x, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc27_7.3.temp = alloca i32, align 4, !dbg !49 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !49 -// CHECK:STDOUT: %.loc27_5.2 = load i32, ptr %x, align 4, !dbg !50 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %.loc27_5.2), !dbg !49 -// CHECK:STDOUT: store i32 %D.call, ptr %.loc27_7.3.temp, align 4, !dbg !49 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !49 -// CHECK:STDOUT: ret void, !dbg !51 +// CHECK:STDOUT: %.loc27_7.3.temp = alloca i32, align 4, !dbg !91 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !91 +// CHECK:STDOUT: %.loc27_5.2 = load i32, ptr %x, align 4, !dbg !90 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %.loc27_5.2), !dbg !91 +// CHECK:STDOUT: store i32 %D.call, ptr %.loc27_7.3.temp, align 4, !dbg !91 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !91 +// CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2c62211f0854a75a(ptr %x) #0 !dbg !52 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2c62211f0854a75a(ptr %x) #0 !dbg !96 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc27_7.3.temp = alloca double, align 8, !dbg !55 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !55 -// CHECK:STDOUT: %.loc27_5.2 = load double, ptr %x, align 8, !dbg !56 -// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %.loc27_5.2), !dbg !55 -// CHECK:STDOUT: store double %D.call, ptr %.loc27_7.3.temp, align 8, !dbg !55 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !55 -// CHECK:STDOUT: ret void, !dbg !57 +// CHECK:STDOUT: %.loc27_7.3.temp = alloca double, align 8, !dbg !101 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !101 +// CHECK:STDOUT: %.loc27_5.2 = load double, ptr %x, align 8, !dbg !100 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %.loc27_5.2), !dbg !101 +// CHECK:STDOUT: store double %D.call, ptr %.loc27_7.3.temp, align 8, !dbg !101 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc27_7.3.temp), !dbg !101 +// CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !58 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !104 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !63 +// CHECK:STDOUT: ret i32 %x, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x) #0 !dbg !64 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x) #0 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret double %x, !dbg !67 +// CHECK:STDOUT: ret double %x, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -142,75 +142,75 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_deref_ptr.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 37, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 39, column: 5, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 39, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 40, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 40, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 35, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 39, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 39, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 40, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !24} -// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 40, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.553a1f59d1dd8381", scope: null, file: !1, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 31, column: 3, scope: !28) -// CHECK:STDOUT: !32 = !DILocation(line: 32, column: 3, scope: !28) -// CHECK:STDOUT: !33 = !DILocation(line: 30, column: 1, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2c62211f0854a75a", scope: null, file: !1, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !24) -// CHECK:STDOUT: !37 = !DILocation(line: 31, column: 3, scope: !34) -// CHECK:STDOUT: !38 = !DILocation(line: 32, column: 3, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 30, column: 1, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.71d6c598da8ca542", scope: null, file: !1, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !41 = !DISubroutineType(types: !42) -// CHECK:STDOUT: !42 = !{!24, !24} -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !40, type: !24) -// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 3, scope: !40) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.553a1f59d1dd8381", scope: null, file: !1, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !47) -// CHECK:STDOUT: !47 = !{!48} -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !24) -// CHECK:STDOUT: !49 = !DILocation(line: 27, column: 3, scope: !46) -// CHECK:STDOUT: !50 = !DILocation(line: 27, column: 5, scope: !46) -// CHECK:STDOUT: !51 = !DILocation(line: 26, column: 1, scope: !46) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2c62211f0854a75a", scope: null, file: !1, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !53) -// CHECK:STDOUT: !53 = !{!54} -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !24) -// CHECK:STDOUT: !55 = !DILocation(line: 27, column: 3, scope: !52) -// CHECK:STDOUT: !56 = !DILocation(line: 27, column: 5, scope: !52) -// CHECK:STDOUT: !57 = !DILocation(line: 26, column: 1, scope: !52) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 22, type: !59, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !61) -// CHECK:STDOUT: !59 = !DISubroutineType(types: !60) -// CHECK:STDOUT: !60 = !{!17, !17} -// CHECK:STDOUT: !61 = !{!62} -// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !58, type: !17) -// CHECK:STDOUT: !63 = !DILocation(line: 23, column: 3, scope: !58) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !65) -// CHECK:STDOUT: !65 = !{!66} -// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !24) -// CHECK:STDOUT: !67 = !DILocation(line: 23, column: 3, scope: !64) +// CHECK:STDOUT: !32 = !DIFile(filename: "call_deref_ptr.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{null} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !{null, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{null, !39} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !32, line: 35, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !43 = !DILocation(line: 36, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !DILocation(line: 37, column: 3, scope: !42) +// CHECK:STDOUT: !47 = !DILocation(line: 39, column: 5, scope: !42) +// CHECK:STDOUT: !48 = !DILocation(line: 39, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 40, column: 5, scope: !42) +// CHECK:STDOUT: !50 = !DILocation(line: 40, column: 3, scope: !42) +// CHECK:STDOUT: !51 = !DILocation(line: 35, column: 1, scope: !42) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !55) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !34) +// CHECK:STDOUT: !54 = !DILocation(line: 39, column: 3, scope: !52) +// CHECK:STDOUT: !55 = !{!53} +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 40, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !59) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !39) +// CHECK:STDOUT: !58 = !DILocation(line: 40, column: 3, scope: !56) +// CHECK:STDOUT: !59 = !{!57} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.553a1f59d1dd8381", scope: null, file: !32, line: 30, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !69) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !39) +// CHECK:STDOUT: !63 = !DILocation(line: 31, column: 3, scope: !60) +// CHECK:STDOUT: !64 = !{!39, !39} +// CHECK:STDOUT: !65 = !DISubroutineType(types: !64) +// CHECK:STDOUT: !67 = !DILocation(line: 32, column: 3, scope: !60) +// CHECK:STDOUT: !68 = !DILocation(line: 30, column: 1, scope: !60) +// CHECK:STDOUT: !69 = !{!61} +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2c62211f0854a75a", scope: null, file: !32, line: 30, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !77) +// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !70, type: !39) +// CHECK:STDOUT: !73 = !DILocation(line: 31, column: 3, scope: !70) +// CHECK:STDOUT: !75 = !DILocation(line: 32, column: 3, scope: !70) +// CHECK:STDOUT: !76 = !DILocation(line: 30, column: 1, scope: !70) +// CHECK:STDOUT: !77 = !{!71} +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.71d6c598da8ca542", scope: null, file: !32, line: 18, type: !65, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !85) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !39) +// CHECK:STDOUT: !84 = !DILocation(line: 19, column: 3, scope: !78) +// CHECK:STDOUT: !85 = !{!79} +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.553a1f59d1dd8381", scope: null, file: !32, line: 26, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !95) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !39) +// CHECK:STDOUT: !90 = !DILocation(line: 27, column: 5, scope: !86) +// CHECK:STDOUT: !91 = !DILocation(line: 27, column: 3, scope: !86) +// CHECK:STDOUT: !92 = !{!34, !34} +// CHECK:STDOUT: !93 = !DISubroutineType(types: !92) +// CHECK:STDOUT: !94 = !DILocation(line: 26, column: 1, scope: !86) +// CHECK:STDOUT: !95 = !{!87} +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2c62211f0854a75a", scope: null, file: !32, line: 26, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !103) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !39) +// CHECK:STDOUT: !100 = !DILocation(line: 27, column: 5, scope: !96) +// CHECK:STDOUT: !101 = !DILocation(line: 27, column: 3, scope: !96) +// CHECK:STDOUT: !102 = !DILocation(line: 26, column: 1, scope: !96) +// CHECK:STDOUT: !103 = !{!97} +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !32, line: 22, type: !93, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !111) +// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !34) +// CHECK:STDOUT: !110 = !DILocation(line: 23, column: 3, scope: !104) +// CHECK:STDOUT: !111 = !{!105} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !32, line: 22, type: !65, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !119) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !39) +// CHECK:STDOUT: !118 = !DILocation(line: 23, column: 3, scope: !112) +// CHECK:STDOUT: !119 = !{!113} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon b/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon index 6c2df0d8b089..2704fa2b6889 100644 --- a/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon @@ -42,29 +42,29 @@ fn H() { // CHECK:STDOUT: source_filename = "call_different_associated_const.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.0676fa98bb7dbd66(), !dbg !7 -// CHECK:STDOUT: call void @_CG.Main.3e979ea3a37f4bf1(), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: call void @_CG.Main.0676fa98bb7dbd66(), !dbg !37 +// CHECK:STDOUT: call void @_CG.Main.3e979ea3a37f4bf1(), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.0676fa98bb7dbd66() #0 !dbg !10 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.0676fa98bb7dbd66() #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !11 -// CHECK:STDOUT: store ptr poison, ptr %_.var, align 8, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !41 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !41 +// CHECK:STDOUT: store ptr poison, ptr %_.var, align 8, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.3e979ea3a37f4bf1() #0 !dbg !13 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.3e979ea3a37f4bf1() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: store ptr poison, ptr %_.var, align 8, !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !45 +// CHECK:STDOUT: store ptr poison, ptr %_.var, align 8, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -76,23 +76,23 @@ fn H() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_different_associated_const.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !1, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 37, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 35, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.0676fa98bb7dbd66", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 23, column: 3, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 1, scope: !10) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.3e979ea3a37f4bf1", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 3, scope: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 22, column: 1, scope: !13) +// CHECK:STDOUT: !32 = !DIFile(filename: "call_different_associated_const.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !{null} +// CHECK:STDOUT: !35 = !DISubroutineType(types: !34) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !32, line: 35, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !37 = !DILocation(line: 36, column: 3, scope: !36) +// CHECK:STDOUT: !38 = !DILocation(line: 37, column: 3, scope: !36) +// CHECK:STDOUT: !39 = !DILocation(line: 35, column: 1, scope: !36) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.0676fa98bb7dbd66", scope: null, file: !32, line: 22, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !41 = !DILocation(line: 23, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !DILocation(line: 22, column: 1, scope: !40) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.3e979ea3a37f4bf1", scope: null, file: !32, line: 22, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !DILocation(line: 22, column: 1, scope: !44) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_different_impls.carbon b/toolchain/lower/testdata/function/generic/call_different_impls.carbon index 8e0cf23a6dd4..a05700304e91 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls.carbon @@ -41,41 +41,41 @@ fn Run() { // CHECK:STDOUT: @printf.int.format = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.X.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.X.Main:I.Main"() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !12 +// CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.Y.Main:I.Main"() #0 !dbg !9 { +// CHECK:STDOUT: define void @"_CF.Y.Main:I.Main"() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.d0cc85b6c89517e3(), !dbg !16 -// CHECK:STDOUT: call void @_CG.Main.e8d4d639bae9ba40(), !dbg !17 -// CHECK:STDOUT: ret i32 0, !dbg !18 +// CHECK:STDOUT: call void @_CG.Main.d0cc85b6c89517e3(), !dbg !18 +// CHECK:STDOUT: call void @_CG.Main.e8d4d639bae9ba40(), !dbg !19 +// CHECK:STDOUT: ret i32 0, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.d0cc85b6c89517e3() #0 !dbg !19 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.d0cc85b6c89517e3() #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(), !dbg !22 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.e8d4d639bae9ba40() #0 !dbg !22 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.e8d4d639bae9ba40() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.Y.Main:I.Main"(), !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: call void @"_CF.Y.Main:I.Main"(), !dbg !25 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -83,32 +83,32 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_different_impls.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 21, column: 12, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !1, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 25, column: 12, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 25, column: 3, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 32, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 33, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 34, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 32, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.d0cc85b6c89517e3", scope: null, file: !1, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !20 = !DILocation(line: 30, column: 22, scope: !19) -// CHECK:STDOUT: !21 = !DILocation(line: 30, column: 1, scope: !19) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8d4d639bae9ba40", scope: null, file: !1, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !23 = !DILocation(line: 30, column: 22, scope: !22) -// CHECK:STDOUT: !24 = !DILocation(line: 30, column: 1, scope: !22) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_different_impls.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{!6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !4, line: 21, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !12 = !DILocation(line: 21, column: 12, scope: !11) +// CHECK:STDOUT: !13 = !DILocation(line: 21, column: 3, scope: !11) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !4, line: 25, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 25, column: 12, scope: !14) +// CHECK:STDOUT: !16 = !DILocation(line: 25, column: 3, scope: !14) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !4, line: 32, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !18 = !DILocation(line: 33, column: 3, scope: !17) +// CHECK:STDOUT: !19 = !DILocation(line: 34, column: 3, scope: !17) +// CHECK:STDOUT: !20 = !DILocation(line: 32, column: 1, scope: !17) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.d0cc85b6c89517e3", scope: null, file: !4, line: 30, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !22 = !DILocation(line: 30, column: 22, scope: !21) +// CHECK:STDOUT: !23 = !DILocation(line: 30, column: 1, scope: !21) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8d4d639bae9ba40", scope: null, file: !4, line: 30, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !25 = !DILocation(line: 30, column: 22, scope: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 30, column: 1, scope: !24) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon index 8e376c1c34f2..766a93573fca 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon @@ -50,58 +50,58 @@ fn Run() { // CHECK:STDOUT: @printf.int.format = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @"_CF.X.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define i1 @"_CF.X.Main:I.Main"() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !8 -// CHECK:STDOUT: ret i1 false, !dbg !9 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !17 +// CHECK:STDOUT: ret i1 false, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.Y.Main:I.Main"() #0 !dbg !17 { +// CHECK:STDOUT: define i32 @"_CF.Y.Main:I.Main"() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !20 -// CHECK:STDOUT: ret i32 2, !dbg !21 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !26 +// CHECK:STDOUT: ret i32 2, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !22 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.d0cc85b6c89517e3(), !dbg !23 -// CHECK:STDOUT: call void @_CG.Main.e8d4d639bae9ba40(), !dbg !24 -// CHECK:STDOUT: ret i32 0, !dbg !25 +// CHECK:STDOUT: call void @_CG.Main.d0cc85b6c89517e3(), !dbg !29 +// CHECK:STDOUT: call void @_CG.Main.e8d4d639bae9ba40(), !dbg !32 +// CHECK:STDOUT: ret i32 0, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.d0cc85b6c89517e3() #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.d0cc85b6c89517e3() #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc38_20.1.temp = alloca i1, align 1, !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc38_20.1.temp), !dbg !29 -// CHECK:STDOUT: %I.WithSelf.F.call = call i1 @"_CF.X.Main:I.Main"(), !dbg !29 -// CHECK:STDOUT: %.loc38_20.2 = zext i1 %I.WithSelf.F.call to i8, !dbg !29 -// CHECK:STDOUT: store i8 %.loc38_20.2, ptr %.loc38_20.1.temp, align 1, !dbg !29 -// CHECK:STDOUT: %.loc38_20.3 = load i8, ptr %.loc38_20.1.temp, align 1, !dbg !29 -// CHECK:STDOUT: %.loc38_20.31 = trunc i8 %.loc38_20.3 to i1, !dbg !29 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %.loc38_20.1.temp = alloca i1, align 1, !dbg !35 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc38_20.1.temp), !dbg !35 +// CHECK:STDOUT: %I.WithSelf.F.call = call i1 @"_CF.X.Main:I.Main"(), !dbg !35 +// CHECK:STDOUT: %.loc38_20.2 = zext i1 %I.WithSelf.F.call to i8, !dbg !35 +// CHECK:STDOUT: store i8 %.loc38_20.2, ptr %.loc38_20.1.temp, align 1, !dbg !35 +// CHECK:STDOUT: %.loc38_20.3 = load i8, ptr %.loc38_20.1.temp, align 1, !dbg !35 +// CHECK:STDOUT: %.loc38_20.31 = trunc i8 %.loc38_20.3 to i1, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.e8d4d639bae9ba40() #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.e8d4d639bae9ba40() #0 !dbg !39 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc38_20.1.temp = alloca i32, align 4, !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc38_20.1.temp), !dbg !32 -// CHECK:STDOUT: %I.WithSelf.F.call = call i32 @"_CF.Y.Main:I.Main"(), !dbg !32 -// CHECK:STDOUT: store i32 %I.WithSelf.F.call, ptr %.loc38_20.1.temp, align 4, !dbg !32 -// CHECK:STDOUT: %.loc38_20.3 = load i32, ptr %.loc38_20.1.temp, align 4, !dbg !32 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc38_20.1.temp), !dbg !32 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: %.loc38_20.1.temp = alloca i32, align 4, !dbg !40 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc38_20.1.temp), !dbg !40 +// CHECK:STDOUT: %I.WithSelf.F.call = call i32 @"_CF.Y.Main:I.Main"(), !dbg !40 +// CHECK:STDOUT: store i32 %I.WithSelf.F.call, ptr %.loc38_20.1.temp, align 4, !dbg !40 +// CHECK:STDOUT: %.loc38_20.3 = load i32, ptr %.loc38_20.1.temp, align 4, !dbg !40 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc38_20.1.temp), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -114,41 +114,41 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_different_impls_with_const.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} +// CHECK:STDOUT: !4 = !DIFile(filename: "call_different_impls_with_const.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 23, column: 5, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 24, column: 5, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 28, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 28, column: 24, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !1, line: 29, type: !18, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{!13} -// CHECK:STDOUT: !20 = !DILocation(line: 30, column: 5, scope: !17) -// CHECK:STDOUT: !21 = !DILocation(line: 31, column: 5, scope: !17) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 41, type: !18, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !23 = !DILocation(line: 42, column: 3, scope: !22) -// CHECK:STDOUT: !24 = !DILocation(line: 43, column: 3, scope: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 41, column: 1, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.d0cc85b6c89517e3", scope: null, file: !1, line: 37, type: !27, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null} -// CHECK:STDOUT: !29 = !DILocation(line: 38, column: 16, scope: !26) -// CHECK:STDOUT: !30 = !DILocation(line: 37, column: 1, scope: !26) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8d4d639bae9ba40", scope: null, file: !1, line: 37, type: !27, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !32 = !DILocation(line: 38, column: 16, scope: !31) -// CHECK:STDOUT: !33 = !DILocation(line: 37, column: 1, scope: !31) +// CHECK:STDOUT: !8 = !{!7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{null, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{!6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !4, line: 22, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 23, column: 5, scope: !14) +// CHECK:STDOUT: !18 = !DILocation(line: 24, column: 5, scope: !14) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 28, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !6) +// CHECK:STDOUT: !21 = !DILocation(line: 28, column: 24, scope: !19) +// CHECK:STDOUT: !22 = !{!20} +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !4, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !26 = !DILocation(line: 30, column: 5, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 31, column: 5, scope: !23) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !4, line: 41, type: !13, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !29 = !DILocation(line: 42, column: 3, scope: !28) +// CHECK:STDOUT: !30 = !{null} +// CHECK:STDOUT: !31 = !DISubroutineType(types: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 43, column: 3, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 41, column: 1, scope: !28) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.d0cc85b6c89517e3", scope: null, file: !4, line: 37, type: !31, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !35 = !DILocation(line: 38, column: 16, scope: !34) +// CHECK:STDOUT: !38 = !DILocation(line: 37, column: 1, scope: !34) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8d4d639bae9ba40", scope: null, file: !4, line: 37, type: !31, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !40 = !DILocation(line: 38, column: 16, scope: !39) +// CHECK:STDOUT: !43 = !DILocation(line: 37, column: 1, scope: !39) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_different_specific.carbon b/toolchain/lower/testdata/function/generic/call_different_specific.carbon index e10f7eaf0841..941d9161bfe0 100644 --- a/toolchain/lower/testdata/function/generic/call_different_specific.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_specific.carbon @@ -51,84 +51,84 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: %type.0 = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main(ptr %ptr_i32, ptr %ptr_f64) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main(ptr %ptr_i32, ptr %ptr_f64) #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.553a1f59d1dd8381(ptr %ptr_i32), !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.2c62211f0854a75a(ptr %ptr_f64), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @_CF.Main.553a1f59d1dd8381(ptr %ptr_i32), !dbg !20 +// CHECK:STDOUT: call void @_CF.Main.2c62211f0854a75a(ptr %ptr_f64), !dbg !22 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !27 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type.0 @_CA.Main.71d6c598da8ca542(%type.0 zeroinitializer), !dbg !30 -// CHECK:STDOUT: call void @_CB.Main.553a1f59d1dd8381(ptr %x), !dbg !31 -// CHECK:STDOUT: ret void, !dbg !32 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2c62211f0854a75a(ptr %x) #0 !dbg !33 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type.0 @_CA.Main.71d6c598da8ca542(%type.0 zeroinitializer), !dbg !36 -// CHECK:STDOUT: call void @_CB.Main.2c62211f0854a75a(ptr %x), !dbg !37 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: call void @_CB.Main.553a1f59d1dd8381(ptr %x), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type.0 @_CA.Main.71d6c598da8ca542(%type.0 %x) #0 !dbg !39 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2c62211f0854a75a(ptr %x) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.0 %x, !dbg !44 +// CHECK:STDOUT: %A.call = call %type.0 @_CA.Main.71d6c598da8ca542(%type.0 zeroinitializer), !dbg !46 +// CHECK:STDOUT: call void @_CB.Main.2c62211f0854a75a(ptr %x), !dbg !48 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr %type.0 @_CA.Main.71d6c598da8ca542(%type.0 %x) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc34_7.3.temp = alloca i32, align 4, !dbg !48 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !48 -// CHECK:STDOUT: %.loc34_5.2 = load i32, ptr %x, align 4, !dbg !49 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %.loc34_5.2), !dbg !48 -// CHECK:STDOUT: store i32 %D.call, ptr %.loc34_7.3.temp, align 4, !dbg !48 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !48 -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: ret %type.0 %x, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2c62211f0854a75a(ptr %x) #0 !dbg !51 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.553a1f59d1dd8381(ptr %x) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc34_7.3.temp = alloca double, align 8, !dbg !54 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !54 -// CHECK:STDOUT: %.loc34_5.2 = load double, ptr %x, align 8, !dbg !55 -// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %.loc34_5.2), !dbg !54 -// CHECK:STDOUT: store double %D.call, ptr %.loc34_7.3.temp, align 8, !dbg !54 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !54 -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: %.loc34_7.3.temp = alloca i32, align 4, !dbg !64 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !64 +// CHECK:STDOUT: %.loc34_5.2 = load i32, ptr %x, align 4, !dbg !63 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %.loc34_5.2), !dbg !64 +// CHECK:STDOUT: store i32 %D.call, ptr %.loc34_7.3.temp, align 4, !dbg !64 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !64 +// CHECK:STDOUT: ret void, !dbg !67 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2c62211f0854a75a(ptr %x) #0 !dbg !69 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.loc34_7.3.temp = alloca double, align 8, !dbg !74 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !74 +// CHECK:STDOUT: %.loc34_5.2 = load double, ptr %x, align 8, !dbg !73 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %.loc34_5.2), !dbg !74 +// CHECK:STDOUT: store double %D.call, ptr %.loc34_7.3.temp, align 8, !dbg !74 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %.loc34_7.3.temp), !dbg !74 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !57 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !62 +// CHECK:STDOUT: ret i32 %x, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x) #0 !dbg !63 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x) #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret double %x, !dbg !66 +// CHECK:STDOUT: ret double %x, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -138,74 +138,74 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_different_specific.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 42, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} +// CHECK:STDOUT: !4 = !DIFile(filename: "call_different_specific.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 43, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 44, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 42, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 43, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) +// CHECK:STDOUT: !8 = !{null, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{null, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 42, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !24) +// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !14, type: !7) +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !14, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 43, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 44, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !7} -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 44, column: 3, scope: !21) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.553a1f59d1dd8381", scope: null, file: !1, line: 37, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 38, column: 3, scope: !27) -// CHECK:STDOUT: !31 = !DILocation(line: 39, column: 3, scope: !27) -// CHECK:STDOUT: !32 = !DILocation(line: 37, column: 1, scope: !27) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2c62211f0854a75a", scope: null, file: !1, line: 37, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !7) +// CHECK:STDOUT: !22 = !DILocation(line: 44, column: 3, scope: !14) +// CHECK:STDOUT: !23 = !DILocation(line: 42, column: 1, scope: !14) +// CHECK:STDOUT: !24 = !{!15, !16} +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 43, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !28) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !6) +// CHECK:STDOUT: !27 = !DILocation(line: 43, column: 3, scope: !25) +// CHECK:STDOUT: !28 = !{!26} +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 44, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !32) +// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !29, type: !7) +// CHECK:STDOUT: !31 = !DILocation(line: 44, column: 3, scope: !29) +// CHECK:STDOUT: !32 = !{!30} +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.553a1f59d1dd8381", scope: null, file: !4, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !7) // CHECK:STDOUT: !36 = !DILocation(line: 38, column: 3, scope: !33) -// CHECK:STDOUT: !37 = !DILocation(line: 39, column: 3, scope: !33) -// CHECK:STDOUT: !38 = !DILocation(line: 37, column: 1, scope: !33) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.71d6c598da8ca542", scope: null, file: !1, line: 25, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{!7, !7} -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !39, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 26, column: 3, scope: !39) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.553a1f59d1dd8381", scope: null, file: !1, line: 33, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !7) -// CHECK:STDOUT: !48 = !DILocation(line: 34, column: 3, scope: !45) -// CHECK:STDOUT: !49 = !DILocation(line: 34, column: 5, scope: !45) -// CHECK:STDOUT: !50 = !DILocation(line: 33, column: 1, scope: !45) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2c62211f0854a75a", scope: null, file: !1, line: 33, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !52) -// CHECK:STDOUT: !52 = !{!53} -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !51, type: !7) -// CHECK:STDOUT: !54 = !DILocation(line: 34, column: 3, scope: !51) -// CHECK:STDOUT: !55 = !DILocation(line: 34, column: 5, scope: !51) -// CHECK:STDOUT: !56 = !DILocation(line: 33, column: 1, scope: !51) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 29, type: !58, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !60) -// CHECK:STDOUT: !58 = !DISubroutineType(types: !59) -// CHECK:STDOUT: !59 = !{!17, !17} -// CHECK:STDOUT: !60 = !{!61} -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !57, type: !17) -// CHECK:STDOUT: !62 = !DILocation(line: 30, column: 3, scope: !57) -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !64) -// CHECK:STDOUT: !64 = !{!65} -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !63, type: !7) -// CHECK:STDOUT: !66 = !DILocation(line: 30, column: 3, scope: !63) +// CHECK:STDOUT: !37 = !{!7, !7} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !40 = !DILocation(line: 39, column: 3, scope: !33) +// CHECK:STDOUT: !41 = !DILocation(line: 37, column: 1, scope: !33) +// CHECK:STDOUT: !42 = !{!34} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2c62211f0854a75a", scope: null, file: !4, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !7) +// CHECK:STDOUT: !46 = !DILocation(line: 38, column: 3, scope: !43) +// CHECK:STDOUT: !48 = !DILocation(line: 39, column: 3, scope: !43) +// CHECK:STDOUT: !49 = !DILocation(line: 37, column: 1, scope: !43) +// CHECK:STDOUT: !50 = !{!44} +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.71d6c598da8ca542", scope: null, file: !4, line: 25, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !7) +// CHECK:STDOUT: !57 = !DILocation(line: 26, column: 3, scope: !51) +// CHECK:STDOUT: !58 = !{!52} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.553a1f59d1dd8381", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !7) +// CHECK:STDOUT: !63 = !DILocation(line: 34, column: 5, scope: !59) +// CHECK:STDOUT: !64 = !DILocation(line: 34, column: 3, scope: !59) +// CHECK:STDOUT: !65 = !{!6, !6} +// CHECK:STDOUT: !66 = !DISubroutineType(types: !65) +// CHECK:STDOUT: !67 = !DILocation(line: 33, column: 1, scope: !59) +// CHECK:STDOUT: !68 = !{!60} +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2c62211f0854a75a", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !76) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !7) +// CHECK:STDOUT: !73 = !DILocation(line: 34, column: 5, scope: !69) +// CHECK:STDOUT: !74 = !DILocation(line: 34, column: 3, scope: !69) +// CHECK:STDOUT: !75 = !DILocation(line: 33, column: 1, scope: !69) +// CHECK:STDOUT: !76 = !{!70} +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 29, type: !66, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !6) +// CHECK:STDOUT: !83 = !DILocation(line: 30, column: 3, scope: !77) +// CHECK:STDOUT: !84 = !{!78} +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 29, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !92) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !7) +// CHECK:STDOUT: !91 = !DILocation(line: 30, column: 3, scope: !85) +// CHECK:STDOUT: !92 = !{!86} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_impl_function.carbon b/toolchain/lower/testdata/function/generic/call_impl_function.carbon index 7aeae74466f5..5273fddac913 100644 --- a/toolchain/lower/testdata/function/generic/call_impl_function.carbon +++ b/toolchain/lower/testdata/function/generic/call_impl_function.carbon @@ -48,51 +48,51 @@ fn G() { // CHECK:STDOUT: source_filename = "call_impl_function.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main"(i32 %x) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main"(i32 %x) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %x, !dbg !10 -// CHECK:STDOUT: ret i32 %Int.as.Negate.impl.Op.call, !dbg !11 +// CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %x, !dbg !31 +// CHECK:STDOUT: ret i32 %Int.as.Negate.impl.Op.call, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CallGenericMethod.call = call i32 @_CCallGenericMethod.Main.61896b64459d8f86(i32 10), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %CallGenericMethod.call = call i32 @_CCallGenericMethod.Main.61896b64459d8f86(i32 10), !dbg !35 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CCallGenericMethod.Main.61896b64459d8f86(i32 %x) #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr i32 @_CCallGenericMethod.Main.61896b64459d8f86(i32 %x) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SomeInterface.WithSelf.F.call = call i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main"(i32 %x), !dbg !20 -// CHECK:STDOUT: ret i32 %SomeInterface.WithSelf.F.call, !dbg !21 +// CHECK:STDOUT: %SomeInterface.WithSelf.F.call = call i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main"(i32 %x), !dbg !43 +// CHECK:STDOUT: ret i32 %SomeInterface.WithSelf.F.call, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_impl_function.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 23, column: 12, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 23, column: 5, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 39, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 40, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 39, column: 1, scope: !12) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "CallGenericMethod", linkageName: "_CCallGenericMethod.Main.61896b64459d8f86", scope: null, file: !1, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 36, column: 10, scope: !17) -// CHECK:STDOUT: !21 = !DILocation(line: 36, column: 3, scope: !17) +// CHECK:STDOUT: !18 = !DIFile(filename: "call_impl_function.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main", scope: null, file: !18, line: 22, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !31 = !DILocation(line: 23, column: 12, scope: !25) +// CHECK:STDOUT: !32 = !DILocation(line: 23, column: 5, scope: !25) +// CHECK:STDOUT: !33 = !{!26} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 39, type: !24, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !35 = !DILocation(line: 40, column: 3, scope: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 39, column: 1, scope: !34) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "CallGenericMethod", linkageName: "_CCallGenericMethod.Main.61896b64459d8f86", scope: null, file: !18, line: 35, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 36, column: 10, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 36, column: 3, scope: !37) +// CHECK:STDOUT: !45 = !{!38} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_method.carbon b/toolchain/lower/testdata/function/generic/call_method.carbon index 0f180d1129c2..955cde76af85 100644 --- a/toolchain/lower/testdata/function/generic/call_method.carbon +++ b/toolchain/lower/testdata/function/generic/call_method.carbon @@ -29,31 +29,31 @@ fn CallF() -> i32 { // CHECK:STDOUT: @C.val.loc20_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CCallF.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !8 -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc20_3, i64 0, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !9 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !9 -// CHECK:STDOUT: %.loc22_14 = load i32, ptr %n.var, align 4, !dbg !10 -// CHECK:STDOUT: %C.F.call = call i32 @_CF.C.Main.4d6ceefeb7f772f4(ptr %c.var, i32 %.loc22_14), !dbg !11 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !8 -// CHECK:STDOUT: ret i32 %C.F.call, !dbg !12 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !31 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !31 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc20_3, i64 0, i1 false), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !33 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !33 +// CHECK:STDOUT: %.loc22_14 = load i32, ptr %n.var, align 4, !dbg !36 +// CHECK:STDOUT: %C.F.call = call i32 @_CF.C.Main.4d6ceefeb7f772f4(ptr %c.var, i32 %.loc22_14), !dbg !35 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !31 +// CHECK:STDOUT: ret i32 %C.F.call, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -63,9 +63,9 @@ fn CallF() -> i32 { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.C.Main.4d6ceefeb7f772f4(ptr %self, i32 %x) #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.C.Main.4d6ceefeb7f772f4(ptr %self, i32 %x) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !32 +// CHECK:STDOUT: ret i32 %x, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -74,40 +74,40 @@ fn CallF() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_method.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 14, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 21, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !7} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 21, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 20, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{!7, !22, !7} -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !22) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !26, type: !7) -// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 5, scope: !26) +// CHECK:STDOUT: !18 = !DIFile(filename: "call_method.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !18, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 3, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 21, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 22, column: 10, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 22, column: 14, scope: !28) +// CHECK:STDOUT: !37 = !{!20, !25, !20} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !DILocation(line: 22, column: 3, scope: !28) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 21, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) +// CHECK:STDOUT: !42 = !DILocation(line: 21, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !25) +// CHECK:STDOUT: !46 = !DILocation(line: 20, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.4d6ceefeb7f772f4", scope: null, file: !18, line: 14, type: !38, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !25) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !48, type: !20) +// CHECK:STDOUT: !56 = !DILocation(line: 15, column: 5, scope: !48) +// CHECK:STDOUT: !57 = !{!49, !50} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon index edd00120157b..c0cde473b96e 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon @@ -47,64 +47,64 @@ fn M() { // CHECK:STDOUT: @C.val.loc15_43 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.C.Main:Copy.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_COp.C.Main:Copy.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !21 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !15 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !16 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !17 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !18 -// CHECK:STDOUT: %.loc40_9.3.temp = alloca {}, align 1, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !14 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !15 -// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !16 -// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !17 -// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %.loc34_5 = load i32, ptr %n.var, align 4, !dbg !20 -// CHECK:STDOUT: %F.call.loc34 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %.loc34_5, i32 0), !dbg !21 -// CHECK:STDOUT: %.loc35_5 = load double, ptr %m.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc35 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc35_5, i32 0), !dbg !23 -// CHECK:STDOUT: %.loc36_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !24 -// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc36_5, i32 0), !dbg !25 -// CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !26 -// CHECK:STDOUT: %F.call.loc37 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc37_5, i32 0), !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !18 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc40_9.3.temp), !dbg !19 -// CHECK:STDOUT: call void @_CF.Main.42513763e01cba2c(ptr %.loc40_9.3.temp, ptr %c.var, i32 0), !dbg !19 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc40_9.3.temp), !dbg !19 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !24 +// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !26 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !28 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !32 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !48 +// CHECK:STDOUT: %.loc40_9.3.temp = alloca {}, align 1, !dbg !51 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !24 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !24 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !26 +// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !26 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !28 +// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !32 +// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !32 +// CHECK:STDOUT: %.loc34_5 = load i32, ptr %n.var, align 4, !dbg !36 +// CHECK:STDOUT: %F.call.loc34 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %.loc34_5, i32 0), !dbg !37 +// CHECK:STDOUT: %.loc35_5 = load double, ptr %m.var, align 8, !dbg !40 +// CHECK:STDOUT: %F.call.loc35 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc35_5, i32 0), !dbg !41 +// CHECK:STDOUT: %.loc36_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !44 +// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc36_5, i32 0), !dbg !45 +// CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !46 +// CHECK:STDOUT: %F.call.loc37 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc37_5, i32 0), !dbg !47 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !48 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc15_43, i64 0, i1 false), !dbg !48 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc40_9.3.temp), !dbg !51 +// CHECK:STDOUT: call void @_CF.Main.42513763e01cba2c(ptr %.loc40_9.3.temp, ptr %c.var, i32 0), !dbg !51 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %.loc40_9.3.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !48 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !26 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -114,64 +114,64 @@ fn M() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !52 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !53 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !72 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !73 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %x, !dbg !54 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !55 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !56 -// CHECK:STDOUT: ret i32 %F.call, !dbg !57 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !58 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !64 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !65 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret double %x, !dbg !66 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !67 -// CHECK:STDOUT: %F.call = call double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !68 -// CHECK:STDOUT: ret double %F.call, !dbg !69 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !70 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !74 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !75 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret ptr %x, !dbg !76 +// CHECK:STDOUT: ret i32 %x, !dbg !75 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !77 -// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !78 -// CHECK:STDOUT: ret ptr %F.call, !dbg !79 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !78 +// CHECK:STDOUT: ret i32 %F.call, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.42513763e01cba2c(ptr sret({}) %return, ptr %x, i32 %count) #0 !dbg !80 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !84 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !85 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !88 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !89 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: call void @"_COp.C.Main:Copy.Core"(ptr %return, ptr %x), !dbg !86 -// CHECK:STDOUT: ret void, !dbg !87 +// CHECK:STDOUT: ret double %x, !dbg !91 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !88 -// CHECK:STDOUT: call void @_CF.Main.42513763e01cba2c(ptr %return, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !89 -// CHECK:STDOUT: ret void, !dbg !90 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !93 +// CHECK:STDOUT: %F.call = call double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !94 +// CHECK:STDOUT: ret double %F.call, !dbg !95 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !97 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !104 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !105 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %entry +// CHECK:STDOUT: ret ptr %x, !dbg !107 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %entry +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !109 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !110 +// CHECK:STDOUT: ret ptr %F.call, !dbg !111 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.42513763e01cba2c(ptr sret({}) %return, ptr %x, i32 %count) #0 !dbg !129 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !136 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !137 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %entry +// CHECK:STDOUT: call void @"_COp.C.Main:Copy.Core"(ptr %return, ptr %x), !dbg !138 +// CHECK:STDOUT: ret void, !dbg !139 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %entry +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !141 +// CHECK:STDOUT: call void @_CF.Main.42513763e01cba2c(ptr %return, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !142 +// CHECK:STDOUT: ret void, !dbg !143 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -183,98 +183,98 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.C.Main:Copy.Core", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_basic.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 34, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 28, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 29, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 30, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 31, column: 3, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 32, column: 3, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 39, column: 3, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 40, column: 3, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 34, column: 5, scope: !11) -// CHECK:STDOUT: !21 = !DILocation(line: 34, column: 3, scope: !11) -// CHECK:STDOUT: !22 = !DILocation(line: 35, column: 5, scope: !11) -// CHECK:STDOUT: !23 = !DILocation(line: 35, column: 3, scope: !11) -// CHECK:STDOUT: !24 = !DILocation(line: 36, column: 5, scope: !11) -// CHECK:STDOUT: !25 = !DILocation(line: 36, column: 3, scope: !11) -// CHECK:STDOUT: !26 = !DILocation(line: 37, column: 5, scope: !11) -// CHECK:STDOUT: !27 = !DILocation(line: 37, column: 3, scope: !11) -// CHECK:STDOUT: !28 = !DILocation(line: 28, column: 1, scope: !11) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 40, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !30 = !DISubroutineType(types: !31) -// CHECK:STDOUT: !31 = !{null, !7} -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !29, type: !7) -// CHECK:STDOUT: !34 = !DILocation(line: 40, column: 3, scope: !29) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 30, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !36 = !{!37} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !7) -// CHECK:STDOUT: !38 = !DILocation(line: 30, column: 3, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{null, !42} -// CHECK:STDOUT: !42 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !39, type: !42) -// CHECK:STDOUT: !45 = !DILocation(line: 29, column: 3, scope: !39) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 21, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !47 = !DISubroutineType(types: !48) -// CHECK:STDOUT: !48 = !{!42, !42, !42} -// CHECK:STDOUT: !49 = !{!50, !51} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !46, type: !42) -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 2, scope: !46, type: !42) -// CHECK:STDOUT: !52 = !DILocation(line: 22, column: 7, scope: !46) -// CHECK:STDOUT: !53 = !DILocation(line: 22, column: 6, scope: !46) -// CHECK:STDOUT: !54 = !DILocation(line: 23, column: 5, scope: !46) -// CHECK:STDOUT: !55 = !DILocation(line: 25, column: 15, scope: !46) -// CHECK:STDOUT: !56 = !DILocation(line: 25, column: 10, scope: !46) -// CHECK:STDOUT: !57 = !DILocation(line: 25, column: 3, scope: !46) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !61) -// CHECK:STDOUT: !59 = !DISubroutineType(types: !60) -// CHECK:STDOUT: !60 = !{!7, !7, !42} -// CHECK:STDOUT: !61 = !{!62, !63} -// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !58, type: !7) -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 2, scope: !58, type: !42) -// CHECK:STDOUT: !64 = !DILocation(line: 22, column: 7, scope: !58) -// CHECK:STDOUT: !65 = !DILocation(line: 22, column: 6, scope: !58) -// CHECK:STDOUT: !66 = !DILocation(line: 23, column: 5, scope: !58) -// CHECK:STDOUT: !67 = !DILocation(line: 25, column: 15, scope: !58) -// CHECK:STDOUT: !68 = !DILocation(line: 25, column: 10, scope: !58) -// CHECK:STDOUT: !69 = !DILocation(line: 25, column: 3, scope: !58) -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !1, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !71) -// CHECK:STDOUT: !71 = !{!72, !73} -// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !70, type: !7) -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 2, scope: !70, type: !42) -// CHECK:STDOUT: !74 = !DILocation(line: 22, column: 7, scope: !70) -// CHECK:STDOUT: !75 = !DILocation(line: 22, column: 6, scope: !70) -// CHECK:STDOUT: !76 = !DILocation(line: 23, column: 5, scope: !70) -// CHECK:STDOUT: !77 = !DILocation(line: 25, column: 15, scope: !70) -// CHECK:STDOUT: !78 = !DILocation(line: 25, column: 10, scope: !70) -// CHECK:STDOUT: !79 = !DILocation(line: 25, column: 3, scope: !70) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.42513763e01cba2c", scope: null, file: !1, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !81) -// CHECK:STDOUT: !81 = !{!82, !83} -// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !80, type: !7) -// CHECK:STDOUT: !83 = !DILocalVariable(arg: 2, scope: !80, type: !42) -// CHECK:STDOUT: !84 = !DILocation(line: 22, column: 7, scope: !80) -// CHECK:STDOUT: !85 = !DILocation(line: 22, column: 6, scope: !80) -// CHECK:STDOUT: !86 = !DILocation(line: 23, column: 12, scope: !80) -// CHECK:STDOUT: !87 = !DILocation(line: 23, column: 5, scope: !80) -// CHECK:STDOUT: !88 = !DILocation(line: 25, column: 15, scope: !80) -// CHECK:STDOUT: !89 = !DILocation(line: 25, column: 10, scope: !80) -// CHECK:STDOUT: !90 = !DILocation(line: 25, column: 3, scope: !80) +// CHECK:STDOUT: !8 = !{!7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{null} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{null, !6} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.C.Main:Copy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !16, type: !7) +// CHECK:STDOUT: !21 = !DILocation(line: 15, column: 34, scope: !16) +// CHECK:STDOUT: !22 = !{!17} +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 28, type: !11, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !24 = !DILocation(line: 29, column: 3, scope: !23) +// CHECK:STDOUT: !26 = !DILocation(line: 30, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 31, column: 3, scope: !23) +// CHECK:STDOUT: !32 = !DILocation(line: 32, column: 3, scope: !23) +// CHECK:STDOUT: !36 = !DILocation(line: 34, column: 5, scope: !23) +// CHECK:STDOUT: !37 = !DILocation(line: 34, column: 3, scope: !23) +// CHECK:STDOUT: !38 = !{!6, !6, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !DILocation(line: 35, column: 5, scope: !23) +// CHECK:STDOUT: !41 = !DILocation(line: 35, column: 3, scope: !23) +// CHECK:STDOUT: !42 = !{!7, !7, !6} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = !DILocation(line: 36, column: 5, scope: !23) +// CHECK:STDOUT: !45 = !DILocation(line: 36, column: 3, scope: !23) +// CHECK:STDOUT: !46 = !DILocation(line: 37, column: 5, scope: !23) +// CHECK:STDOUT: !47 = !DILocation(line: 37, column: 3, scope: !23) +// CHECK:STDOUT: !48 = !DILocation(line: 39, column: 3, scope: !23) +// CHECK:STDOUT: !51 = !DILocation(line: 40, column: 3, scope: !23) +// CHECK:STDOUT: !52 = !DILocation(line: 28, column: 1, scope: !23) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !4, line: 40, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !7) +// CHECK:STDOUT: !55 = !DILocation(line: 40, column: 3, scope: !53) +// CHECK:STDOUT: !56 = !{!54} +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 30, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) +// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !7) +// CHECK:STDOUT: !59 = !DILocation(line: 30, column: 3, scope: !57) +// CHECK:STDOUT: !60 = !{!58} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !64) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !6) +// CHECK:STDOUT: !63 = !DILocation(line: 29, column: 3, scope: !61) +// CHECK:STDOUT: !64 = !{!62} +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 21, type: !39, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !6) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 2, scope: !65, type: !6) +// CHECK:STDOUT: !72 = !DILocation(line: 22, column: 7, scope: !65) +// CHECK:STDOUT: !73 = !DILocation(line: 22, column: 6, scope: !65) +// CHECK:STDOUT: !75 = !DILocation(line: 23, column: 5, scope: !65) +// CHECK:STDOUT: !77 = !DILocation(line: 25, column: 15, scope: !65) +// CHECK:STDOUT: !78 = !DILocation(line: 25, column: 10, scope: !65) +// CHECK:STDOUT: !79 = !DILocation(line: 25, column: 3, scope: !65) +// CHECK:STDOUT: !80 = !{!66, !67} +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 21, type: !43, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !96) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !7) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 2, scope: !81, type: !6) +// CHECK:STDOUT: !88 = !DILocation(line: 22, column: 7, scope: !81) +// CHECK:STDOUT: !89 = !DILocation(line: 22, column: 6, scope: !81) +// CHECK:STDOUT: !91 = !DILocation(line: 23, column: 5, scope: !81) +// CHECK:STDOUT: !93 = !DILocation(line: 25, column: 15, scope: !81) +// CHECK:STDOUT: !94 = !DILocation(line: 25, column: 10, scope: !81) +// CHECK:STDOUT: !95 = !DILocation(line: 25, column: 3, scope: !81) +// CHECK:STDOUT: !96 = !{!82, !83} +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !4, line: 21, type: !43, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !112) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !7) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 2, scope: !97, type: !6) +// CHECK:STDOUT: !104 = !DILocation(line: 22, column: 7, scope: !97) +// CHECK:STDOUT: !105 = !DILocation(line: 22, column: 6, scope: !97) +// CHECK:STDOUT: !107 = !DILocation(line: 23, column: 5, scope: !97) +// CHECK:STDOUT: !109 = !DILocation(line: 25, column: 15, scope: !97) +// CHECK:STDOUT: !110 = !DILocation(line: 25, column: 10, scope: !97) +// CHECK:STDOUT: !111 = !DILocation(line: 25, column: 3, scope: !97) +// CHECK:STDOUT: !112 = !{!98, !99} +// CHECK:STDOUT: !129 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.42513763e01cba2c", scope: null, file: !4, line: 21, type: !43, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !144) +// CHECK:STDOUT: !130 = !DILocalVariable(arg: 1, scope: !129, type: !7) +// CHECK:STDOUT: !131 = !DILocalVariable(arg: 2, scope: !129, type: !6) +// CHECK:STDOUT: !136 = !DILocation(line: 22, column: 7, scope: !129) +// CHECK:STDOUT: !137 = !DILocation(line: 22, column: 6, scope: !129) +// CHECK:STDOUT: !138 = !DILocation(line: 23, column: 12, scope: !129) +// CHECK:STDOUT: !139 = !DILocation(line: 23, column: 5, scope: !129) +// CHECK:STDOUT: !141 = !DILocation(line: 25, column: 15, scope: !129) +// CHECK:STDOUT: !142 = !DILocation(line: 25, column: 10, scope: !129) +// CHECK:STDOUT: !143 = !DILocation(line: 25, column: 3, scope: !129) +// CHECK:STDOUT: !144 = !{!130, !131} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon index 233e284fab30..36bbebc8af36 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon @@ -64,189 +64,189 @@ fn M() { // CHECK:STDOUT: @printf.int.format = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !8 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !9 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !8 -// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !9 -// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !10 -// CHECK:STDOUT: %.loc54_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %A.call.loc54 = call i32 @_CA.Main.4d6ceefeb7f772f4(i32 %.loc54_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc55_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %A.call.loc55 = call double @_CA.Main.c5e4ba542a56b71f(double %.loc55_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc56_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %A.call.loc56 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc56_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc57_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %A.call.loc57 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc57_5, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !15 +// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !17 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !19 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !15 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !17 +// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !19 +// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !23 +// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !23 +// CHECK:STDOUT: %.loc54_5 = load i32, ptr %n.var, align 4, !dbg !27 +// CHECK:STDOUT: %A.call.loc54 = call i32 @_CA.Main.4d6ceefeb7f772f4(i32 %.loc54_5, i32 0), !dbg !28 +// CHECK:STDOUT: %.loc55_5 = load double, ptr %m.var, align 8, !dbg !31 +// CHECK:STDOUT: %A.call.loc55 = call double @_CA.Main.c5e4ba542a56b71f(double %.loc55_5, i32 0), !dbg !32 +// CHECK:STDOUT: %.loc56_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !35 +// CHECK:STDOUT: %A.call.loc56 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc56_5, i32 0), !dbg !36 +// CHECK:STDOUT: %.loc57_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !37 +// CHECK:STDOUT: %A.call.loc57 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc57_5, i32 0), !dbg !38 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !34 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !40 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc23, label %if.else.loc23, !dbg !41 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc23: ; preds = %entry -// CHECK:STDOUT: ret i32 %x, !dbg !42 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc23: ; preds = %entry -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !43 -// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !43 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc26, label %if.else.loc26, !dbg !44 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc26: ; preds = %if.else.loc23 -// CHECK:STDOUT: %B.call = call i32 @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !45 -// CHECK:STDOUT: ret i32 %B.call, !dbg !46 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc26: ; preds = %if.else.loc23 -// CHECK:STDOUT: %C.call = call i32 @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !47 -// CHECK:STDOUT: ret i32 %C.call, !dbg !48 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CA.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !55 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc23, label %if.else.loc23, !dbg !56 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc23: ; preds = %entry -// CHECK:STDOUT: ret double %x, !dbg !57 +// CHECK:STDOUT: ret i32 %x, !dbg !58 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc23: ; preds = %entry -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !58 -// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !58 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc26, label %if.else.loc26, !dbg !59 +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !59 +// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !59 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc26, label %if.else.loc26, !dbg !60 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc26: ; preds = %if.else.loc23 -// CHECK:STDOUT: %B.call = call double @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !60 -// CHECK:STDOUT: ret double %B.call, !dbg !61 +// CHECK:STDOUT: %B.call = call i32 @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !63 +// CHECK:STDOUT: ret i32 %B.call, !dbg !64 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc26: ; preds = %if.else.loc23 -// CHECK:STDOUT: %C.call = call double @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !62 -// CHECK:STDOUT: ret double %C.call, !dbg !63 +// CHECK:STDOUT: %C.call = call i32 @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !67 +// CHECK:STDOUT: ret i32 %C.call, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !64 { +// CHECK:STDOUT: define linkonce_odr double @_CA.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !70 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !68 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc23, label %if.else.loc23, !dbg !69 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !77 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc23, label %if.else.loc23, !dbg !78 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc23: ; preds = %entry -// CHECK:STDOUT: ret ptr %x, !dbg !70 +// CHECK:STDOUT: ret double %x, !dbg !80 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc23: ; preds = %entry -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !71 -// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !71 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc26, label %if.else.loc26, !dbg !72 +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !81 +// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !81 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc26, label %if.else.loc26, !dbg !82 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc26: ; preds = %if.else.loc23 -// CHECK:STDOUT: %B.call = call ptr @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !73 -// CHECK:STDOUT: ret ptr %B.call, !dbg !74 +// CHECK:STDOUT: %B.call = call double @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !85 +// CHECK:STDOUT: ret double %B.call, !dbg !86 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc26: ; preds = %if.else.loc23 -// CHECK:STDOUT: %C.call = call ptr @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !75 -// CHECK:STDOUT: ret ptr %C.call, !dbg !76 +// CHECK:STDOUT: %C.call = call double @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !89 +// CHECK:STDOUT: ret double %C.call, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !81 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !82 -// CHECK:STDOUT: ret i32 %D.call, !dbg !83 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !99 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc23, label %if.else.loc23, !dbg !100 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then.loc23: ; preds = %entry +// CHECK:STDOUT: ret ptr %x, !dbg !102 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else.loc23: ; preds = %entry +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !103 +// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !103 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc26, label %if.else.loc26, !dbg !104 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then.loc26: ; preds = %if.else.loc23 +// CHECK:STDOUT: %B.call = call ptr @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !107 +// CHECK:STDOUT: ret ptr %B.call, !dbg !108 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else.loc26: ; preds = %if.else.loc23 +// CHECK:STDOUT: %C.call = call ptr @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !111 +// CHECK:STDOUT: ret ptr %C.call, !dbg !112 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !84 { +// CHECK:STDOUT: define linkonce_odr i32 @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !136 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !88 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !89 -// CHECK:STDOUT: ret i32 %D.call, !dbg !90 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !143 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !146 +// CHECK:STDOUT: ret i32 %D.call, !dbg !147 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !91 { +// CHECK:STDOUT: define linkonce_odr i32 @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !149 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !95 -// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !96 -// CHECK:STDOUT: ret double %D.call, !dbg !97 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !156 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !159 +// CHECK:STDOUT: ret i32 %D.call, !dbg !160 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !98 { +// CHECK:STDOUT: define linkonce_odr double @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !162 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !102 -// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !103 -// CHECK:STDOUT: ret double %D.call, !dbg !104 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !169 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !172 +// CHECK:STDOUT: ret double %D.call, !dbg !173 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !105 { +// CHECK:STDOUT: define linkonce_odr double @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !175 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !109 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !110 -// CHECK:STDOUT: ret ptr %D.call, !dbg !111 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !182 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !185 +// CHECK:STDOUT: ret double %D.call, !dbg !186 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !112 { +// CHECK:STDOUT: define linkonce_odr ptr @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !188 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !116 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !117 -// CHECK:STDOUT: ret ptr %D.call, !dbg !118 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !195 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !198 +// CHECK:STDOUT: ret ptr %D.call, !dbg !199 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !201 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !208 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !211 +// CHECK:STDOUT: ret ptr %D.call, !dbg !212 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !119 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !240 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !123 -// CHECK:STDOUT: %A.call = call i32 @_CA.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !124 -// CHECK:STDOUT: ret i32 %A.call, !dbg !125 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !248 +// CHECK:STDOUT: %A.call = call i32 @_CA.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !249 +// CHECK:STDOUT: ret i32 %A.call, !dbg !250 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !126 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !252 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !130 -// CHECK:STDOUT: %A.call = call double @_CA.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !131 -// CHECK:STDOUT: ret double %A.call, !dbg !132 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !260 +// CHECK:STDOUT: %A.call = call double @_CA.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !261 +// CHECK:STDOUT: ret double %A.call, !dbg !262 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !133 { +// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !264 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !137 -// CHECK:STDOUT: %A.call = call ptr @_CA.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !138 -// CHECK:STDOUT: ret ptr %A.call, !dbg !139 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !272 +// CHECK:STDOUT: %A.call = call ptr @_CA.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !273 +// CHECK:STDOUT: ret ptr %A.call, !dbg !274 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -260,147 +260,147 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_diamond.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 49, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 50, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 51, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 52, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 54, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 54, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 55, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 55, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 56, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 56, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 57, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 57, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 48, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 50, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 50, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 49, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !30} -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 49, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 22, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{!30, !30, !30} -// CHECK:STDOUT: !37 = !{!38, !39} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !34, type: !30) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !34, type: !30) -// CHECK:STDOUT: !40 = !DILocation(line: 23, column: 7, scope: !34) -// CHECK:STDOUT: !41 = !DILocation(line: 23, column: 6, scope: !34) -// CHECK:STDOUT: !42 = !DILocation(line: 24, column: 5, scope: !34) -// CHECK:STDOUT: !43 = !DILocation(line: 26, column: 7, scope: !34) -// CHECK:STDOUT: !44 = !DILocation(line: 26, column: 6, scope: !34) -// CHECK:STDOUT: !45 = !DILocation(line: 27, column: 12, scope: !34) -// CHECK:STDOUT: !46 = !DILocation(line: 27, column: 5, scope: !34) -// CHECK:STDOUT: !47 = !DILocation(line: 29, column: 12, scope: !34) -// CHECK:STDOUT: !48 = !DILocation(line: 29, column: 5, scope: !34) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 22, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !52) -// CHECK:STDOUT: !50 = !DISubroutineType(types: !51) -// CHECK:STDOUT: !51 = !{!23, !23, !30} -// CHECK:STDOUT: !52 = !{!53, !54} -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !49, type: !23) -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 2, scope: !49, type: !30) -// CHECK:STDOUT: !55 = !DILocation(line: 23, column: 7, scope: !49) -// CHECK:STDOUT: !56 = !DILocation(line: 23, column: 6, scope: !49) -// CHECK:STDOUT: !57 = !DILocation(line: 24, column: 5, scope: !49) -// CHECK:STDOUT: !58 = !DILocation(line: 26, column: 7, scope: !49) -// CHECK:STDOUT: !59 = !DILocation(line: 26, column: 6, scope: !49) -// CHECK:STDOUT: !60 = !DILocation(line: 27, column: 12, scope: !49) -// CHECK:STDOUT: !61 = !DILocation(line: 27, column: 5, scope: !49) -// CHECK:STDOUT: !62 = !DILocation(line: 29, column: 12, scope: !49) -// CHECK:STDOUT: !63 = !DILocation(line: 29, column: 5, scope: !49) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.a76b78461416b4a8", scope: null, file: !1, line: 22, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !65) -// CHECK:STDOUT: !65 = !{!66, !67} -// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !23) -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 2, scope: !64, type: !30) -// CHECK:STDOUT: !68 = !DILocation(line: 23, column: 7, scope: !64) -// CHECK:STDOUT: !69 = !DILocation(line: 23, column: 6, scope: !64) -// CHECK:STDOUT: !70 = !DILocation(line: 24, column: 5, scope: !64) -// CHECK:STDOUT: !71 = !DILocation(line: 26, column: 7, scope: !64) -// CHECK:STDOUT: !72 = !DILocation(line: 26, column: 6, scope: !64) -// CHECK:STDOUT: !73 = !DILocation(line: 27, column: 12, scope: !64) -// CHECK:STDOUT: !74 = !DILocation(line: 27, column: 5, scope: !64) -// CHECK:STDOUT: !75 = !DILocation(line: 29, column: 12, scope: !64) -// CHECK:STDOUT: !76 = !DILocation(line: 29, column: 5, scope: !64) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 34, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !78) -// CHECK:STDOUT: !78 = !{!79, !80} -// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !30) -// CHECK:STDOUT: !80 = !DILocalVariable(arg: 2, scope: !77, type: !30) -// CHECK:STDOUT: !81 = !DILocation(line: 35, column: 3, scope: !77) -// CHECK:STDOUT: !82 = !DILocation(line: 36, column: 10, scope: !77) -// CHECK:STDOUT: !83 = !DILocation(line: 36, column: 3, scope: !77) -// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 39, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !85) -// CHECK:STDOUT: !85 = !{!86, !87} -// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !84, type: !30) -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 2, scope: !84, type: !30) -// CHECK:STDOUT: !88 = !DILocation(line: 40, column: 3, scope: !84) -// CHECK:STDOUT: !89 = !DILocation(line: 41, column: 10, scope: !84) -// CHECK:STDOUT: !90 = !DILocation(line: 41, column: 3, scope: !84) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 34, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !92) -// CHECK:STDOUT: !92 = !{!93, !94} -// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !91, type: !23) -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 2, scope: !91, type: !30) -// CHECK:STDOUT: !95 = !DILocation(line: 35, column: 3, scope: !91) -// CHECK:STDOUT: !96 = !DILocation(line: 36, column: 10, scope: !91) -// CHECK:STDOUT: !97 = !DILocation(line: 36, column: 3, scope: !91) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 39, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !99) -// CHECK:STDOUT: !99 = !{!100, !101} -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !98, type: !23) -// CHECK:STDOUT: !101 = !DILocalVariable(arg: 2, scope: !98, type: !30) -// CHECK:STDOUT: !102 = !DILocation(line: 40, column: 3, scope: !98) -// CHECK:STDOUT: !103 = !DILocation(line: 41, column: 10, scope: !98) -// CHECK:STDOUT: !104 = !DILocation(line: 41, column: 3, scope: !98) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.a76b78461416b4a8", scope: null, file: !1, line: 34, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !106) -// CHECK:STDOUT: !106 = !{!107, !108} -// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !105, type: !23) -// CHECK:STDOUT: !108 = !DILocalVariable(arg: 2, scope: !105, type: !30) -// CHECK:STDOUT: !109 = !DILocation(line: 35, column: 3, scope: !105) -// CHECK:STDOUT: !110 = !DILocation(line: 36, column: 10, scope: !105) -// CHECK:STDOUT: !111 = !DILocation(line: 36, column: 3, scope: !105) -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.a76b78461416b4a8", scope: null, file: !1, line: 39, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !113) -// CHECK:STDOUT: !113 = !{!114, !115} -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !23) -// CHECK:STDOUT: !115 = !DILocalVariable(arg: 2, scope: !112, type: !30) -// CHECK:STDOUT: !116 = !DILocation(line: 40, column: 3, scope: !112) -// CHECK:STDOUT: !117 = !DILocation(line: 41, column: 10, scope: !112) -// CHECK:STDOUT: !118 = !DILocation(line: 41, column: 3, scope: !112) -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 44, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !120) -// CHECK:STDOUT: !120 = !{!121, !122} -// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !119, type: !30) -// CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !119, type: !30) -// CHECK:STDOUT: !123 = !DILocation(line: 45, column: 15, scope: !119) -// CHECK:STDOUT: !124 = !DILocation(line: 45, column: 10, scope: !119) -// CHECK:STDOUT: !125 = !DILocation(line: 45, column: 3, scope: !119) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 44, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !127) -// CHECK:STDOUT: !127 = !{!128, !129} -// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !126, type: !23) -// CHECK:STDOUT: !129 = !DILocalVariable(arg: 2, scope: !126, type: !30) -// CHECK:STDOUT: !130 = !DILocation(line: 45, column: 15, scope: !126) -// CHECK:STDOUT: !131 = !DILocation(line: 45, column: 10, scope: !126) -// CHECK:STDOUT: !132 = !DILocation(line: 45, column: 3, scope: !126) -// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.a76b78461416b4a8", scope: null, file: !1, line: 44, type: !50, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !134) -// CHECK:STDOUT: !134 = !{!135, !136} -// CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !133, type: !23) -// CHECK:STDOUT: !136 = !DILocalVariable(arg: 2, scope: !133, type: !30) -// CHECK:STDOUT: !137 = !DILocation(line: 45, column: 15, scope: !133) -// CHECK:STDOUT: !138 = !DILocation(line: 45, column: 10, scope: !133) -// CHECK:STDOUT: !139 = !DILocation(line: 45, column: 3, scope: !133) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_diamond.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 48, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 49, column: 3, scope: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 50, column: 3, scope: !14) +// CHECK:STDOUT: !19 = !DILocation(line: 51, column: 3, scope: !14) +// CHECK:STDOUT: !23 = !DILocation(line: 52, column: 3, scope: !14) +// CHECK:STDOUT: !27 = !DILocation(line: 54, column: 5, scope: !14) +// CHECK:STDOUT: !28 = !DILocation(line: 54, column: 3, scope: !14) +// CHECK:STDOUT: !29 = !{!6, !6, !6} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 55, column: 5, scope: !14) +// CHECK:STDOUT: !32 = !DILocation(line: 55, column: 3, scope: !14) +// CHECK:STDOUT: !33 = !{!9, !9, !6} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 56, column: 5, scope: !14) +// CHECK:STDOUT: !36 = !DILocation(line: 56, column: 3, scope: !14) +// CHECK:STDOUT: !37 = !DILocation(line: 57, column: 5, scope: !14) +// CHECK:STDOUT: !38 = !DILocation(line: 57, column: 3, scope: !14) +// CHECK:STDOUT: !39 = !DILocation(line: 48, column: 1, scope: !14) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !9) +// CHECK:STDOUT: !42 = !DILocation(line: 50, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 49, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) +// CHECK:STDOUT: !46 = !DILocation(line: 49, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 22, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !69) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !6) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !48, type: !6) +// CHECK:STDOUT: !55 = !DILocation(line: 23, column: 7, scope: !48) +// CHECK:STDOUT: !56 = !DILocation(line: 23, column: 6, scope: !48) +// CHECK:STDOUT: !58 = !DILocation(line: 24, column: 5, scope: !48) +// CHECK:STDOUT: !59 = !DILocation(line: 26, column: 7, scope: !48) +// CHECK:STDOUT: !60 = !DILocation(line: 26, column: 6, scope: !48) +// CHECK:STDOUT: !63 = !DILocation(line: 27, column: 12, scope: !48) +// CHECK:STDOUT: !64 = !DILocation(line: 27, column: 5, scope: !48) +// CHECK:STDOUT: !67 = !DILocation(line: 29, column: 12, scope: !48) +// CHECK:STDOUT: !68 = !DILocation(line: 29, column: 5, scope: !48) +// CHECK:STDOUT: !69 = !{!49, !50} +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 22, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !91) +// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !70, type: !9) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 2, scope: !70, type: !6) +// CHECK:STDOUT: !77 = !DILocation(line: 23, column: 7, scope: !70) +// CHECK:STDOUT: !78 = !DILocation(line: 23, column: 6, scope: !70) +// CHECK:STDOUT: !80 = !DILocation(line: 24, column: 5, scope: !70) +// CHECK:STDOUT: !81 = !DILocation(line: 26, column: 7, scope: !70) +// CHECK:STDOUT: !82 = !DILocation(line: 26, column: 6, scope: !70) +// CHECK:STDOUT: !85 = !DILocation(line: 27, column: 12, scope: !70) +// CHECK:STDOUT: !86 = !DILocation(line: 27, column: 5, scope: !70) +// CHECK:STDOUT: !89 = !DILocation(line: 29, column: 12, scope: !70) +// CHECK:STDOUT: !90 = !DILocation(line: 29, column: 5, scope: !70) +// CHECK:STDOUT: !91 = !{!71, !72} +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.a76b78461416b4a8", scope: null, file: !4, line: 22, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !113) +// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !9) +// CHECK:STDOUT: !94 = !DILocalVariable(arg: 2, scope: !92, type: !6) +// CHECK:STDOUT: !99 = !DILocation(line: 23, column: 7, scope: !92) +// CHECK:STDOUT: !100 = !DILocation(line: 23, column: 6, scope: !92) +// CHECK:STDOUT: !102 = !DILocation(line: 24, column: 5, scope: !92) +// CHECK:STDOUT: !103 = !DILocation(line: 26, column: 7, scope: !92) +// CHECK:STDOUT: !104 = !DILocation(line: 26, column: 6, scope: !92) +// CHECK:STDOUT: !107 = !DILocation(line: 27, column: 12, scope: !92) +// CHECK:STDOUT: !108 = !DILocation(line: 27, column: 5, scope: !92) +// CHECK:STDOUT: !111 = !DILocation(line: 29, column: 12, scope: !92) +// CHECK:STDOUT: !112 = !DILocation(line: 29, column: 5, scope: !92) +// CHECK:STDOUT: !113 = !{!93, !94} +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 34, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !148) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !6) +// CHECK:STDOUT: !138 = !DILocalVariable(arg: 2, scope: !136, type: !6) +// CHECK:STDOUT: !143 = !DILocation(line: 35, column: 3, scope: !136) +// CHECK:STDOUT: !146 = !DILocation(line: 36, column: 10, scope: !136) +// CHECK:STDOUT: !147 = !DILocation(line: 36, column: 3, scope: !136) +// CHECK:STDOUT: !148 = !{!137, !138} +// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 39, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !161) +// CHECK:STDOUT: !150 = !DILocalVariable(arg: 1, scope: !149, type: !6) +// CHECK:STDOUT: !151 = !DILocalVariable(arg: 2, scope: !149, type: !6) +// CHECK:STDOUT: !156 = !DILocation(line: 40, column: 3, scope: !149) +// CHECK:STDOUT: !159 = !DILocation(line: 41, column: 10, scope: !149) +// CHECK:STDOUT: !160 = !DILocation(line: 41, column: 3, scope: !149) +// CHECK:STDOUT: !161 = !{!150, !151} +// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 34, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !174) +// CHECK:STDOUT: !163 = !DILocalVariable(arg: 1, scope: !162, type: !9) +// CHECK:STDOUT: !164 = !DILocalVariable(arg: 2, scope: !162, type: !6) +// CHECK:STDOUT: !169 = !DILocation(line: 35, column: 3, scope: !162) +// CHECK:STDOUT: !172 = !DILocation(line: 36, column: 10, scope: !162) +// CHECK:STDOUT: !173 = !DILocation(line: 36, column: 3, scope: !162) +// CHECK:STDOUT: !174 = !{!163, !164} +// CHECK:STDOUT: !175 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 39, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !187) +// CHECK:STDOUT: !176 = !DILocalVariable(arg: 1, scope: !175, type: !9) +// CHECK:STDOUT: !177 = !DILocalVariable(arg: 2, scope: !175, type: !6) +// CHECK:STDOUT: !182 = !DILocation(line: 40, column: 3, scope: !175) +// CHECK:STDOUT: !185 = !DILocation(line: 41, column: 10, scope: !175) +// CHECK:STDOUT: !186 = !DILocation(line: 41, column: 3, scope: !175) +// CHECK:STDOUT: !187 = !{!176, !177} +// CHECK:STDOUT: !188 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.a76b78461416b4a8", scope: null, file: !4, line: 34, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !200) +// CHECK:STDOUT: !189 = !DILocalVariable(arg: 1, scope: !188, type: !9) +// CHECK:STDOUT: !190 = !DILocalVariable(arg: 2, scope: !188, type: !6) +// CHECK:STDOUT: !195 = !DILocation(line: 35, column: 3, scope: !188) +// CHECK:STDOUT: !198 = !DILocation(line: 36, column: 10, scope: !188) +// CHECK:STDOUT: !199 = !DILocation(line: 36, column: 3, scope: !188) +// CHECK:STDOUT: !200 = !{!189, !190} +// CHECK:STDOUT: !201 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.a76b78461416b4a8", scope: null, file: !4, line: 39, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !213) +// CHECK:STDOUT: !202 = !DILocalVariable(arg: 1, scope: !201, type: !9) +// CHECK:STDOUT: !203 = !DILocalVariable(arg: 2, scope: !201, type: !6) +// CHECK:STDOUT: !208 = !DILocation(line: 40, column: 3, scope: !201) +// CHECK:STDOUT: !211 = !DILocation(line: 41, column: 10, scope: !201) +// CHECK:STDOUT: !212 = !DILocation(line: 41, column: 3, scope: !201) +// CHECK:STDOUT: !213 = !{!202, !203} +// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 44, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !251) +// CHECK:STDOUT: !241 = !DILocalVariable(arg: 1, scope: !240, type: !6) +// CHECK:STDOUT: !242 = !DILocalVariable(arg: 2, scope: !240, type: !6) +// CHECK:STDOUT: !248 = !DILocation(line: 45, column: 15, scope: !240) +// CHECK:STDOUT: !249 = !DILocation(line: 45, column: 10, scope: !240) +// CHECK:STDOUT: !250 = !DILocation(line: 45, column: 3, scope: !240) +// CHECK:STDOUT: !251 = !{!241, !242} +// CHECK:STDOUT: !252 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 44, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !263) +// CHECK:STDOUT: !253 = !DILocalVariable(arg: 1, scope: !252, type: !9) +// CHECK:STDOUT: !254 = !DILocalVariable(arg: 2, scope: !252, type: !6) +// CHECK:STDOUT: !260 = !DILocation(line: 45, column: 15, scope: !252) +// CHECK:STDOUT: !261 = !DILocation(line: 45, column: 10, scope: !252) +// CHECK:STDOUT: !262 = !DILocation(line: 45, column: 3, scope: !252) +// CHECK:STDOUT: !263 = !{!253, !254} +// CHECK:STDOUT: !264 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.a76b78461416b4a8", scope: null, file: !4, line: 44, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !275) +// CHECK:STDOUT: !265 = !DILocalVariable(arg: 1, scope: !264, type: !9) +// CHECK:STDOUT: !266 = !DILocalVariable(arg: 2, scope: !264, type: !6) +// CHECK:STDOUT: !272 = !DILocation(line: 45, column: 15, scope: !264) +// CHECK:STDOUT: !273 = !DILocation(line: 45, column: 10, scope: !264) +// CHECK:STDOUT: !274 = !DILocation(line: 45, column: 3, scope: !264) +// CHECK:STDOUT: !275 = !{!265, !266} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon b/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon index 6ff5e13518ee..3a1912c73260 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon @@ -49,59 +49,59 @@ fn Run() { // CHECK:STDOUT: @printf.int.format = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.X.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.X.Main:I.Main"() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !12 +// CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.Y.Main:I.Main"() #0 !dbg !9 { +// CHECK:STDOUT: define void @"_CF.Y.Main:I.Main"() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call.loc41 = call i32 @_CG.Main.d0cc85b6c89517e3(i32 0), !dbg !16 -// CHECK:STDOUT: %G.call.loc42 = call i32 @_CG.Main.e8d4d639bae9ba40(i32 0), !dbg !17 -// CHECK:STDOUT: ret i32 0, !dbg !18 +// CHECK:STDOUT: %G.call.loc41 = call i32 @_CG.Main.d0cc85b6c89517e3(i32 0), !dbg !18 +// CHECK:STDOUT: %G.call.loc42 = call i32 @_CG.Main.e8d4d639bae9ba40(i32 0), !dbg !21 +// CHECK:STDOUT: ret i32 0, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.d0cc85b6c89517e3(i32 %count) #0 !dbg !19 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.d0cc85b6c89517e3(i32 %count) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(), !dbg !24 -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !25 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !26 +// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(), !dbg !28 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !29 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !27 +// CHECK:STDOUT: ret i32 %count, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !28 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.d0cc85b6c89517e3(i32 %Int.as.AddWith.impl.Op.call), !dbg !29 -// CHECK:STDOUT: ret i32 %G.call, !dbg !30 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !33 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.d0cc85b6c89517e3(i32 %Int.as.AddWith.impl.Op.call), !dbg !34 +// CHECK:STDOUT: ret i32 %G.call, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.e8d4d639bae9ba40(i32 %count) #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.e8d4d639bae9ba40(i32 %count) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.Y.Main:I.Main"(), !dbg !34 -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !35 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !36 +// CHECK:STDOUT: call void @"_CF.Y.Main:I.Main"(), !dbg !42 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !43 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !44 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !37 +// CHECK:STDOUT: ret i32 %count, !dbg !46 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !38 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.e8d4d639bae9ba40(i32 %Int.as.AddWith.impl.Op.call), !dbg !39 -// CHECK:STDOUT: ret i32 %G.call, !dbg !40 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !47 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.e8d4d639bae9ba40(i32 %Int.as.AddWith.impl.Op.call), !dbg !48 +// CHECK:STDOUT: ret i32 %G.call, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -109,48 +109,48 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 21, column: 12, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !1, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 25, column: 12, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 25, column: 3, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 40, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 41, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 42, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 40, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.d0cc85b6c89517e3", scope: null, file: !1, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{!15, !15} -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 32, column: 3, scope: !19) -// CHECK:STDOUT: !25 = !DILocation(line: 34, column: 7, scope: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 34, column: 6, scope: !19) -// CHECK:STDOUT: !27 = !DILocation(line: 35, column: 5, scope: !19) -// CHECK:STDOUT: !28 = !DILocation(line: 37, column: 15, scope: !19) -// CHECK:STDOUT: !29 = !DILocation(line: 37, column: 10, scope: !19) -// CHECK:STDOUT: !30 = !DILocation(line: 37, column: 3, scope: !19) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8d4d639bae9ba40", scope: null, file: !1, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !15) -// CHECK:STDOUT: !34 = !DILocation(line: 32, column: 3, scope: !31) -// CHECK:STDOUT: !35 = !DILocation(line: 34, column: 7, scope: !31) -// CHECK:STDOUT: !36 = !DILocation(line: 34, column: 6, scope: !31) -// CHECK:STDOUT: !37 = !DILocation(line: 35, column: 5, scope: !31) -// CHECK:STDOUT: !38 = !DILocation(line: 37, column: 15, scope: !31) -// CHECK:STDOUT: !39 = !DILocation(line: 37, column: 10, scope: !31) -// CHECK:STDOUT: !40 = !DILocation(line: 37, column: 3, scope: !31) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_impl.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{!6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !4, line: 21, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !12 = !DILocation(line: 21, column: 12, scope: !11) +// CHECK:STDOUT: !13 = !DILocation(line: 21, column: 3, scope: !11) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !4, line: 25, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 25, column: 12, scope: !14) +// CHECK:STDOUT: !16 = !DILocation(line: 25, column: 3, scope: !14) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !4, line: 40, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !18 = !DILocation(line: 41, column: 3, scope: !17) +// CHECK:STDOUT: !19 = !{!6, !6} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !DILocation(line: 42, column: 3, scope: !17) +// CHECK:STDOUT: !22 = !DILocation(line: 40, column: 1, scope: !17) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.d0cc85b6c89517e3", scope: null, file: !4, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) +// CHECK:STDOUT: !28 = !DILocation(line: 32, column: 3, scope: !23) +// CHECK:STDOUT: !29 = !DILocation(line: 34, column: 7, scope: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 34, column: 6, scope: !23) +// CHECK:STDOUT: !32 = !DILocation(line: 35, column: 5, scope: !23) +// CHECK:STDOUT: !33 = !DILocation(line: 37, column: 15, scope: !23) +// CHECK:STDOUT: !34 = !DILocation(line: 37, column: 10, scope: !23) +// CHECK:STDOUT: !35 = !DILocation(line: 37, column: 3, scope: !23) +// CHECK:STDOUT: !36 = !{!24} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8d4d639bae9ba40", scope: null, file: !4, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !50) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !6) +// CHECK:STDOUT: !42 = !DILocation(line: 32, column: 3, scope: !37) +// CHECK:STDOUT: !43 = !DILocation(line: 34, column: 7, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 34, column: 6, scope: !37) +// CHECK:STDOUT: !46 = !DILocation(line: 35, column: 5, scope: !37) +// CHECK:STDOUT: !47 = !DILocation(line: 37, column: 15, scope: !37) +// CHECK:STDOUT: !48 = !DILocation(line: 37, column: 10, scope: !37) +// CHECK:STDOUT: !49 = !DILocation(line: 37, column: 3, scope: !37) +// CHECK:STDOUT: !50 = !{!38} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon index 91004d315a39..7fe8535d12e4 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon @@ -46,136 +46,136 @@ fn M() { // CHECK:STDOUT: source_filename = "call_recursive_mutual.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !8 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !9 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !8 -// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !9 -// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !10 -// CHECK:STDOUT: %.loc38_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %.loc38_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc39_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %F.call.loc39 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc39_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %F.call.loc40 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc40_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %F.call.loc41 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc41_5, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !15 +// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !17 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !19 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !15 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !17 +// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !19 +// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !23 +// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !23 +// CHECK:STDOUT: %.loc38_5 = load i32, ptr %n.var, align 4, !dbg !27 +// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %.loc38_5, i32 0), !dbg !28 +// CHECK:STDOUT: %.loc39_5 = load double, ptr %m.var, align 8, !dbg !31 +// CHECK:STDOUT: %F.call.loc39 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc39_5, i32 0), !dbg !32 +// CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !35 +// CHECK:STDOUT: %F.call.loc40 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc40_5, i32 0), !dbg !36 +// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !37 +// CHECK:STDOUT: %F.call.loc41 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc41_5, i32 0), !dbg !38 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !40 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !41 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !55 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !56 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %x, !dbg !42 +// CHECK:STDOUT: ret i32 %x, !dbg !58 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !43 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !44 -// CHECK:STDOUT: ret i32 %G.call, !dbg !45 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !60 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !61 +// CHECK:STDOUT: ret i32 %G.call, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !52 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !53 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !71 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !72 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret double %x, !dbg !54 +// CHECK:STDOUT: ret double %x, !dbg !74 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !55 -// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !56 -// CHECK:STDOUT: ret double %G.call, !dbg !57 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !76 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !77 +// CHECK:STDOUT: ret double %G.call, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !58 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !80 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !62 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !63 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !87 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !88 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret ptr %x, !dbg !64 +// CHECK:STDOUT: ret ptr %x, !dbg !90 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !65 -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !66 -// CHECK:STDOUT: ret ptr %G.call, !dbg !67 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !92 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !93 +// CHECK:STDOUT: ret ptr %G.call, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !68 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !72 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !73 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !119 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !120 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %x, !dbg !74 +// CHECK:STDOUT: ret i32 %x, !dbg !122 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !75 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !76 -// CHECK:STDOUT: ret i32 %F.call, !dbg !77 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !124 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !125 +// CHECK:STDOUT: ret i32 %F.call, !dbg !126 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !78 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !128 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !82 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !83 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !135 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !136 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret double %x, !dbg !84 +// CHECK:STDOUT: ret double %x, !dbg !138 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !85 -// CHECK:STDOUT: %F.call = call double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !86 -// CHECK:STDOUT: ret double %F.call, !dbg !87 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !140 +// CHECK:STDOUT: %F.call = call double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !141 +// CHECK:STDOUT: ret double %F.call, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !144 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !92 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !93 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !151 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !152 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret ptr %x, !dbg !94 +// CHECK:STDOUT: ret ptr %x, !dbg !154 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !95 -// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !96 -// CHECK:STDOUT: ret ptr %F.call, !dbg !97 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !156 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !157 +// CHECK:STDOUT: ret ptr %F.call, !dbg !158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -185,105 +185,105 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_mutual.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 33, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 34, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 35, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 38, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 38, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 39, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 39, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 40, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 40, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 41, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 41, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 32, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 34, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 34, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 33, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !30} -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 33, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 18, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{!30, !30, !30} -// CHECK:STDOUT: !37 = !{!38, !39} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !34, type: !30) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !34, type: !30) -// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 7, scope: !34) -// CHECK:STDOUT: !41 = !DILocation(line: 19, column: 6, scope: !34) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 5, scope: !34) -// CHECK:STDOUT: !43 = !DILocation(line: 22, column: 15, scope: !34) -// CHECK:STDOUT: !44 = !DILocation(line: 22, column: 10, scope: !34) -// CHECK:STDOUT: !45 = !DILocation(line: 22, column: 3, scope: !34) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 18, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !47 = !DISubroutineType(types: !48) -// CHECK:STDOUT: !48 = !{!23, !23, !30} -// CHECK:STDOUT: !49 = !{!50, !51} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !46, type: !23) -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 2, scope: !46, type: !30) -// CHECK:STDOUT: !52 = !DILocation(line: 19, column: 7, scope: !46) -// CHECK:STDOUT: !53 = !DILocation(line: 19, column: 6, scope: !46) -// CHECK:STDOUT: !54 = !DILocation(line: 20, column: 5, scope: !46) -// CHECK:STDOUT: !55 = !DILocation(line: 22, column: 15, scope: !46) -// CHECK:STDOUT: !56 = !DILocation(line: 22, column: 10, scope: !46) -// CHECK:STDOUT: !57 = !DILocation(line: 22, column: 3, scope: !46) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !1, line: 18, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !59) -// CHECK:STDOUT: !59 = !{!60, !61} -// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !58, type: !23) -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 2, scope: !58, type: !30) -// CHECK:STDOUT: !62 = !DILocation(line: 19, column: 7, scope: !58) -// CHECK:STDOUT: !63 = !DILocation(line: 19, column: 6, scope: !58) -// CHECK:STDOUT: !64 = !DILocation(line: 20, column: 5, scope: !58) -// CHECK:STDOUT: !65 = !DILocation(line: 22, column: 15, scope: !58) -// CHECK:STDOUT: !66 = !DILocation(line: 22, column: 10, scope: !58) -// CHECK:STDOUT: !67 = !DILocation(line: 22, column: 3, scope: !58) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 25, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !69) -// CHECK:STDOUT: !69 = !{!70, !71} -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !30) -// CHECK:STDOUT: !71 = !DILocalVariable(arg: 2, scope: !68, type: !30) -// CHECK:STDOUT: !72 = !DILocation(line: 26, column: 7, scope: !68) -// CHECK:STDOUT: !73 = !DILocation(line: 26, column: 6, scope: !68) -// CHECK:STDOUT: !74 = !DILocation(line: 27, column: 5, scope: !68) -// CHECK:STDOUT: !75 = !DILocation(line: 29, column: 15, scope: !68) -// CHECK:STDOUT: !76 = !DILocation(line: 29, column: 10, scope: !68) -// CHECK:STDOUT: !77 = !DILocation(line: 29, column: 3, scope: !68) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 25, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !79) -// CHECK:STDOUT: !79 = !{!80, !81} -// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !78, type: !23) -// CHECK:STDOUT: !81 = !DILocalVariable(arg: 2, scope: !78, type: !30) -// CHECK:STDOUT: !82 = !DILocation(line: 26, column: 7, scope: !78) -// CHECK:STDOUT: !83 = !DILocation(line: 26, column: 6, scope: !78) -// CHECK:STDOUT: !84 = !DILocation(line: 27, column: 5, scope: !78) -// CHECK:STDOUT: !85 = !DILocation(line: 29, column: 15, scope: !78) -// CHECK:STDOUT: !86 = !DILocation(line: 29, column: 10, scope: !78) -// CHECK:STDOUT: !87 = !DILocation(line: 29, column: 3, scope: !78) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a76b78461416b4a8", scope: null, file: !1, line: 25, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !89) -// CHECK:STDOUT: !89 = !{!90, !91} -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !23) -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 2, scope: !88, type: !30) -// CHECK:STDOUT: !92 = !DILocation(line: 26, column: 7, scope: !88) -// CHECK:STDOUT: !93 = !DILocation(line: 26, column: 6, scope: !88) -// CHECK:STDOUT: !94 = !DILocation(line: 27, column: 5, scope: !88) -// CHECK:STDOUT: !95 = !DILocation(line: 29, column: 15, scope: !88) -// CHECK:STDOUT: !96 = !DILocation(line: 29, column: 10, scope: !88) -// CHECK:STDOUT: !97 = !DILocation(line: 29, column: 3, scope: !88) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_mutual.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 32, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 33, column: 3, scope: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 34, column: 3, scope: !14) +// CHECK:STDOUT: !19 = !DILocation(line: 35, column: 3, scope: !14) +// CHECK:STDOUT: !23 = !DILocation(line: 36, column: 3, scope: !14) +// CHECK:STDOUT: !27 = !DILocation(line: 38, column: 5, scope: !14) +// CHECK:STDOUT: !28 = !DILocation(line: 38, column: 3, scope: !14) +// CHECK:STDOUT: !29 = !{!6, !6, !6} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 39, column: 5, scope: !14) +// CHECK:STDOUT: !32 = !DILocation(line: 39, column: 3, scope: !14) +// CHECK:STDOUT: !33 = !{!9, !9, !6} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 40, column: 5, scope: !14) +// CHECK:STDOUT: !36 = !DILocation(line: 40, column: 3, scope: !14) +// CHECK:STDOUT: !37 = !DILocation(line: 41, column: 5, scope: !14) +// CHECK:STDOUT: !38 = !DILocation(line: 41, column: 3, scope: !14) +// CHECK:STDOUT: !39 = !DILocation(line: 32, column: 1, scope: !14) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 34, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !9) +// CHECK:STDOUT: !42 = !DILocation(line: 34, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) +// CHECK:STDOUT: !46 = !DILocation(line: 33, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 18, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !6) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !48, type: !6) +// CHECK:STDOUT: !55 = !DILocation(line: 19, column: 7, scope: !48) +// CHECK:STDOUT: !56 = !DILocation(line: 19, column: 6, scope: !48) +// CHECK:STDOUT: !58 = !DILocation(line: 20, column: 5, scope: !48) +// CHECK:STDOUT: !60 = !DILocation(line: 22, column: 15, scope: !48) +// CHECK:STDOUT: !61 = !DILocation(line: 22, column: 10, scope: !48) +// CHECK:STDOUT: !62 = !DILocation(line: 22, column: 3, scope: !48) +// CHECK:STDOUT: !63 = !{!49, !50} +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 18, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !79) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !9) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 2, scope: !64, type: !6) +// CHECK:STDOUT: !71 = !DILocation(line: 19, column: 7, scope: !64) +// CHECK:STDOUT: !72 = !DILocation(line: 19, column: 6, scope: !64) +// CHECK:STDOUT: !74 = !DILocation(line: 20, column: 5, scope: !64) +// CHECK:STDOUT: !76 = !DILocation(line: 22, column: 15, scope: !64) +// CHECK:STDOUT: !77 = !DILocation(line: 22, column: 10, scope: !64) +// CHECK:STDOUT: !78 = !DILocation(line: 22, column: 3, scope: !64) +// CHECK:STDOUT: !79 = !{!65, !66} +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !4, line: 18, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) +// CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !80, type: !9) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 2, scope: !80, type: !6) +// CHECK:STDOUT: !87 = !DILocation(line: 19, column: 7, scope: !80) +// CHECK:STDOUT: !88 = !DILocation(line: 19, column: 6, scope: !80) +// CHECK:STDOUT: !90 = !DILocation(line: 20, column: 5, scope: !80) +// CHECK:STDOUT: !92 = !DILocation(line: 22, column: 15, scope: !80) +// CHECK:STDOUT: !93 = !DILocation(line: 22, column: 10, scope: !80) +// CHECK:STDOUT: !94 = !DILocation(line: 22, column: 3, scope: !80) +// CHECK:STDOUT: !95 = !{!81, !82} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 25, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !127) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) +// CHECK:STDOUT: !114 = !DILocalVariable(arg: 2, scope: !112, type: !6) +// CHECK:STDOUT: !119 = !DILocation(line: 26, column: 7, scope: !112) +// CHECK:STDOUT: !120 = !DILocation(line: 26, column: 6, scope: !112) +// CHECK:STDOUT: !122 = !DILocation(line: 27, column: 5, scope: !112) +// CHECK:STDOUT: !124 = !DILocation(line: 29, column: 15, scope: !112) +// CHECK:STDOUT: !125 = !DILocation(line: 29, column: 10, scope: !112) +// CHECK:STDOUT: !126 = !DILocation(line: 29, column: 3, scope: !112) +// CHECK:STDOUT: !127 = !{!113, !114} +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 25, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !143) +// CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !128, type: !9) +// CHECK:STDOUT: !130 = !DILocalVariable(arg: 2, scope: !128, type: !6) +// CHECK:STDOUT: !135 = !DILocation(line: 26, column: 7, scope: !128) +// CHECK:STDOUT: !136 = !DILocation(line: 26, column: 6, scope: !128) +// CHECK:STDOUT: !138 = !DILocation(line: 27, column: 5, scope: !128) +// CHECK:STDOUT: !140 = !DILocation(line: 29, column: 15, scope: !128) +// CHECK:STDOUT: !141 = !DILocation(line: 29, column: 10, scope: !128) +// CHECK:STDOUT: !142 = !DILocation(line: 29, column: 3, scope: !128) +// CHECK:STDOUT: !143 = !{!129, !130} +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a76b78461416b4a8", scope: null, file: !4, line: 25, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !159) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !9) +// CHECK:STDOUT: !146 = !DILocalVariable(arg: 2, scope: !144, type: !6) +// CHECK:STDOUT: !151 = !DILocation(line: 26, column: 7, scope: !144) +// CHECK:STDOUT: !152 = !DILocation(line: 26, column: 6, scope: !144) +// CHECK:STDOUT: !154 = !DILocation(line: 27, column: 5, scope: !144) +// CHECK:STDOUT: !156 = !DILocation(line: 29, column: 15, scope: !144) +// CHECK:STDOUT: !157 = !DILocation(line: 29, column: 10, scope: !144) +// CHECK:STDOUT: !158 = !DILocation(line: 29, column: 3, scope: !144) +// CHECK:STDOUT: !159 = !{!145, !146} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon index bfe3c640f215..11724e6453c1 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon @@ -36,65 +36,65 @@ fn M() { // CHECK:STDOUT: source_filename = "call_recursive_reorder.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !8 -// CHECK:STDOUT: %b.var = alloca i1, align 1, !dbg !9 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !10 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !11 -// CHECK:STDOUT: %ptr_bool.var = alloca ptr, align 8, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !8 -// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !9 -// CHECK:STDOUT: store i8 0, ptr %b.var, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !10 -// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !11 -// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_bool.var), !dbg !12 -// CHECK:STDOUT: store ptr %b.var, ptr %ptr_bool.var, align 8, !dbg !12 -// CHECK:STDOUT: %.loc30_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !13 -// CHECK:STDOUT: %.loc30_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !14 -// CHECK:STDOUT: %F.call.loc30 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc30_5, ptr %.loc30_14, i32 0), !dbg !15 -// CHECK:STDOUT: %.loc31_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !16 -// CHECK:STDOUT: %.loc31_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !17 -// CHECK:STDOUT: %F.call.loc31 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc31_5, ptr %.loc31_14, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !15 +// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !17 +// CHECK:STDOUT: %b.var = alloca i1, align 1, !dbg !19 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !21 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !25 +// CHECK:STDOUT: %ptr_bool.var = alloca ptr, align 8, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !15 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !17 +// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !19 +// CHECK:STDOUT: store i8 0, ptr %b.var, align 1, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !21 +// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !25 +// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !25 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_bool.var), !dbg !29 +// CHECK:STDOUT: store ptr %b.var, ptr %ptr_bool.var, align 8, !dbg !29 +// CHECK:STDOUT: %.loc30_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !33 +// CHECK:STDOUT: %.loc30_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !34 +// CHECK:STDOUT: %F.call.loc30 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc30_5, ptr %.loc30_14, i32 0), !dbg !35 +// CHECK:STDOUT: %.loc31_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !38 +// CHECK:STDOUT: %.loc31_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !39 +// CHECK:STDOUT: %F.call.loc31 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc31_5, ptr %.loc31_14, i32 0), !dbg !40 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.369f53a8d4c38871(ptr %x, ptr %y, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.369f53a8d4c38871(ptr %x, ptr %y, i32 %count) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !41 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !42 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !59 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !60 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !43 +// CHECK:STDOUT: ret i32 %count, !dbg !62 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !44 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.369f53a8d4c38871(ptr %y, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !45 -// CHECK:STDOUT: ret i32 %F.call, !dbg !46 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !65 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.369f53a8d4c38871(ptr %y, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !66 +// CHECK:STDOUT: ret i32 %F.call, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -104,54 +104,54 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_reorder.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 26, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 27, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 28, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 30, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 30, column: 14, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 30, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 31, column: 5, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 31, column: 14, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 31, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 24, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 24, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 23, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !30} -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 23, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.369f53a8d4c38871", scope: null, file: !1, line: 15, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{!30, !23, !23, !30} -// CHECK:STDOUT: !37 = !{!38, !39, !40} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !34, type: !23) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !34, type: !23) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 3, scope: !34, type: !30) -// CHECK:STDOUT: !41 = !DILocation(line: 16, column: 7, scope: !34) -// CHECK:STDOUT: !42 = !DILocation(line: 16, column: 6, scope: !34) -// CHECK:STDOUT: !43 = !DILocation(line: 17, column: 5, scope: !34) -// CHECK:STDOUT: !44 = !DILocation(line: 19, column: 18, scope: !34) -// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 10, scope: !34) -// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 3, scope: !34) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_reorder.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 3, scope: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 24, column: 3, scope: !14) +// CHECK:STDOUT: !19 = !DILocation(line: 25, column: 3, scope: !14) +// CHECK:STDOUT: !21 = !DILocation(line: 26, column: 3, scope: !14) +// CHECK:STDOUT: !25 = !DILocation(line: 27, column: 3, scope: !14) +// CHECK:STDOUT: !29 = !DILocation(line: 28, column: 3, scope: !14) +// CHECK:STDOUT: !33 = !DILocation(line: 30, column: 5, scope: !14) +// CHECK:STDOUT: !34 = !DILocation(line: 30, column: 14, scope: !14) +// CHECK:STDOUT: !35 = !DILocation(line: 30, column: 3, scope: !14) +// CHECK:STDOUT: !36 = !{!6, !9, !9, !6} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !DILocation(line: 31, column: 5, scope: !14) +// CHECK:STDOUT: !39 = !DILocation(line: 31, column: 14, scope: !14) +// CHECK:STDOUT: !40 = !DILocation(line: 31, column: 3, scope: !14) +// CHECK:STDOUT: !41 = !DILocation(line: 22, column: 1, scope: !14) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 24, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !9) +// CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !6) +// CHECK:STDOUT: !48 = !DILocation(line: 23, column: 3, scope: !46) +// CHECK:STDOUT: !49 = !{!47} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.369f53a8d4c38871", scope: null, file: !4, line: 15, type: !37, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !9) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !50, type: !9) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 3, scope: !50, type: !6) +// CHECK:STDOUT: !59 = !DILocation(line: 16, column: 7, scope: !50) +// CHECK:STDOUT: !60 = !DILocation(line: 16, column: 6, scope: !50) +// CHECK:STDOUT: !62 = !DILocation(line: 17, column: 5, scope: !50) +// CHECK:STDOUT: !65 = !DILocation(line: 19, column: 18, scope: !50) +// CHECK:STDOUT: !66 = !DILocation(line: 19, column: 10, scope: !50) +// CHECK:STDOUT: !67 = !DILocation(line: 19, column: 3, scope: !50) +// CHECK:STDOUT: !68 = !{!51, !52, !53} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon index 8ab02a52eff7..77e99987bee0 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon @@ -57,224 +57,224 @@ fn M() { // CHECK:STDOUT: source_filename = "call_recursive_reorder_more.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %val_i16.var = alloca i16, align 2, !dbg !7 -// CHECK:STDOUT: %val_i32.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %val_i64.var = alloca i64, align 8, !dbg !9 -// CHECK:STDOUT: %val_f64.var = alloca double, align 8, !dbg !10 -// CHECK:STDOUT: %val_bool.var = alloca i1, align 1, !dbg !11 -// CHECK:STDOUT: %ptr_i16.var = alloca ptr, align 8, !dbg !12 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !13 -// CHECK:STDOUT: %ptr_i64.var = alloca ptr, align 8, !dbg !14 -// CHECK:STDOUT: %ptr_bool.var = alloca ptr, align 8, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_i16.var), !dbg !7 -// CHECK:STDOUT: store i16 poison, ptr %val_i16.var, align 2, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_i32.var), !dbg !8 -// CHECK:STDOUT: store i32 poison, ptr %val_i32.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_i64.var), !dbg !9 -// CHECK:STDOUT: store i64 poison, ptr %val_i64.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_f64.var), !dbg !10 -// CHECK:STDOUT: store double poison, ptr %val_f64.var, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_bool.var), !dbg !11 -// CHECK:STDOUT: store i8 poison, ptr %val_bool.var, align 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i16.var), !dbg !12 -// CHECK:STDOUT: store ptr %val_i16.var, ptr %ptr_i16.var, align 8, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !13 -// CHECK:STDOUT: store ptr %val_i32.var, ptr %ptr_i32.var, align 8, !dbg !13 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i64.var), !dbg !14 -// CHECK:STDOUT: store ptr %val_i64.var, ptr %ptr_i64.var, align 8, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_bool.var), !dbg !15 -// CHECK:STDOUT: store ptr %val_bool.var, ptr %ptr_bool.var, align 8, !dbg !15 -// CHECK:STDOUT: %.loc38_5 = load i16, ptr %val_i16.var, align 2, !dbg !16 -// CHECK:STDOUT: %.loc38_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !17 -// CHECK:STDOUT: %.loc38_23 = load ptr, ptr %ptr_bool.var, align 8, !dbg !18 -// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.bb004feba9dd474d(i16 %.loc38_5, ptr %.loc38_14, ptr %.loc38_23, i32 0), !dbg !19 -// CHECK:STDOUT: %.loc39_5 = load i32, ptr %val_i32.var, align 4, !dbg !20 -// CHECK:STDOUT: %.loc39_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !21 -// CHECK:STDOUT: %.loc39_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc39 = call i32 @_CF.Main.f24eb6b05368f488(i32 %.loc39_5, ptr %.loc39_14, ptr %.loc39_24, i32 0), !dbg !23 -// CHECK:STDOUT: %.loc40_5 = load i8, ptr %val_bool.var, align 1, !dbg !24 -// CHECK:STDOUT: %.loc40_51 = trunc i8 %.loc40_5 to i1, !dbg !24 -// CHECK:STDOUT: %.loc40_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !25 -// CHECK:STDOUT: %.loc40_25 = load ptr, ptr %ptr_i16.var, align 8, !dbg !26 -// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.427cba2b3278d1dc(i1 %.loc40_51, ptr %.loc40_15, ptr %.loc40_25, i32 0), !dbg !27 -// CHECK:STDOUT: %.loc41_5 = load i64, ptr %val_i64.var, align 8, !dbg !28 -// CHECK:STDOUT: %.loc41_14 = load i8, ptr %val_bool.var, align 1, !dbg !29 -// CHECK:STDOUT: %.loc41_142 = trunc i8 %.loc41_14 to i1, !dbg !29 -// CHECK:STDOUT: %.loc41_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !30 -// CHECK:STDOUT: %F.call.loc41 = call i32 @_CF.Main.ea32bb7f769e7967(i64 %.loc41_5, i1 %.loc41_142, ptr %.loc41_24, i32 0), !dbg !31 -// CHECK:STDOUT: %.loc42_5 = load double, ptr %val_f64.var, align 8, !dbg !32 -// CHECK:STDOUT: %.loc42_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !33 -// CHECK:STDOUT: %.loc42_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !34 -// CHECK:STDOUT: %F.call.loc42 = call i32 @_CF.Main.6eab5c6411742e70(double %.loc42_5, ptr %.loc42_14, ptr %.loc42_24, i32 0), !dbg !35 -// CHECK:STDOUT: %.loc46_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !36 -// CHECK:STDOUT: %.loc46_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !37 -// CHECK:STDOUT: %.loc46_24 = load ptr, ptr %ptr_i32.var, align 8, !dbg !38 -// CHECK:STDOUT: %F.call.loc46 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc46_5, ptr %.loc46_15, ptr %.loc46_24, i32 0), !dbg !39 -// CHECK:STDOUT: %.loc47_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !40 -// CHECK:STDOUT: %.loc47_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !41 -// CHECK:STDOUT: %.loc47_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !42 -// CHECK:STDOUT: %F.call.loc47 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc47_5, ptr %.loc47_15, ptr %.loc47_24, i32 0), !dbg !43 -// CHECK:STDOUT: %.loc48_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !44 -// CHECK:STDOUT: %.loc48_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !45 -// CHECK:STDOUT: %.loc48_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !46 -// CHECK:STDOUT: %F.call.loc48 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc48_5, ptr %.loc48_14, ptr %.loc48_24, i32 0), !dbg !47 -// CHECK:STDOUT: %.loc49_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !48 -// CHECK:STDOUT: %.loc49_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !49 -// CHECK:STDOUT: %.loc49_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !50 -// CHECK:STDOUT: %F.call.loc49 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc49_5, ptr %.loc49_14, ptr %.loc49_24, i32 0), !dbg !51 -// CHECK:STDOUT: %.loc50_5 = load ptr, ptr %ptr_i16.var, align 8, !dbg !52 -// CHECK:STDOUT: %.loc50_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !53 -// CHECK:STDOUT: %.loc50_23 = load ptr, ptr %ptr_i64.var, align 8, !dbg !54 -// CHECK:STDOUT: %F.call.loc50 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc50_5, ptr %.loc50_14, ptr %.loc50_23, i32 0), !dbg !55 -// CHECK:STDOUT: %.loc51_5 = load ptr, ptr %ptr_i64.var, align 8, !dbg !56 -// CHECK:STDOUT: %.loc51_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !57 -// CHECK:STDOUT: %.loc51_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !58 -// CHECK:STDOUT: %F.call.loc51 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc51_5, ptr %.loc51_14, ptr %.loc51_24, i32 0), !dbg !59 -// CHECK:STDOUT: %.loc52_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !60 -// CHECK:STDOUT: %.loc52_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !61 -// CHECK:STDOUT: %.loc52_25 = load ptr, ptr %ptr_bool.var, align 8, !dbg !62 -// CHECK:STDOUT: %F.call.loc52 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc52_5, ptr %.loc52_15, ptr %.loc52_25, i32 0), !dbg !63 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %val_f64.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %val_i64.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %val_i32.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %val_i16.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: %val_i16.var = alloca i16, align 2, !dbg !21 +// CHECK:STDOUT: %val_i32.var = alloca i32, align 4, !dbg !23 +// CHECK:STDOUT: %val_i64.var = alloca i64, align 8, !dbg !25 +// CHECK:STDOUT: %val_f64.var = alloca double, align 8, !dbg !27 +// CHECK:STDOUT: %val_bool.var = alloca i1, align 1, !dbg !29 +// CHECK:STDOUT: %ptr_i16.var = alloca ptr, align 8, !dbg !31 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !35 +// CHECK:STDOUT: %ptr_i64.var = alloca ptr, align 8, !dbg !39 +// CHECK:STDOUT: %ptr_bool.var = alloca ptr, align 8, !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_i16.var), !dbg !21 +// CHECK:STDOUT: store i16 poison, ptr %val_i16.var, align 2, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_i32.var), !dbg !23 +// CHECK:STDOUT: store i32 poison, ptr %val_i32.var, align 4, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_i64.var), !dbg !25 +// CHECK:STDOUT: store i64 poison, ptr %val_i64.var, align 8, !dbg !25 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_f64.var), !dbg !27 +// CHECK:STDOUT: store double poison, ptr %val_f64.var, align 8, !dbg !27 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %val_bool.var), !dbg !29 +// CHECK:STDOUT: store i8 poison, ptr %val_bool.var, align 1, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i16.var), !dbg !31 +// CHECK:STDOUT: store ptr %val_i16.var, ptr %ptr_i16.var, align 8, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !35 +// CHECK:STDOUT: store ptr %val_i32.var, ptr %ptr_i32.var, align 8, !dbg !35 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i64.var), !dbg !39 +// CHECK:STDOUT: store ptr %val_i64.var, ptr %ptr_i64.var, align 8, !dbg !39 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_bool.var), !dbg !43 +// CHECK:STDOUT: store ptr %val_bool.var, ptr %ptr_bool.var, align 8, !dbg !43 +// CHECK:STDOUT: %.loc38_5 = load i16, ptr %val_i16.var, align 2, !dbg !47 +// CHECK:STDOUT: %.loc38_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !48 +// CHECK:STDOUT: %.loc38_23 = load ptr, ptr %ptr_bool.var, align 8, !dbg !49 +// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.bb004feba9dd474d(i16 %.loc38_5, ptr %.loc38_14, ptr %.loc38_23, i32 0), !dbg !50 +// CHECK:STDOUT: %.loc39_5 = load i32, ptr %val_i32.var, align 4, !dbg !53 +// CHECK:STDOUT: %.loc39_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !54 +// CHECK:STDOUT: %.loc39_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !55 +// CHECK:STDOUT: %F.call.loc39 = call i32 @_CF.Main.f24eb6b05368f488(i32 %.loc39_5, ptr %.loc39_14, ptr %.loc39_24, i32 0), !dbg !56 +// CHECK:STDOUT: %.loc40_5 = load i8, ptr %val_bool.var, align 1, !dbg !59 +// CHECK:STDOUT: %.loc40_51 = trunc i8 %.loc40_5 to i1, !dbg !59 +// CHECK:STDOUT: %.loc40_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !60 +// CHECK:STDOUT: %.loc40_25 = load ptr, ptr %ptr_i16.var, align 8, !dbg !61 +// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.427cba2b3278d1dc(i1 %.loc40_51, ptr %.loc40_15, ptr %.loc40_25, i32 0), !dbg !62 +// CHECK:STDOUT: %.loc41_5 = load i64, ptr %val_i64.var, align 8, !dbg !65 +// CHECK:STDOUT: %.loc41_14 = load i8, ptr %val_bool.var, align 1, !dbg !66 +// CHECK:STDOUT: %.loc41_142 = trunc i8 %.loc41_14 to i1, !dbg !66 +// CHECK:STDOUT: %.loc41_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !67 +// CHECK:STDOUT: %F.call.loc41 = call i32 @_CF.Main.ea32bb7f769e7967(i64 %.loc41_5, i1 %.loc41_142, ptr %.loc41_24, i32 0), !dbg !68 +// CHECK:STDOUT: %.loc42_5 = load double, ptr %val_f64.var, align 8, !dbg !71 +// CHECK:STDOUT: %.loc42_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !72 +// CHECK:STDOUT: %.loc42_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !73 +// CHECK:STDOUT: %F.call.loc42 = call i32 @_CF.Main.6eab5c6411742e70(double %.loc42_5, ptr %.loc42_14, ptr %.loc42_24, i32 0), !dbg !74 +// CHECK:STDOUT: %.loc46_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !75 +// CHECK:STDOUT: %.loc46_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !76 +// CHECK:STDOUT: %.loc46_24 = load ptr, ptr %ptr_i32.var, align 8, !dbg !77 +// CHECK:STDOUT: %F.call.loc46 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc46_5, ptr %.loc46_15, ptr %.loc46_24, i32 0), !dbg !78 +// CHECK:STDOUT: %.loc47_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !79 +// CHECK:STDOUT: %.loc47_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !80 +// CHECK:STDOUT: %.loc47_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !81 +// CHECK:STDOUT: %F.call.loc47 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc47_5, ptr %.loc47_15, ptr %.loc47_24, i32 0), !dbg !82 +// CHECK:STDOUT: %.loc48_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !83 +// CHECK:STDOUT: %.loc48_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !84 +// CHECK:STDOUT: %.loc48_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !85 +// CHECK:STDOUT: %F.call.loc48 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc48_5, ptr %.loc48_14, ptr %.loc48_24, i32 0), !dbg !86 +// CHECK:STDOUT: %.loc49_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !87 +// CHECK:STDOUT: %.loc49_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !88 +// CHECK:STDOUT: %.loc49_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !89 +// CHECK:STDOUT: %F.call.loc49 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc49_5, ptr %.loc49_14, ptr %.loc49_24, i32 0), !dbg !90 +// CHECK:STDOUT: %.loc50_5 = load ptr, ptr %ptr_i16.var, align 8, !dbg !91 +// CHECK:STDOUT: %.loc50_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !92 +// CHECK:STDOUT: %.loc50_23 = load ptr, ptr %ptr_i64.var, align 8, !dbg !93 +// CHECK:STDOUT: %F.call.loc50 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc50_5, ptr %.loc50_14, ptr %.loc50_23, i32 0), !dbg !94 +// CHECK:STDOUT: %.loc51_5 = load ptr, ptr %ptr_i64.var, align 8, !dbg !95 +// CHECK:STDOUT: %.loc51_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !96 +// CHECK:STDOUT: %.loc51_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !97 +// CHECK:STDOUT: %F.call.loc51 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc51_5, ptr %.loc51_14, ptr %.loc51_24, i32 0), !dbg !98 +// CHECK:STDOUT: %.loc52_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !99 +// CHECK:STDOUT: %.loc52_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !100 +// CHECK:STDOUT: %.loc52_25 = load ptr, ptr %ptr_bool.var, align 8, !dbg !101 +// CHECK:STDOUT: %F.call.loc52 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc52_5, ptr %.loc52_15, ptr %.loc52_25, i32 0), !dbg !102 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %val_f64.var), !dbg !27 +// CHECK:STDOUT: call void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %val_i64.var), !dbg !25 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %val_i32.var), !dbg !23 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %val_i16.var), !dbg !21 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !104 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !71 +// CHECK:STDOUT: ret void, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: define weak_odr void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %self) #0 !dbg !108 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !78 +// CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !85 +// CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !86 { +// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !116 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !92 +// CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.bb004feba9dd474d(i16 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !93 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.bb004feba9dd474d(i16 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !120 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !101 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !102 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !131 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !132 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !103 +// CHECK:STDOUT: ret i32 %count, !dbg !134 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !104 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.bb004feba9dd474d(i16 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !105 -// CHECK:STDOUT: ret i32 %F.call, !dbg !106 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !138 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.bb004feba9dd474d(i16 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !139 +// CHECK:STDOUT: ret i32 %F.call, !dbg !140 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.f24eb6b05368f488(i32 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !107 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.f24eb6b05368f488(i32 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !142 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !115 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !116 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !153 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !154 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !117 +// CHECK:STDOUT: ret i32 %count, !dbg !156 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !118 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.f24eb6b05368f488(i32 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !119 -// CHECK:STDOUT: ret i32 %F.call, !dbg !120 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !160 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.f24eb6b05368f488(i32 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !161 +// CHECK:STDOUT: ret i32 %F.call, !dbg !162 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.427cba2b3278d1dc(i1 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !121 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.427cba2b3278d1dc(i1 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !164 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !129 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !130 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !175 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !176 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !131 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !132 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.427cba2b3278d1dc(i1 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !133 -// CHECK:STDOUT: ret i32 %F.call, !dbg !134 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.ea32bb7f769e7967(i64 %x, i1 %y, ptr %z, i32 %count) #0 !dbg !135 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !143 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !144 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !145 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !146 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.b1f6aa8c7fcac0ca(i64 %x, ptr %z, i1 %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !147 -// CHECK:STDOUT: ret i32 %F.call, !dbg !148 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.6eab5c6411742e70(double %x, ptr %y, ptr %z, i32 %count) #0 !dbg !149 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !155 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !156 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !157 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !158 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.6eab5c6411742e70(double %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !159 -// CHECK:STDOUT: ret i32 %F.call, !dbg !160 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.732da705e71cd359(ptr %x, ptr %y, ptr %z, i32 %count) #0 !dbg !161 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !167 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !168 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !169 -// CHECK:STDOUT: -// CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !170 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.732da705e71cd359(ptr %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !171 -// CHECK:STDOUT: ret i32 %F.call, !dbg !172 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.b1f6aa8c7fcac0ca(i64 %x, ptr %y, i1 %z, i32 %count) #0 !dbg !173 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !179 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !180 -// CHECK:STDOUT: -// CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: ret i32 %count, !dbg !181 +// CHECK:STDOUT: ret i32 %count, !dbg !178 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !182 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.ea32bb7f769e7967(i64 %x, i1 %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !183 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.427cba2b3278d1dc(i1 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !183 // CHECK:STDOUT: ret i32 %F.call, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.ea32bb7f769e7967(i64 %x, i1 %y, ptr %z, i32 %count) #0 !dbg !186 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !197 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !198 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %entry +// CHECK:STDOUT: ret i32 %count, !dbg !200 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %entry +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !204 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.b1f6aa8c7fcac0ca(i64 %x, ptr %z, i1 %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !205 +// CHECK:STDOUT: ret i32 %F.call, !dbg !206 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.6eab5c6411742e70(double %x, ptr %y, ptr %z, i32 %count) #0 !dbg !208 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !219 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !220 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %entry +// CHECK:STDOUT: ret i32 %count, !dbg !222 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %entry +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !226 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.6eab5c6411742e70(double %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !227 +// CHECK:STDOUT: ret i32 %F.call, !dbg !228 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.732da705e71cd359(ptr %x, ptr %y, ptr %z, i32 %count) #0 !dbg !230 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !241 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !242 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %entry +// CHECK:STDOUT: ret i32 %count, !dbg !244 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %entry +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !248 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.732da705e71cd359(ptr %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !249 +// CHECK:STDOUT: ret i32 %F.call, !dbg !250 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.b1f6aa8c7fcac0ca(i64 %x, ptr %y, i1 %z, i32 %count) #0 !dbg !450 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !461 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !462 +// CHECK:STDOUT: +// CHECK:STDOUT: if.then: ; preds = %entry +// CHECK:STDOUT: ret i32 %count, !dbg !464 +// CHECK:STDOUT: +// CHECK:STDOUT: if.else: ; preds = %entry +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !468 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.ea32bb7f769e7967(i64 %x, i1 %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !469 +// CHECK:STDOUT: ret i32 %F.call, !dbg !470 +// CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 8, 7, 6, 5, 4, 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @_CF.Main.732da705e71cd359, { 5, 7, 6, 4, 0, 1, 2, 3 } @@ -282,192 +282,192 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_reorder_more.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 26, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 27, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 29, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 30, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 31, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 32, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 38, column: 5, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 38, column: 14, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 38, column: 23, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 38, column: 3, scope: !4) -// CHECK:STDOUT: !20 = !DILocation(line: 39, column: 5, scope: !4) -// CHECK:STDOUT: !21 = !DILocation(line: 39, column: 14, scope: !4) -// CHECK:STDOUT: !22 = !DILocation(line: 39, column: 24, scope: !4) -// CHECK:STDOUT: !23 = !DILocation(line: 39, column: 3, scope: !4) -// CHECK:STDOUT: !24 = !DILocation(line: 40, column: 5, scope: !4) -// CHECK:STDOUT: !25 = !DILocation(line: 40, column: 15, scope: !4) -// CHECK:STDOUT: !26 = !DILocation(line: 40, column: 25, scope: !4) -// CHECK:STDOUT: !27 = !DILocation(line: 40, column: 3, scope: !4) -// CHECK:STDOUT: !28 = !DILocation(line: 41, column: 5, scope: !4) -// CHECK:STDOUT: !29 = !DILocation(line: 41, column: 14, scope: !4) -// CHECK:STDOUT: !30 = !DILocation(line: 41, column: 24, scope: !4) -// CHECK:STDOUT: !31 = !DILocation(line: 41, column: 3, scope: !4) -// CHECK:STDOUT: !32 = !DILocation(line: 42, column: 5, scope: !4) -// CHECK:STDOUT: !33 = !DILocation(line: 42, column: 14, scope: !4) -// CHECK:STDOUT: !34 = !DILocation(line: 42, column: 24, scope: !4) -// CHECK:STDOUT: !35 = !DILocation(line: 42, column: 3, scope: !4) -// CHECK:STDOUT: !36 = !DILocation(line: 46, column: 5, scope: !4) -// CHECK:STDOUT: !37 = !DILocation(line: 46, column: 15, scope: !4) -// CHECK:STDOUT: !38 = !DILocation(line: 46, column: 24, scope: !4) -// CHECK:STDOUT: !39 = !DILocation(line: 46, column: 3, scope: !4) -// CHECK:STDOUT: !40 = !DILocation(line: 47, column: 5, scope: !4) -// CHECK:STDOUT: !41 = !DILocation(line: 47, column: 15, scope: !4) -// CHECK:STDOUT: !42 = !DILocation(line: 47, column: 24, scope: !4) -// CHECK:STDOUT: !43 = !DILocation(line: 47, column: 3, scope: !4) -// CHECK:STDOUT: !44 = !DILocation(line: 48, column: 5, scope: !4) -// CHECK:STDOUT: !45 = !DILocation(line: 48, column: 14, scope: !4) -// CHECK:STDOUT: !46 = !DILocation(line: 48, column: 24, scope: !4) -// CHECK:STDOUT: !47 = !DILocation(line: 48, column: 3, scope: !4) -// CHECK:STDOUT: !48 = !DILocation(line: 49, column: 5, scope: !4) -// CHECK:STDOUT: !49 = !DILocation(line: 49, column: 14, scope: !4) -// CHECK:STDOUT: !50 = !DILocation(line: 49, column: 24, scope: !4) -// CHECK:STDOUT: !51 = !DILocation(line: 49, column: 3, scope: !4) -// CHECK:STDOUT: !52 = !DILocation(line: 50, column: 5, scope: !4) -// CHECK:STDOUT: !53 = !DILocation(line: 50, column: 14, scope: !4) -// CHECK:STDOUT: !54 = !DILocation(line: 50, column: 23, scope: !4) -// CHECK:STDOUT: !55 = !DILocation(line: 50, column: 3, scope: !4) -// CHECK:STDOUT: !56 = !DILocation(line: 51, column: 5, scope: !4) -// CHECK:STDOUT: !57 = !DILocation(line: 51, column: 14, scope: !4) -// CHECK:STDOUT: !58 = !DILocation(line: 51, column: 24, scope: !4) -// CHECK:STDOUT: !59 = !DILocation(line: 51, column: 3, scope: !4) -// CHECK:STDOUT: !60 = !DILocation(line: 52, column: 5, scope: !4) -// CHECK:STDOUT: !61 = !DILocation(line: 52, column: 15, scope: !4) -// CHECK:STDOUT: !62 = !DILocation(line: 52, column: 25, scope: !4) -// CHECK:STDOUT: !63 = !DILocation(line: 52, column: 3, scope: !4) -// CHECK:STDOUT: !64 = !DILocation(line: 22, column: 1, scope: !4) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 26, type: !66, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !69) -// CHECK:STDOUT: !66 = !DISubroutineType(types: !67) -// CHECK:STDOUT: !67 = !{null, !68} -// CHECK:STDOUT: !68 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !69 = !{!70} -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !65, type: !68) -// CHECK:STDOUT: !71 = !DILocation(line: 26, column: 3, scope: !65) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f42013854821c52:core.Destroy.Core", scope: null, file: !1, line: 25, type: !73, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !76) -// CHECK:STDOUT: !73 = !DISubroutineType(types: !74) -// CHECK:STDOUT: !74 = !{null, !75} -// CHECK:STDOUT: !75 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !76 = !{!77} -// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !72, type: !75) -// CHECK:STDOUT: !78 = !DILocation(line: 25, column: 3, scope: !72) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 24, type: !80, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !83) -// CHECK:STDOUT: !80 = !DISubroutineType(types: !81) -// CHECK:STDOUT: !81 = !{null, !82} -// CHECK:STDOUT: !82 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !83 = !{!84} -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !79, type: !82) -// CHECK:STDOUT: !85 = !DILocation(line: 24, column: 3, scope: !79) -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !1, line: 23, type: !87, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !90) -// CHECK:STDOUT: !87 = !DISubroutineType(types: !88) -// CHECK:STDOUT: !88 = !{null, !89} -// CHECK:STDOUT: !89 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !90 = !{!91} -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !86, type: !89) -// CHECK:STDOUT: !92 = !DILocation(line: 23, column: 3, scope: !86) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.bb004feba9dd474d", scope: null, file: !1, line: 15, type: !94, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !96) -// CHECK:STDOUT: !94 = !DISubroutineType(types: !95) -// CHECK:STDOUT: !95 = !{!82, !89, !68, !68, !82} -// CHECK:STDOUT: !96 = !{!97, !98, !99, !100} -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !93, type: !89) -// CHECK:STDOUT: !98 = !DILocalVariable(arg: 2, scope: !93, type: !68) -// CHECK:STDOUT: !99 = !DILocalVariable(arg: 3, scope: !93, type: !68) -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 4, scope: !93, type: !82) -// CHECK:STDOUT: !101 = !DILocation(line: 16, column: 7, scope: !93) -// CHECK:STDOUT: !102 = !DILocation(line: 16, column: 6, scope: !93) -// CHECK:STDOUT: !103 = !DILocation(line: 17, column: 5, scope: !93) -// CHECK:STDOUT: !104 = !DILocation(line: 19, column: 21, scope: !93) -// CHECK:STDOUT: !105 = !DILocation(line: 19, column: 10, scope: !93) -// CHECK:STDOUT: !106 = !DILocation(line: 19, column: 3, scope: !93) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f24eb6b05368f488", scope: null, file: !1, line: 15, type: !108, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !110) -// CHECK:STDOUT: !108 = !DISubroutineType(types: !109) -// CHECK:STDOUT: !109 = !{!82, !82, !68, !68, !82} -// CHECK:STDOUT: !110 = !{!111, !112, !113, !114} -// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !107, type: !82) -// CHECK:STDOUT: !112 = !DILocalVariable(arg: 2, scope: !107, type: !68) -// CHECK:STDOUT: !113 = !DILocalVariable(arg: 3, scope: !107, type: !68) -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 4, scope: !107, type: !82) -// CHECK:STDOUT: !115 = !DILocation(line: 16, column: 7, scope: !107) -// CHECK:STDOUT: !116 = !DILocation(line: 16, column: 6, scope: !107) -// CHECK:STDOUT: !117 = !DILocation(line: 17, column: 5, scope: !107) -// CHECK:STDOUT: !118 = !DILocation(line: 19, column: 21, scope: !107) -// CHECK:STDOUT: !119 = !DILocation(line: 19, column: 10, scope: !107) -// CHECK:STDOUT: !120 = !DILocation(line: 19, column: 3, scope: !107) -// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.427cba2b3278d1dc", scope: null, file: !1, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !124) -// CHECK:STDOUT: !122 = !DISubroutineType(types: !123) -// CHECK:STDOUT: !123 = !{!82, !68, !68, !68, !82} -// CHECK:STDOUT: !124 = !{!125, !126, !127, !128} -// CHECK:STDOUT: !125 = !DILocalVariable(arg: 1, scope: !121, type: !68) -// CHECK:STDOUT: !126 = !DILocalVariable(arg: 2, scope: !121, type: !68) -// CHECK:STDOUT: !127 = !DILocalVariable(arg: 3, scope: !121, type: !68) -// CHECK:STDOUT: !128 = !DILocalVariable(arg: 4, scope: !121, type: !82) -// CHECK:STDOUT: !129 = !DILocation(line: 16, column: 7, scope: !121) -// CHECK:STDOUT: !130 = !DILocation(line: 16, column: 6, scope: !121) -// CHECK:STDOUT: !131 = !DILocation(line: 17, column: 5, scope: !121) -// CHECK:STDOUT: !132 = !DILocation(line: 19, column: 21, scope: !121) -// CHECK:STDOUT: !133 = !DILocation(line: 19, column: 10, scope: !121) -// CHECK:STDOUT: !134 = !DILocation(line: 19, column: 3, scope: !121) -// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.ea32bb7f769e7967", scope: null, file: !1, line: 15, type: !136, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !138) -// CHECK:STDOUT: !136 = !DISubroutineType(types: !137) -// CHECK:STDOUT: !137 = !{!82, !75, !68, !68, !82} -// CHECK:STDOUT: !138 = !{!139, !140, !141, !142} -// CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !135, type: !75) -// CHECK:STDOUT: !140 = !DILocalVariable(arg: 2, scope: !135, type: !68) -// CHECK:STDOUT: !141 = !DILocalVariable(arg: 3, scope: !135, type: !68) -// CHECK:STDOUT: !142 = !DILocalVariable(arg: 4, scope: !135, type: !82) -// CHECK:STDOUT: !143 = !DILocation(line: 16, column: 7, scope: !135) -// CHECK:STDOUT: !144 = !DILocation(line: 16, column: 6, scope: !135) -// CHECK:STDOUT: !145 = !DILocation(line: 17, column: 5, scope: !135) -// CHECK:STDOUT: !146 = !DILocation(line: 19, column: 21, scope: !135) -// CHECK:STDOUT: !147 = !DILocation(line: 19, column: 10, scope: !135) -// CHECK:STDOUT: !148 = !DILocation(line: 19, column: 3, scope: !135) -// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6eab5c6411742e70", scope: null, file: !1, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !150) -// CHECK:STDOUT: !150 = !{!151, !152, !153, !154} -// CHECK:STDOUT: !151 = !DILocalVariable(arg: 1, scope: !149, type: !68) -// CHECK:STDOUT: !152 = !DILocalVariable(arg: 2, scope: !149, type: !68) -// CHECK:STDOUT: !153 = !DILocalVariable(arg: 3, scope: !149, type: !68) -// CHECK:STDOUT: !154 = !DILocalVariable(arg: 4, scope: !149, type: !82) -// CHECK:STDOUT: !155 = !DILocation(line: 16, column: 7, scope: !149) -// CHECK:STDOUT: !156 = !DILocation(line: 16, column: 6, scope: !149) -// CHECK:STDOUT: !157 = !DILocation(line: 17, column: 5, scope: !149) -// CHECK:STDOUT: !158 = !DILocation(line: 19, column: 21, scope: !149) -// CHECK:STDOUT: !159 = !DILocation(line: 19, column: 10, scope: !149) -// CHECK:STDOUT: !160 = !DILocation(line: 19, column: 3, scope: !149) -// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.732da705e71cd359", scope: null, file: !1, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !162) -// CHECK:STDOUT: !162 = !{!163, !164, !165, !166} -// CHECK:STDOUT: !163 = !DILocalVariable(arg: 1, scope: !161, type: !68) -// CHECK:STDOUT: !164 = !DILocalVariable(arg: 2, scope: !161, type: !68) -// CHECK:STDOUT: !165 = !DILocalVariable(arg: 3, scope: !161, type: !68) -// CHECK:STDOUT: !166 = !DILocalVariable(arg: 4, scope: !161, type: !82) -// CHECK:STDOUT: !167 = !DILocation(line: 16, column: 7, scope: !161) -// CHECK:STDOUT: !168 = !DILocation(line: 16, column: 6, scope: !161) -// CHECK:STDOUT: !169 = !DILocation(line: 17, column: 5, scope: !161) -// CHECK:STDOUT: !170 = !DILocation(line: 19, column: 21, scope: !161) -// CHECK:STDOUT: !171 = !DILocation(line: 19, column: 10, scope: !161) -// CHECK:STDOUT: !172 = !DILocation(line: 19, column: 3, scope: !161) -// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b1f6aa8c7fcac0ca", scope: null, file: !1, line: 15, type: !136, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !174) -// CHECK:STDOUT: !174 = !{!175, !176, !177, !178} -// CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !173, type: !75) -// CHECK:STDOUT: !176 = !DILocalVariable(arg: 2, scope: !173, type: !68) -// CHECK:STDOUT: !177 = !DILocalVariable(arg: 3, scope: !173, type: !68) -// CHECK:STDOUT: !178 = !DILocalVariable(arg: 4, scope: !173, type: !82) -// CHECK:STDOUT: !179 = !DILocation(line: 16, column: 7, scope: !173) -// CHECK:STDOUT: !180 = !DILocation(line: 16, column: 6, scope: !173) -// CHECK:STDOUT: !181 = !DILocation(line: 17, column: 5, scope: !173) -// CHECK:STDOUT: !182 = !DILocation(line: 19, column: 21, scope: !173) -// CHECK:STDOUT: !183 = !DILocation(line: 19, column: 10, scope: !173) -// CHECK:STDOUT: !184 = !DILocation(line: 19, column: 3, scope: !173) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_reorder_more.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !{null} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !12 = !{null, !11} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{null, !8} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = !{null, !6} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = !{null, !7} +// CHECK:STDOUT: !19 = !DISubroutineType(types: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 22, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !21 = !DILocation(line: 23, column: 3, scope: !20) +// CHECK:STDOUT: !23 = !DILocation(line: 24, column: 3, scope: !20) +// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 3, scope: !20) +// CHECK:STDOUT: !27 = !DILocation(line: 26, column: 3, scope: !20) +// CHECK:STDOUT: !29 = !DILocation(line: 27, column: 3, scope: !20) +// CHECK:STDOUT: !31 = !DILocation(line: 29, column: 3, scope: !20) +// CHECK:STDOUT: !35 = !DILocation(line: 30, column: 3, scope: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 31, column: 3, scope: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 32, column: 3, scope: !20) +// CHECK:STDOUT: !47 = !DILocation(line: 38, column: 5, scope: !20) +// CHECK:STDOUT: !48 = !DILocation(line: 38, column: 14, scope: !20) +// CHECK:STDOUT: !49 = !DILocation(line: 38, column: 23, scope: !20) +// CHECK:STDOUT: !50 = !DILocation(line: 38, column: 3, scope: !20) +// CHECK:STDOUT: !51 = !{!6, !7, !11, !11, !6} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = !DILocation(line: 39, column: 5, scope: !20) +// CHECK:STDOUT: !54 = !DILocation(line: 39, column: 14, scope: !20) +// CHECK:STDOUT: !55 = !DILocation(line: 39, column: 24, scope: !20) +// CHECK:STDOUT: !56 = !DILocation(line: 39, column: 3, scope: !20) +// CHECK:STDOUT: !57 = !{!6, !6, !11, !11, !6} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !59 = !DILocation(line: 40, column: 5, scope: !20) +// CHECK:STDOUT: !60 = !DILocation(line: 40, column: 15, scope: !20) +// CHECK:STDOUT: !61 = !DILocation(line: 40, column: 25, scope: !20) +// CHECK:STDOUT: !62 = !DILocation(line: 40, column: 3, scope: !20) +// CHECK:STDOUT: !63 = !{!6, !11, !11, !11, !6} +// CHECK:STDOUT: !64 = !DISubroutineType(types: !63) +// CHECK:STDOUT: !65 = !DILocation(line: 41, column: 5, scope: !20) +// CHECK:STDOUT: !66 = !DILocation(line: 41, column: 14, scope: !20) +// CHECK:STDOUT: !67 = !DILocation(line: 41, column: 24, scope: !20) +// CHECK:STDOUT: !68 = !DILocation(line: 41, column: 3, scope: !20) +// CHECK:STDOUT: !69 = !{!6, !8, !11, !11, !6} +// CHECK:STDOUT: !70 = !DISubroutineType(types: !69) +// CHECK:STDOUT: !71 = !DILocation(line: 42, column: 5, scope: !20) +// CHECK:STDOUT: !72 = !DILocation(line: 42, column: 14, scope: !20) +// CHECK:STDOUT: !73 = !DILocation(line: 42, column: 24, scope: !20) +// CHECK:STDOUT: !74 = !DILocation(line: 42, column: 3, scope: !20) +// CHECK:STDOUT: !75 = !DILocation(line: 46, column: 5, scope: !20) +// CHECK:STDOUT: !76 = !DILocation(line: 46, column: 15, scope: !20) +// CHECK:STDOUT: !77 = !DILocation(line: 46, column: 24, scope: !20) +// CHECK:STDOUT: !78 = !DILocation(line: 46, column: 3, scope: !20) +// CHECK:STDOUT: !79 = !DILocation(line: 47, column: 5, scope: !20) +// CHECK:STDOUT: !80 = !DILocation(line: 47, column: 15, scope: !20) +// CHECK:STDOUT: !81 = !DILocation(line: 47, column: 24, scope: !20) +// CHECK:STDOUT: !82 = !DILocation(line: 47, column: 3, scope: !20) +// CHECK:STDOUT: !83 = !DILocation(line: 48, column: 5, scope: !20) +// CHECK:STDOUT: !84 = !DILocation(line: 48, column: 14, scope: !20) +// CHECK:STDOUT: !85 = !DILocation(line: 48, column: 24, scope: !20) +// CHECK:STDOUT: !86 = !DILocation(line: 48, column: 3, scope: !20) +// CHECK:STDOUT: !87 = !DILocation(line: 49, column: 5, scope: !20) +// CHECK:STDOUT: !88 = !DILocation(line: 49, column: 14, scope: !20) +// CHECK:STDOUT: !89 = !DILocation(line: 49, column: 24, scope: !20) +// CHECK:STDOUT: !90 = !DILocation(line: 49, column: 3, scope: !20) +// CHECK:STDOUT: !91 = !DILocation(line: 50, column: 5, scope: !20) +// CHECK:STDOUT: !92 = !DILocation(line: 50, column: 14, scope: !20) +// CHECK:STDOUT: !93 = !DILocation(line: 50, column: 23, scope: !20) +// CHECK:STDOUT: !94 = !DILocation(line: 50, column: 3, scope: !20) +// CHECK:STDOUT: !95 = !DILocation(line: 51, column: 5, scope: !20) +// CHECK:STDOUT: !96 = !DILocation(line: 51, column: 14, scope: !20) +// CHECK:STDOUT: !97 = !DILocation(line: 51, column: 24, scope: !20) +// CHECK:STDOUT: !98 = !DILocation(line: 51, column: 3, scope: !20) +// CHECK:STDOUT: !99 = !DILocation(line: 52, column: 5, scope: !20) +// CHECK:STDOUT: !100 = !DILocation(line: 52, column: 15, scope: !20) +// CHECK:STDOUT: !101 = !DILocation(line: 52, column: 25, scope: !20) +// CHECK:STDOUT: !102 = !DILocation(line: 52, column: 3, scope: !20) +// CHECK:STDOUT: !103 = !DILocation(line: 22, column: 1, scope: !20) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !107) +// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !11) +// CHECK:STDOUT: !106 = !DILocation(line: 26, column: 3, scope: !104) +// CHECK:STDOUT: !107 = !{!105} +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f42013854821c52:core.Destroy.Core", scope: null, file: !4, line: 25, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !111) +// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !8) +// CHECK:STDOUT: !110 = !DILocation(line: 25, column: 3, scope: !108) +// CHECK:STDOUT: !111 = !{!109} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 24, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) +// CHECK:STDOUT: !114 = !DILocation(line: 24, column: 3, scope: !112) +// CHECK:STDOUT: !115 = !{!113} +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !4, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) +// CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !7) +// CHECK:STDOUT: !118 = !DILocation(line: 23, column: 3, scope: !116) +// CHECK:STDOUT: !119 = !{!117} +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.bb004feba9dd474d", scope: null, file: !4, line: 15, type: !52, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !141) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !7) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !120, type: !11) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 3, scope: !120, type: !11) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 4, scope: !120, type: !6) +// CHECK:STDOUT: !131 = !DILocation(line: 16, column: 7, scope: !120) +// CHECK:STDOUT: !132 = !DILocation(line: 16, column: 6, scope: !120) +// CHECK:STDOUT: !134 = !DILocation(line: 17, column: 5, scope: !120) +// CHECK:STDOUT: !138 = !DILocation(line: 19, column: 21, scope: !120) +// CHECK:STDOUT: !139 = !DILocation(line: 19, column: 10, scope: !120) +// CHECK:STDOUT: !140 = !DILocation(line: 19, column: 3, scope: !120) +// CHECK:STDOUT: !141 = !{!121, !122, !123, !124} +// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f24eb6b05368f488", scope: null, file: !4, line: 15, type: !58, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !163) +// CHECK:STDOUT: !143 = !DILocalVariable(arg: 1, scope: !142, type: !6) +// CHECK:STDOUT: !144 = !DILocalVariable(arg: 2, scope: !142, type: !11) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 3, scope: !142, type: !11) +// CHECK:STDOUT: !146 = !DILocalVariable(arg: 4, scope: !142, type: !6) +// CHECK:STDOUT: !153 = !DILocation(line: 16, column: 7, scope: !142) +// CHECK:STDOUT: !154 = !DILocation(line: 16, column: 6, scope: !142) +// CHECK:STDOUT: !156 = !DILocation(line: 17, column: 5, scope: !142) +// CHECK:STDOUT: !160 = !DILocation(line: 19, column: 21, scope: !142) +// CHECK:STDOUT: !161 = !DILocation(line: 19, column: 10, scope: !142) +// CHECK:STDOUT: !162 = !DILocation(line: 19, column: 3, scope: !142) +// CHECK:STDOUT: !163 = !{!143, !144, !145, !146} +// CHECK:STDOUT: !164 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.427cba2b3278d1dc", scope: null, file: !4, line: 15, type: !64, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !185) +// CHECK:STDOUT: !165 = !DILocalVariable(arg: 1, scope: !164, type: !11) +// CHECK:STDOUT: !166 = !DILocalVariable(arg: 2, scope: !164, type: !11) +// CHECK:STDOUT: !167 = !DILocalVariable(arg: 3, scope: !164, type: !11) +// CHECK:STDOUT: !168 = !DILocalVariable(arg: 4, scope: !164, type: !6) +// CHECK:STDOUT: !175 = !DILocation(line: 16, column: 7, scope: !164) +// CHECK:STDOUT: !176 = !DILocation(line: 16, column: 6, scope: !164) +// CHECK:STDOUT: !178 = !DILocation(line: 17, column: 5, scope: !164) +// CHECK:STDOUT: !182 = !DILocation(line: 19, column: 21, scope: !164) +// CHECK:STDOUT: !183 = !DILocation(line: 19, column: 10, scope: !164) +// CHECK:STDOUT: !184 = !DILocation(line: 19, column: 3, scope: !164) +// CHECK:STDOUT: !185 = !{!165, !166, !167, !168} +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.ea32bb7f769e7967", scope: null, file: !4, line: 15, type: !70, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !207) +// CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !8) +// CHECK:STDOUT: !188 = !DILocalVariable(arg: 2, scope: !186, type: !11) +// CHECK:STDOUT: !189 = !DILocalVariable(arg: 3, scope: !186, type: !11) +// CHECK:STDOUT: !190 = !DILocalVariable(arg: 4, scope: !186, type: !6) +// CHECK:STDOUT: !197 = !DILocation(line: 16, column: 7, scope: !186) +// CHECK:STDOUT: !198 = !DILocation(line: 16, column: 6, scope: !186) +// CHECK:STDOUT: !200 = !DILocation(line: 17, column: 5, scope: !186) +// CHECK:STDOUT: !204 = !DILocation(line: 19, column: 21, scope: !186) +// CHECK:STDOUT: !205 = !DILocation(line: 19, column: 10, scope: !186) +// CHECK:STDOUT: !206 = !DILocation(line: 19, column: 3, scope: !186) +// CHECK:STDOUT: !207 = !{!187, !188, !189, !190} +// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6eab5c6411742e70", scope: null, file: !4, line: 15, type: !64, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !229) +// CHECK:STDOUT: !209 = !DILocalVariable(arg: 1, scope: !208, type: !11) +// CHECK:STDOUT: !210 = !DILocalVariable(arg: 2, scope: !208, type: !11) +// CHECK:STDOUT: !211 = !DILocalVariable(arg: 3, scope: !208, type: !11) +// CHECK:STDOUT: !212 = !DILocalVariable(arg: 4, scope: !208, type: !6) +// CHECK:STDOUT: !219 = !DILocation(line: 16, column: 7, scope: !208) +// CHECK:STDOUT: !220 = !DILocation(line: 16, column: 6, scope: !208) +// CHECK:STDOUT: !222 = !DILocation(line: 17, column: 5, scope: !208) +// CHECK:STDOUT: !226 = !DILocation(line: 19, column: 21, scope: !208) +// CHECK:STDOUT: !227 = !DILocation(line: 19, column: 10, scope: !208) +// CHECK:STDOUT: !228 = !DILocation(line: 19, column: 3, scope: !208) +// CHECK:STDOUT: !229 = !{!209, !210, !211, !212} +// CHECK:STDOUT: !230 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.732da705e71cd359", scope: null, file: !4, line: 15, type: !64, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !251) +// CHECK:STDOUT: !231 = !DILocalVariable(arg: 1, scope: !230, type: !11) +// CHECK:STDOUT: !232 = !DILocalVariable(arg: 2, scope: !230, type: !11) +// CHECK:STDOUT: !233 = !DILocalVariable(arg: 3, scope: !230, type: !11) +// CHECK:STDOUT: !234 = !DILocalVariable(arg: 4, scope: !230, type: !6) +// CHECK:STDOUT: !241 = !DILocation(line: 16, column: 7, scope: !230) +// CHECK:STDOUT: !242 = !DILocation(line: 16, column: 6, scope: !230) +// CHECK:STDOUT: !244 = !DILocation(line: 17, column: 5, scope: !230) +// CHECK:STDOUT: !248 = !DILocation(line: 19, column: 21, scope: !230) +// CHECK:STDOUT: !249 = !DILocation(line: 19, column: 10, scope: !230) +// CHECK:STDOUT: !250 = !DILocation(line: 19, column: 3, scope: !230) +// CHECK:STDOUT: !251 = !{!231, !232, !233, !234} +// CHECK:STDOUT: !450 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b1f6aa8c7fcac0ca", scope: null, file: !4, line: 15, type: !70, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !471) +// CHECK:STDOUT: !451 = !DILocalVariable(arg: 1, scope: !450, type: !8) +// CHECK:STDOUT: !452 = !DILocalVariable(arg: 2, scope: !450, type: !11) +// CHECK:STDOUT: !453 = !DILocalVariable(arg: 3, scope: !450, type: !11) +// CHECK:STDOUT: !454 = !DILocalVariable(arg: 4, scope: !450, type: !6) +// CHECK:STDOUT: !461 = !DILocation(line: 16, column: 7, scope: !450) +// CHECK:STDOUT: !462 = !DILocation(line: 16, column: 6, scope: !450) +// CHECK:STDOUT: !464 = !DILocation(line: 17, column: 5, scope: !450) +// CHECK:STDOUT: !468 = !DILocation(line: 19, column: 21, scope: !450) +// CHECK:STDOUT: !469 = !DILocation(line: 19, column: 10, scope: !450) +// CHECK:STDOUT: !470 = !DILocation(line: 19, column: 3, scope: !450) +// CHECK:STDOUT: !471 = !{!451, !452, !453, !454} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon index 5eebcdf8b525..f09ebdd434f7 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon @@ -90,276 +90,276 @@ fn M() { // CHECK:STDOUT: @printf.int.format = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !8 -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !9 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !8 -// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !9 -// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !10 -// CHECK:STDOUT: %.loc80_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %A.call.loc80 = call i32 @_CA.Main.4d6ceefeb7f772f4(i32 %.loc80_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc81_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %A.call.loc81 = call double @_CA.Main.c5e4ba542a56b71f(double %.loc81_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc82_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %A.call.loc82 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc82_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc83_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %A.call.loc83 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc83_5, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !15 +// CHECK:STDOUT: %m.var = alloca double, align 8, !dbg !17 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !19 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !15 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !17 +// CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !19 +// CHECK:STDOUT: store ptr %n.var, ptr %ptr_i32.var, align 8, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !23 +// CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !23 +// CHECK:STDOUT: %.loc80_5 = load i32, ptr %n.var, align 4, !dbg !27 +// CHECK:STDOUT: %A.call.loc80 = call i32 @_CA.Main.4d6ceefeb7f772f4(i32 %.loc80_5, i32 0), !dbg !28 +// CHECK:STDOUT: %.loc81_5 = load double, ptr %m.var, align 8, !dbg !31 +// CHECK:STDOUT: %A.call.loc81 = call double @_CA.Main.c5e4ba542a56b71f(double %.loc81_5, i32 0), !dbg !32 +// CHECK:STDOUT: %.loc82_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !35 +// CHECK:STDOUT: %A.call.loc82 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc82_5, i32 0), !dbg !36 +// CHECK:STDOUT: %.loc83_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !37 +// CHECK:STDOUT: %A.call.loc83 = call ptr @_CA.Main.a76b78461416b4a8(ptr %.loc83_5, i32 0), !dbg !38 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %m.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !40 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !41 -// CHECK:STDOUT: ret i32 %D.call, !dbg !42 +// CHECK:STDOUT: call void @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !57 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !62 +// CHECK:STDOUT: ret i32 %D.call, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CA.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !43 { +// CHECK:STDOUT: define linkonce_odr double @_CA.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !49 -// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !50 -// CHECK:STDOUT: ret double %D.call, !dbg !51 +// CHECK:STDOUT: call void @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !74 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !79 +// CHECK:STDOUT: ret double %D.call, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !52 { +// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !56 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !57 -// CHECK:STDOUT: ret ptr %D.call, !dbg !58 +// CHECK:STDOUT: call void @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !91 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !94 +// CHECK:STDOUT: ret ptr %D.call, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !59 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !65 -// CHECK:STDOUT: ret void, !dbg !66 +// CHECK:STDOUT: call void @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !119 +// CHECK:STDOUT: ret void, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !67 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !122 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !71 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc49, label %if.else.loc49, !dbg !72 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !129 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc49, label %if.else.loc49, !dbg !130 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc49: ; preds = %entry -// CHECK:STDOUT: ret i32 %x, !dbg !73 +// CHECK:STDOUT: ret i32 %x, !dbg !132 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc49: ; preds = %entry -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !74 -// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !74 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc52, label %if.else.loc52, !dbg !75 +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !133 +// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !133 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc52, label %if.else.loc52, !dbg !134 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc52: ; preds = %if.else.loc49 -// CHECK:STDOUT: %E.call = call i32 @_CE.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !76 -// CHECK:STDOUT: ret i32 %E.call, !dbg !77 +// CHECK:STDOUT: %E.call = call i32 @_CE.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !137 +// CHECK:STDOUT: ret i32 %E.call, !dbg !138 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc52: ; preds = %if.else.loc49 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !78 -// CHECK:STDOUT: ret i32 %F.call, !dbg !79 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !141 +// CHECK:STDOUT: ret i32 %F.call, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !80 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !144 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !86 -// CHECK:STDOUT: ret void, !dbg !87 +// CHECK:STDOUT: call void @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !151 +// CHECK:STDOUT: ret void, !dbg !152 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !154 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !92 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc49, label %if.else.loc49, !dbg !93 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !161 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc49, label %if.else.loc49, !dbg !162 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc49: ; preds = %entry -// CHECK:STDOUT: ret double %x, !dbg !94 +// CHECK:STDOUT: ret double %x, !dbg !164 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc49: ; preds = %entry -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !95 -// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !95 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc52, label %if.else.loc52, !dbg !96 +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !165 +// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !165 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc52, label %if.else.loc52, !dbg !166 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc52: ; preds = %if.else.loc49 -// CHECK:STDOUT: %E.call = call double @_CE.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !97 -// CHECK:STDOUT: ret double %E.call, !dbg !98 +// CHECK:STDOUT: %E.call = call double @_CE.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !169 +// CHECK:STDOUT: ret double %E.call, !dbg !170 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc52: ; preds = %if.else.loc49 -// CHECK:STDOUT: %F.call = call double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !99 -// CHECK:STDOUT: ret double %F.call, !dbg !100 +// CHECK:STDOUT: %F.call = call double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !173 +// CHECK:STDOUT: ret double %F.call, !dbg !174 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !101 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !176 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !105 -// CHECK:STDOUT: ret void, !dbg !106 +// CHECK:STDOUT: call void @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !183 +// CHECK:STDOUT: ret void, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !107 { +// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !186 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !111 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc49, label %if.else.loc49, !dbg !112 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !193 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc49, label %if.else.loc49, !dbg !194 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc49: ; preds = %entry -// CHECK:STDOUT: ret ptr %x, !dbg !113 +// CHECK:STDOUT: ret ptr %x, !dbg !196 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc49: ; preds = %entry -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !114 -// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !114 -// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc52, label %if.else.loc52, !dbg !115 +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %count, 2, !dbg !197 +// CHECK:STDOUT: %Int.as.EqWith.impl.Equal.call = icmp eq i32 %Int.as.ModWith.impl.Op.call, 0, !dbg !197 +// CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc52, label %if.else.loc52, !dbg !198 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc52: ; preds = %if.else.loc49 -// CHECK:STDOUT: %E.call = call ptr @_CE.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !116 -// CHECK:STDOUT: ret ptr %E.call, !dbg !117 +// CHECK:STDOUT: %E.call = call ptr @_CE.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !201 +// CHECK:STDOUT: ret ptr %E.call, !dbg !202 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc52: ; preds = %if.else.loc49 -// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !118 -// CHECK:STDOUT: ret ptr %F.call, !dbg !119 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !205 +// CHECK:STDOUT: ret ptr %F.call, !dbg !206 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !120 { +// CHECK:STDOUT: define linkonce_odr void @_CC.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !240 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !124 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !125 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !245 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !246 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !126 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !127 -// CHECK:STDOUT: call void @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !128 -// CHECK:STDOUT: br label %if.else, !dbg !129 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !248 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !250 +// CHECK:STDOUT: call void @_CB.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !251 +// CHECK:STDOUT: br label %if.else, !dbg !252 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry -// CHECK:STDOUT: ret void, !dbg !130 +// CHECK:STDOUT: ret void, !dbg !253 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CE.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !131 { +// CHECK:STDOUT: define linkonce_odr i32 @_CE.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !255 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !135 -// CHECK:STDOUT: ret i32 %G.call, !dbg !136 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !264 +// CHECK:STDOUT: ret i32 %G.call, !dbg !265 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !137 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !267 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !141 -// CHECK:STDOUT: ret i32 %G.call, !dbg !142 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count), !dbg !276 +// CHECK:STDOUT: ret i32 %G.call, !dbg !277 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !143 { +// CHECK:STDOUT: define linkonce_odr void @_CC.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !279 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !147 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !148 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !284 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !285 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !149 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !150 -// CHECK:STDOUT: call void @_CB.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !151 -// CHECK:STDOUT: br label %if.else, !dbg !152 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !287 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !289 +// CHECK:STDOUT: call void @_CB.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !290 +// CHECK:STDOUT: br label %if.else, !dbg !291 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry -// CHECK:STDOUT: ret void, !dbg !153 +// CHECK:STDOUT: ret void, !dbg !292 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CE.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !154 { +// CHECK:STDOUT: define linkonce_odr double @_CE.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !294 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !158 -// CHECK:STDOUT: ret double %G.call, !dbg !159 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !303 +// CHECK:STDOUT: ret double %G.call, !dbg !304 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !160 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !306 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !164 -// CHECK:STDOUT: ret double %G.call, !dbg !165 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count), !dbg !315 +// CHECK:STDOUT: ret double %G.call, !dbg !316 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !166 { +// CHECK:STDOUT: define linkonce_odr void @_CC.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !318 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !170 -// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !171 +// CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !323 +// CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !324 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !172 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !173 -// CHECK:STDOUT: call void @_CB.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !174 -// CHECK:STDOUT: br label %if.else, !dbg !175 +// CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !326 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !328 +// CHECK:STDOUT: call void @_CB.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !329 +// CHECK:STDOUT: br label %if.else, !dbg !330 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry -// CHECK:STDOUT: ret void, !dbg !176 +// CHECK:STDOUT: ret void, !dbg !331 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CE.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !177 { +// CHECK:STDOUT: define linkonce_odr ptr @_CE.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !333 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !181 -// CHECK:STDOUT: ret ptr %G.call, !dbg !182 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !342 +// CHECK:STDOUT: ret ptr %G.call, !dbg !343 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !183 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !345 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !187 -// CHECK:STDOUT: ret ptr %G.call, !dbg !188 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count), !dbg !354 +// CHECK:STDOUT: ret ptr %G.call, !dbg !355 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !189 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x, i32 %count) #0 !dbg !396 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !193 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !194 -// CHECK:STDOUT: ret i32 %D.call, !dbg !195 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !404 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4d6ceefeb7f772f4(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !405 +// CHECK:STDOUT: ret i32 %D.call, !dbg !406 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !196 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c5e4ba542a56b71f(double %x, i32 %count) #0 !dbg !408 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !200 -// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !201 -// CHECK:STDOUT: ret double %D.call, !dbg !202 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !416 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c5e4ba542a56b71f(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !417 +// CHECK:STDOUT: ret double %D.call, !dbg !418 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !203 { +// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a76b78461416b4a8(ptr %x, i32 %count) #0 !dbg !420 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !207 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !208 -// CHECK:STDOUT: ret ptr %D.call, !dbg !209 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !428 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a76b78461416b4a8(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !429 +// CHECK:STDOUT: ret ptr %D.call, !dbg !430 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -373,217 +373,217 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_recursive_sccs_deep.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 74, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 75, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 76, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 77, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 78, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 80, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 80, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 81, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 81, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 82, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 82, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 83, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 83, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 74, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 76, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 76, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 75, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !30} -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 75, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 32, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{!30, !30, !30} -// CHECK:STDOUT: !37 = !{!38, !39} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !34, type: !30) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !34, type: !30) -// CHECK:STDOUT: !40 = !DILocation(line: 33, column: 3, scope: !34) -// CHECK:STDOUT: !41 = !DILocation(line: 34, column: 10, scope: !34) -// CHECK:STDOUT: !42 = !DILocation(line: 34, column: 3, scope: !34) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 32, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !44 = !DISubroutineType(types: !45) -// CHECK:STDOUT: !45 = !{!23, !23, !30} -// CHECK:STDOUT: !46 = !{!47, !48} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !43, type: !23) -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 2, scope: !43, type: !30) -// CHECK:STDOUT: !49 = !DILocation(line: 33, column: 3, scope: !43) -// CHECK:STDOUT: !50 = !DILocation(line: 34, column: 10, scope: !43) -// CHECK:STDOUT: !51 = !DILocation(line: 34, column: 3, scope: !43) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.a76b78461416b4a8", scope: null, file: !1, line: 32, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !53) -// CHECK:STDOUT: !53 = !{!54, !55} -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !23) -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 2, scope: !52, type: !30) -// CHECK:STDOUT: !56 = !DILocation(line: 33, column: 3, scope: !52) -// CHECK:STDOUT: !57 = !DILocation(line: 34, column: 10, scope: !52) -// CHECK:STDOUT: !58 = !DILocation(line: 34, column: 3, scope: !52) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 37, type: !60, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !60 = !DISubroutineType(types: !61) -// CHECK:STDOUT: !61 = !{null, !30, !30} -// CHECK:STDOUT: !62 = !{!63, !64} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !59, type: !30) -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !59, type: !30) -// CHECK:STDOUT: !65 = !DILocation(line: 38, column: 3, scope: !59) -// CHECK:STDOUT: !66 = !DILocation(line: 37, column: 1, scope: !59) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 48, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !68 = !{!69, !70} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !30) -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !67, type: !30) -// CHECK:STDOUT: !71 = !DILocation(line: 49, column: 7, scope: !67) -// CHECK:STDOUT: !72 = !DILocation(line: 49, column: 6, scope: !67) -// CHECK:STDOUT: !73 = !DILocation(line: 50, column: 5, scope: !67) -// CHECK:STDOUT: !74 = !DILocation(line: 52, column: 7, scope: !67) -// CHECK:STDOUT: !75 = !DILocation(line: 52, column: 6, scope: !67) -// CHECK:STDOUT: !76 = !DILocation(line: 53, column: 12, scope: !67) -// CHECK:STDOUT: !77 = !DILocation(line: 53, column: 5, scope: !67) -// CHECK:STDOUT: !78 = !DILocation(line: 55, column: 12, scope: !67) -// CHECK:STDOUT: !79 = !DILocation(line: 55, column: 5, scope: !67) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 37, type: !81, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !83) -// CHECK:STDOUT: !81 = !DISubroutineType(types: !82) -// CHECK:STDOUT: !82 = !{null, !23, !30} -// CHECK:STDOUT: !83 = !{!84, !85} -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !80, type: !23) -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 2, scope: !80, type: !30) -// CHECK:STDOUT: !86 = !DILocation(line: 38, column: 3, scope: !80) -// CHECK:STDOUT: !87 = !DILocation(line: 37, column: 1, scope: !80) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 48, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !89) -// CHECK:STDOUT: !89 = !{!90, !91} -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !23) -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 2, scope: !88, type: !30) -// CHECK:STDOUT: !92 = !DILocation(line: 49, column: 7, scope: !88) -// CHECK:STDOUT: !93 = !DILocation(line: 49, column: 6, scope: !88) -// CHECK:STDOUT: !94 = !DILocation(line: 50, column: 5, scope: !88) -// CHECK:STDOUT: !95 = !DILocation(line: 52, column: 7, scope: !88) -// CHECK:STDOUT: !96 = !DILocation(line: 52, column: 6, scope: !88) -// CHECK:STDOUT: !97 = !DILocation(line: 53, column: 12, scope: !88) -// CHECK:STDOUT: !98 = !DILocation(line: 53, column: 5, scope: !88) -// CHECK:STDOUT: !99 = !DILocation(line: 55, column: 12, scope: !88) -// CHECK:STDOUT: !100 = !DILocation(line: 55, column: 5, scope: !88) -// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.a76b78461416b4a8", scope: null, file: !1, line: 37, type: !81, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !102) -// CHECK:STDOUT: !102 = !{!103, !104} -// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !101, type: !23) -// CHECK:STDOUT: !104 = !DILocalVariable(arg: 2, scope: !101, type: !30) -// CHECK:STDOUT: !105 = !DILocation(line: 38, column: 3, scope: !101) -// CHECK:STDOUT: !106 = !DILocation(line: 37, column: 1, scope: !101) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.a76b78461416b4a8", scope: null, file: !1, line: 48, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !108) -// CHECK:STDOUT: !108 = !{!109, !110} -// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !107, type: !23) -// CHECK:STDOUT: !110 = !DILocalVariable(arg: 2, scope: !107, type: !30) -// CHECK:STDOUT: !111 = !DILocation(line: 49, column: 7, scope: !107) -// CHECK:STDOUT: !112 = !DILocation(line: 49, column: 6, scope: !107) -// CHECK:STDOUT: !113 = !DILocation(line: 50, column: 5, scope: !107) -// CHECK:STDOUT: !114 = !DILocation(line: 52, column: 7, scope: !107) -// CHECK:STDOUT: !115 = !DILocation(line: 52, column: 6, scope: !107) -// CHECK:STDOUT: !116 = !DILocation(line: 53, column: 12, scope: !107) -// CHECK:STDOUT: !117 = !DILocation(line: 53, column: 5, scope: !107) -// CHECK:STDOUT: !118 = !DILocation(line: 55, column: 12, scope: !107) -// CHECK:STDOUT: !119 = !DILocation(line: 55, column: 5, scope: !107) -// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 41, type: !60, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !121) -// CHECK:STDOUT: !121 = !{!122, !123} -// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !120, type: !30) -// CHECK:STDOUT: !123 = !DILocalVariable(arg: 2, scope: !120, type: !30) -// CHECK:STDOUT: !124 = !DILocation(line: 42, column: 7, scope: !120) -// CHECK:STDOUT: !125 = !DILocation(line: 42, column: 6, scope: !120) -// CHECK:STDOUT: !126 = !DILocation(line: 43, column: 5, scope: !120) -// CHECK:STDOUT: !127 = !DILocation(line: 44, column: 10, scope: !120) -// CHECK:STDOUT: !128 = !DILocation(line: 44, column: 5, scope: !120) -// CHECK:STDOUT: !129 = !DILocation(line: 42, column: 3, scope: !120) -// CHECK:STDOUT: !130 = !DILocation(line: 41, column: 1, scope: !120) -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 61, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !132) -// CHECK:STDOUT: !132 = !{!133, !134} -// CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !131, type: !30) -// CHECK:STDOUT: !134 = !DILocalVariable(arg: 2, scope: !131, type: !30) -// CHECK:STDOUT: !135 = !DILocation(line: 62, column: 10, scope: !131) -// CHECK:STDOUT: !136 = !DILocation(line: 62, column: 3, scope: !131) -// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 65, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !138) -// CHECK:STDOUT: !138 = !{!139, !140} -// CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !137, type: !30) -// CHECK:STDOUT: !140 = !DILocalVariable(arg: 2, scope: !137, type: !30) -// CHECK:STDOUT: !141 = !DILocation(line: 66, column: 10, scope: !137) -// CHECK:STDOUT: !142 = !DILocation(line: 66, column: 3, scope: !137) -// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 41, type: !81, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !144) -// CHECK:STDOUT: !144 = !{!145, !146} -// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !143, type: !23) -// CHECK:STDOUT: !146 = !DILocalVariable(arg: 2, scope: !143, type: !30) -// CHECK:STDOUT: !147 = !DILocation(line: 42, column: 7, scope: !143) -// CHECK:STDOUT: !148 = !DILocation(line: 42, column: 6, scope: !143) -// CHECK:STDOUT: !149 = !DILocation(line: 43, column: 5, scope: !143) -// CHECK:STDOUT: !150 = !DILocation(line: 44, column: 10, scope: !143) -// CHECK:STDOUT: !151 = !DILocation(line: 44, column: 5, scope: !143) -// CHECK:STDOUT: !152 = !DILocation(line: 42, column: 3, scope: !143) -// CHECK:STDOUT: !153 = !DILocation(line: 41, column: 1, scope: !143) -// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 61, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !155) -// CHECK:STDOUT: !155 = !{!156, !157} -// CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !154, type: !23) -// CHECK:STDOUT: !157 = !DILocalVariable(arg: 2, scope: !154, type: !30) -// CHECK:STDOUT: !158 = !DILocation(line: 62, column: 10, scope: !154) -// CHECK:STDOUT: !159 = !DILocation(line: 62, column: 3, scope: !154) -// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 65, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !161) -// CHECK:STDOUT: !161 = !{!162, !163} -// CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !160, type: !23) -// CHECK:STDOUT: !163 = !DILocalVariable(arg: 2, scope: !160, type: !30) -// CHECK:STDOUT: !164 = !DILocation(line: 66, column: 10, scope: !160) -// CHECK:STDOUT: !165 = !DILocation(line: 66, column: 3, scope: !160) -// CHECK:STDOUT: !166 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.a76b78461416b4a8", scope: null, file: !1, line: 41, type: !81, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !167) -// CHECK:STDOUT: !167 = !{!168, !169} -// CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !166, type: !23) -// CHECK:STDOUT: !169 = !DILocalVariable(arg: 2, scope: !166, type: !30) -// CHECK:STDOUT: !170 = !DILocation(line: 42, column: 7, scope: !166) -// CHECK:STDOUT: !171 = !DILocation(line: 42, column: 6, scope: !166) -// CHECK:STDOUT: !172 = !DILocation(line: 43, column: 5, scope: !166) -// CHECK:STDOUT: !173 = !DILocation(line: 44, column: 10, scope: !166) -// CHECK:STDOUT: !174 = !DILocation(line: 44, column: 5, scope: !166) -// CHECK:STDOUT: !175 = !DILocation(line: 42, column: 3, scope: !166) -// CHECK:STDOUT: !176 = !DILocation(line: 41, column: 1, scope: !166) -// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.a76b78461416b4a8", scope: null, file: !1, line: 61, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !178) -// CHECK:STDOUT: !178 = !{!179, !180} -// CHECK:STDOUT: !179 = !DILocalVariable(arg: 1, scope: !177, type: !23) -// CHECK:STDOUT: !180 = !DILocalVariable(arg: 2, scope: !177, type: !30) -// CHECK:STDOUT: !181 = !DILocation(line: 62, column: 10, scope: !177) -// CHECK:STDOUT: !182 = !DILocation(line: 62, column: 3, scope: !177) -// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !1, line: 65, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !184) -// CHECK:STDOUT: !184 = !{!185, !186} -// CHECK:STDOUT: !185 = !DILocalVariable(arg: 1, scope: !183, type: !23) -// CHECK:STDOUT: !186 = !DILocalVariable(arg: 2, scope: !183, type: !30) -// CHECK:STDOUT: !187 = !DILocation(line: 66, column: 10, scope: !183) -// CHECK:STDOUT: !188 = !DILocation(line: 66, column: 3, scope: !183) -// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 69, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !190) -// CHECK:STDOUT: !190 = !{!191, !192} -// CHECK:STDOUT: !191 = !DILocalVariable(arg: 1, scope: !189, type: !30) -// CHECK:STDOUT: !192 = !DILocalVariable(arg: 2, scope: !189, type: !30) -// CHECK:STDOUT: !193 = !DILocation(line: 70, column: 15, scope: !189) -// CHECK:STDOUT: !194 = !DILocation(line: 70, column: 10, scope: !189) -// CHECK:STDOUT: !195 = !DILocation(line: 70, column: 3, scope: !189) -// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 69, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !197) -// CHECK:STDOUT: !197 = !{!198, !199} -// CHECK:STDOUT: !198 = !DILocalVariable(arg: 1, scope: !196, type: !23) -// CHECK:STDOUT: !199 = !DILocalVariable(arg: 2, scope: !196, type: !30) -// CHECK:STDOUT: !200 = !DILocation(line: 70, column: 15, scope: !196) -// CHECK:STDOUT: !201 = !DILocation(line: 70, column: 10, scope: !196) -// CHECK:STDOUT: !202 = !DILocation(line: 70, column: 3, scope: !196) -// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a76b78461416b4a8", scope: null, file: !1, line: 69, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !204) -// CHECK:STDOUT: !204 = !{!205, !206} -// CHECK:STDOUT: !205 = !DILocalVariable(arg: 1, scope: !203, type: !23) -// CHECK:STDOUT: !206 = !DILocalVariable(arg: 2, scope: !203, type: !30) -// CHECK:STDOUT: !207 = !DILocation(line: 70, column: 15, scope: !203) -// CHECK:STDOUT: !208 = !DILocation(line: 70, column: 10, scope: !203) -// CHECK:STDOUT: !209 = !DILocation(line: 70, column: 3, scope: !203) +// CHECK:STDOUT: !4 = !DIFile(filename: "call_recursive_sccs_deep.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !4, line: 74, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 75, column: 3, scope: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 76, column: 3, scope: !14) +// CHECK:STDOUT: !19 = !DILocation(line: 77, column: 3, scope: !14) +// CHECK:STDOUT: !23 = !DILocation(line: 78, column: 3, scope: !14) +// CHECK:STDOUT: !27 = !DILocation(line: 80, column: 5, scope: !14) +// CHECK:STDOUT: !28 = !DILocation(line: 80, column: 3, scope: !14) +// CHECK:STDOUT: !29 = !{!6, !6, !6} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 81, column: 5, scope: !14) +// CHECK:STDOUT: !32 = !DILocation(line: 81, column: 3, scope: !14) +// CHECK:STDOUT: !33 = !{!9, !9, !6} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 82, column: 5, scope: !14) +// CHECK:STDOUT: !36 = !DILocation(line: 82, column: 3, scope: !14) +// CHECK:STDOUT: !37 = !DILocation(line: 83, column: 5, scope: !14) +// CHECK:STDOUT: !38 = !DILocation(line: 83, column: 3, scope: !14) +// CHECK:STDOUT: !39 = !DILocation(line: 74, column: 1, scope: !14) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 76, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !9) +// CHECK:STDOUT: !42 = !DILocation(line: 76, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 75, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) +// CHECK:STDOUT: !46 = !DILocation(line: 75, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 32, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !64) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !6) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !48, type: !6) +// CHECK:STDOUT: !57 = !DILocation(line: 33, column: 3, scope: !48) +// CHECK:STDOUT: !58 = !{null, !6, !6} +// CHECK:STDOUT: !59 = !DISubroutineType(types: !58) +// CHECK:STDOUT: !62 = !DILocation(line: 34, column: 10, scope: !48) +// CHECK:STDOUT: !63 = !DILocation(line: 34, column: 3, scope: !48) +// CHECK:STDOUT: !64 = !{!49, !50} +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 32, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !81) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !9) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 2, scope: !65, type: !6) +// CHECK:STDOUT: !74 = !DILocation(line: 33, column: 3, scope: !65) +// CHECK:STDOUT: !75 = !{null, !9, !6} +// CHECK:STDOUT: !76 = !DISubroutineType(types: !75) +// CHECK:STDOUT: !79 = !DILocation(line: 34, column: 10, scope: !65) +// CHECK:STDOUT: !80 = !DILocation(line: 34, column: 3, scope: !65) +// CHECK:STDOUT: !81 = !{!66, !67} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.a76b78461416b4a8", scope: null, file: !4, line: 32, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !96) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !9) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 2, scope: !82, type: !6) +// CHECK:STDOUT: !91 = !DILocation(line: 33, column: 3, scope: !82) +// CHECK:STDOUT: !94 = !DILocation(line: 34, column: 10, scope: !82) +// CHECK:STDOUT: !95 = !DILocation(line: 34, column: 3, scope: !82) +// CHECK:STDOUT: !96 = !{!83, !84} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 37, type: !59, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !121) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) +// CHECK:STDOUT: !114 = !DILocalVariable(arg: 2, scope: !112, type: !6) +// CHECK:STDOUT: !119 = !DILocation(line: 38, column: 3, scope: !112) +// CHECK:STDOUT: !120 = !DILocation(line: 37, column: 1, scope: !112) +// CHECK:STDOUT: !121 = !{!113, !114} +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 48, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !143) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !122, type: !6) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 2, scope: !122, type: !6) +// CHECK:STDOUT: !129 = !DILocation(line: 49, column: 7, scope: !122) +// CHECK:STDOUT: !130 = !DILocation(line: 49, column: 6, scope: !122) +// CHECK:STDOUT: !132 = !DILocation(line: 50, column: 5, scope: !122) +// CHECK:STDOUT: !133 = !DILocation(line: 52, column: 7, scope: !122) +// CHECK:STDOUT: !134 = !DILocation(line: 52, column: 6, scope: !122) +// CHECK:STDOUT: !137 = !DILocation(line: 53, column: 12, scope: !122) +// CHECK:STDOUT: !138 = !DILocation(line: 53, column: 5, scope: !122) +// CHECK:STDOUT: !141 = !DILocation(line: 55, column: 12, scope: !122) +// CHECK:STDOUT: !142 = !DILocation(line: 55, column: 5, scope: !122) +// CHECK:STDOUT: !143 = !{!123, !124} +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 37, type: !76, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !153) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !9) +// CHECK:STDOUT: !146 = !DILocalVariable(arg: 2, scope: !144, type: !6) +// CHECK:STDOUT: !151 = !DILocation(line: 38, column: 3, scope: !144) +// CHECK:STDOUT: !152 = !DILocation(line: 37, column: 1, scope: !144) +// CHECK:STDOUT: !153 = !{!145, !146} +// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 48, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !175) +// CHECK:STDOUT: !155 = !DILocalVariable(arg: 1, scope: !154, type: !9) +// CHECK:STDOUT: !156 = !DILocalVariable(arg: 2, scope: !154, type: !6) +// CHECK:STDOUT: !161 = !DILocation(line: 49, column: 7, scope: !154) +// CHECK:STDOUT: !162 = !DILocation(line: 49, column: 6, scope: !154) +// CHECK:STDOUT: !164 = !DILocation(line: 50, column: 5, scope: !154) +// CHECK:STDOUT: !165 = !DILocation(line: 52, column: 7, scope: !154) +// CHECK:STDOUT: !166 = !DILocation(line: 52, column: 6, scope: !154) +// CHECK:STDOUT: !169 = !DILocation(line: 53, column: 12, scope: !154) +// CHECK:STDOUT: !170 = !DILocation(line: 53, column: 5, scope: !154) +// CHECK:STDOUT: !173 = !DILocation(line: 55, column: 12, scope: !154) +// CHECK:STDOUT: !174 = !DILocation(line: 55, column: 5, scope: !154) +// CHECK:STDOUT: !175 = !{!155, !156} +// CHECK:STDOUT: !176 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.a76b78461416b4a8", scope: null, file: !4, line: 37, type: !76, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !185) +// CHECK:STDOUT: !177 = !DILocalVariable(arg: 1, scope: !176, type: !9) +// CHECK:STDOUT: !178 = !DILocalVariable(arg: 2, scope: !176, type: !6) +// CHECK:STDOUT: !183 = !DILocation(line: 38, column: 3, scope: !176) +// CHECK:STDOUT: !184 = !DILocation(line: 37, column: 1, scope: !176) +// CHECK:STDOUT: !185 = !{!177, !178} +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.a76b78461416b4a8", scope: null, file: !4, line: 48, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !207) +// CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !9) +// CHECK:STDOUT: !188 = !DILocalVariable(arg: 2, scope: !186, type: !6) +// CHECK:STDOUT: !193 = !DILocation(line: 49, column: 7, scope: !186) +// CHECK:STDOUT: !194 = !DILocation(line: 49, column: 6, scope: !186) +// CHECK:STDOUT: !196 = !DILocation(line: 50, column: 5, scope: !186) +// CHECK:STDOUT: !197 = !DILocation(line: 52, column: 7, scope: !186) +// CHECK:STDOUT: !198 = !DILocation(line: 52, column: 6, scope: !186) +// CHECK:STDOUT: !201 = !DILocation(line: 53, column: 12, scope: !186) +// CHECK:STDOUT: !202 = !DILocation(line: 53, column: 5, scope: !186) +// CHECK:STDOUT: !205 = !DILocation(line: 55, column: 12, scope: !186) +// CHECK:STDOUT: !206 = !DILocation(line: 55, column: 5, scope: !186) +// CHECK:STDOUT: !207 = !{!187, !188} +// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 41, type: !59, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !254) +// CHECK:STDOUT: !241 = !DILocalVariable(arg: 1, scope: !240, type: !6) +// CHECK:STDOUT: !242 = !DILocalVariable(arg: 2, scope: !240, type: !6) +// CHECK:STDOUT: !245 = !DILocation(line: 42, column: 7, scope: !240) +// CHECK:STDOUT: !246 = !DILocation(line: 42, column: 6, scope: !240) +// CHECK:STDOUT: !248 = !DILocation(line: 43, column: 5, scope: !240) +// CHECK:STDOUT: !250 = !DILocation(line: 44, column: 10, scope: !240) +// CHECK:STDOUT: !251 = !DILocation(line: 44, column: 5, scope: !240) +// CHECK:STDOUT: !252 = !DILocation(line: 42, column: 3, scope: !240) +// CHECK:STDOUT: !253 = !DILocation(line: 41, column: 1, scope: !240) +// CHECK:STDOUT: !254 = !{!241, !242} +// CHECK:STDOUT: !255 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 61, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !266) +// CHECK:STDOUT: !256 = !DILocalVariable(arg: 1, scope: !255, type: !6) +// CHECK:STDOUT: !257 = !DILocalVariable(arg: 2, scope: !255, type: !6) +// CHECK:STDOUT: !264 = !DILocation(line: 62, column: 10, scope: !255) +// CHECK:STDOUT: !265 = !DILocation(line: 62, column: 3, scope: !255) +// CHECK:STDOUT: !266 = !{!256, !257} +// CHECK:STDOUT: !267 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 65, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !278) +// CHECK:STDOUT: !268 = !DILocalVariable(arg: 1, scope: !267, type: !6) +// CHECK:STDOUT: !269 = !DILocalVariable(arg: 2, scope: !267, type: !6) +// CHECK:STDOUT: !276 = !DILocation(line: 66, column: 10, scope: !267) +// CHECK:STDOUT: !277 = !DILocation(line: 66, column: 3, scope: !267) +// CHECK:STDOUT: !278 = !{!268, !269} +// CHECK:STDOUT: !279 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 41, type: !76, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !293) +// CHECK:STDOUT: !280 = !DILocalVariable(arg: 1, scope: !279, type: !9) +// CHECK:STDOUT: !281 = !DILocalVariable(arg: 2, scope: !279, type: !6) +// CHECK:STDOUT: !284 = !DILocation(line: 42, column: 7, scope: !279) +// CHECK:STDOUT: !285 = !DILocation(line: 42, column: 6, scope: !279) +// CHECK:STDOUT: !287 = !DILocation(line: 43, column: 5, scope: !279) +// CHECK:STDOUT: !289 = !DILocation(line: 44, column: 10, scope: !279) +// CHECK:STDOUT: !290 = !DILocation(line: 44, column: 5, scope: !279) +// CHECK:STDOUT: !291 = !DILocation(line: 42, column: 3, scope: !279) +// CHECK:STDOUT: !292 = !DILocation(line: 41, column: 1, scope: !279) +// CHECK:STDOUT: !293 = !{!280, !281} +// CHECK:STDOUT: !294 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 61, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !305) +// CHECK:STDOUT: !295 = !DILocalVariable(arg: 1, scope: !294, type: !9) +// CHECK:STDOUT: !296 = !DILocalVariable(arg: 2, scope: !294, type: !6) +// CHECK:STDOUT: !303 = !DILocation(line: 62, column: 10, scope: !294) +// CHECK:STDOUT: !304 = !DILocation(line: 62, column: 3, scope: !294) +// CHECK:STDOUT: !305 = !{!295, !296} +// CHECK:STDOUT: !306 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 65, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !317) +// CHECK:STDOUT: !307 = !DILocalVariable(arg: 1, scope: !306, type: !9) +// CHECK:STDOUT: !308 = !DILocalVariable(arg: 2, scope: !306, type: !6) +// CHECK:STDOUT: !315 = !DILocation(line: 66, column: 10, scope: !306) +// CHECK:STDOUT: !316 = !DILocation(line: 66, column: 3, scope: !306) +// CHECK:STDOUT: !317 = !{!307, !308} +// CHECK:STDOUT: !318 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.a76b78461416b4a8", scope: null, file: !4, line: 41, type: !76, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !332) +// CHECK:STDOUT: !319 = !DILocalVariable(arg: 1, scope: !318, type: !9) +// CHECK:STDOUT: !320 = !DILocalVariable(arg: 2, scope: !318, type: !6) +// CHECK:STDOUT: !323 = !DILocation(line: 42, column: 7, scope: !318) +// CHECK:STDOUT: !324 = !DILocation(line: 42, column: 6, scope: !318) +// CHECK:STDOUT: !326 = !DILocation(line: 43, column: 5, scope: !318) +// CHECK:STDOUT: !328 = !DILocation(line: 44, column: 10, scope: !318) +// CHECK:STDOUT: !329 = !DILocation(line: 44, column: 5, scope: !318) +// CHECK:STDOUT: !330 = !DILocation(line: 42, column: 3, scope: !318) +// CHECK:STDOUT: !331 = !DILocation(line: 41, column: 1, scope: !318) +// CHECK:STDOUT: !332 = !{!319, !320} +// CHECK:STDOUT: !333 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.a76b78461416b4a8", scope: null, file: !4, line: 61, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !344) +// CHECK:STDOUT: !334 = !DILocalVariable(arg: 1, scope: !333, type: !9) +// CHECK:STDOUT: !335 = !DILocalVariable(arg: 2, scope: !333, type: !6) +// CHECK:STDOUT: !342 = !DILocation(line: 62, column: 10, scope: !333) +// CHECK:STDOUT: !343 = !DILocation(line: 62, column: 3, scope: !333) +// CHECK:STDOUT: !344 = !{!334, !335} +// CHECK:STDOUT: !345 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !4, line: 65, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !356) +// CHECK:STDOUT: !346 = !DILocalVariable(arg: 1, scope: !345, type: !9) +// CHECK:STDOUT: !347 = !DILocalVariable(arg: 2, scope: !345, type: !6) +// CHECK:STDOUT: !354 = !DILocation(line: 66, column: 10, scope: !345) +// CHECK:STDOUT: !355 = !DILocation(line: 66, column: 3, scope: !345) +// CHECK:STDOUT: !356 = !{!346, !347} +// CHECK:STDOUT: !396 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4d6ceefeb7f772f4", scope: null, file: !4, line: 69, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !407) +// CHECK:STDOUT: !397 = !DILocalVariable(arg: 1, scope: !396, type: !6) +// CHECK:STDOUT: !398 = !DILocalVariable(arg: 2, scope: !396, type: !6) +// CHECK:STDOUT: !404 = !DILocation(line: 70, column: 15, scope: !396) +// CHECK:STDOUT: !405 = !DILocation(line: 70, column: 10, scope: !396) +// CHECK:STDOUT: !406 = !DILocation(line: 70, column: 3, scope: !396) +// CHECK:STDOUT: !407 = !{!397, !398} +// CHECK:STDOUT: !408 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c5e4ba542a56b71f", scope: null, file: !4, line: 69, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !419) +// CHECK:STDOUT: !409 = !DILocalVariable(arg: 1, scope: !408, type: !9) +// CHECK:STDOUT: !410 = !DILocalVariable(arg: 2, scope: !408, type: !6) +// CHECK:STDOUT: !416 = !DILocation(line: 70, column: 15, scope: !408) +// CHECK:STDOUT: !417 = !DILocation(line: 70, column: 10, scope: !408) +// CHECK:STDOUT: !418 = !DILocation(line: 70, column: 3, scope: !408) +// CHECK:STDOUT: !419 = !{!409, !410} +// CHECK:STDOUT: !420 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a76b78461416b4a8", scope: null, file: !4, line: 69, type: !34, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !431) +// CHECK:STDOUT: !421 = !DILocalVariable(arg: 1, scope: !420, type: !9) +// CHECK:STDOUT: !422 = !DILocalVariable(arg: 2, scope: !420, type: !6) +// CHECK:STDOUT: !428 = !DILocation(line: 70, column: 15, scope: !420) +// CHECK:STDOUT: !429 = !DILocation(line: 70, column: 10, scope: !420) +// CHECK:STDOUT: !430 = !DILocation(line: 70, column: 3, scope: !420) +// CHECK:STDOUT: !431 = !{!421, !422} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon b/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon index 39d7ad5b1d40..d267e0f54fa7 100644 --- a/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon +++ b/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon @@ -51,153 +51,153 @@ fn M() { // CHECK:STDOUT: %type.26 = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CM.Main() #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !14 -// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !15 -// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !16 -// CHECK:STDOUT: %var_i32.var = alloca i32, align 4, !dbg !17 -// CHECK:STDOUT: %var_f64.var = alloca double, align 8, !dbg !18 -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !14 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !14 -// CHECK:STDOUT: %.loc34_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !20 -// CHECK:STDOUT: %F.call.loc34 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc34_5), !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !15 -// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !15 -// CHECK:STDOUT: %.loc36_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc36_5), !dbg !23 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !16 -// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !16 -// CHECK:STDOUT: %.loc38_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !24 -// CHECK:STDOUT: %F.call.loc38 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc38_5), !dbg !25 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_i32.var), !dbg !17 -// CHECK:STDOUT: store i32 0, ptr %var_i32.var, align 4, !dbg !17 -// CHECK:STDOUT: %.loc40_5 = load i32, ptr %var_i32.var, align 4, !dbg !26 -// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %.loc40_5), !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !18 -// CHECK:STDOUT: store double 0.000000e+00, ptr %var_f64.var, align 8, !dbg !18 -// CHECK:STDOUT: %.loc42_5 = load double, ptr %var_f64.var, align 8, !dbg !28 -// CHECK:STDOUT: %F.call.loc42 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc42_5), !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !19 -// CHECK:STDOUT: %F.call.loc44 = call %type.26 @_CF.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !30 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !19 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var_i32.var), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: %ptr_i32.var = alloca ptr, align 8, !dbg !47 +// CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !53 +// CHECK:STDOUT: %ptr_i8.var = alloca ptr, align 8, !dbg !57 +// CHECK:STDOUT: %var_i32.var = alloca i32, align 4, !dbg !61 +// CHECK:STDOUT: %var_f64.var = alloca double, align 8, !dbg !67 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !71 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !47 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !47 +// CHECK:STDOUT: %.loc34_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !49 +// CHECK:STDOUT: %F.call.loc34 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc34_5), !dbg !50 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !53 +// CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !53 +// CHECK:STDOUT: %.loc36_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !55 +// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc36_5), !dbg !56 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !57 +// CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !57 +// CHECK:STDOUT: %.loc38_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !59 +// CHECK:STDOUT: %F.call.loc38 = call ptr @_CF.Main.a76b78461416b4a8(ptr %.loc38_5), !dbg !60 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_i32.var), !dbg !61 +// CHECK:STDOUT: store i32 0, ptr %var_i32.var, align 4, !dbg !61 +// CHECK:STDOUT: %.loc40_5 = load i32, ptr %var_i32.var, align 4, !dbg !63 +// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %.loc40_5), !dbg !64 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !67 +// CHECK:STDOUT: store double 0.000000e+00, ptr %var_f64.var, align 8, !dbg !67 +// CHECK:STDOUT: %.loc42_5 = load double, ptr %var_f64.var, align 8, !dbg !69 +// CHECK:STDOUT: %F.call.loc42 = call double @_CF.Main.c5e4ba542a56b71f(double %.loc42_5), !dbg !70 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !71 +// CHECK:STDOUT: %F.call.loc44 = call %type.26 @_CF.Main.71d6c598da8ca542(%type.26 zeroinitializer), !dbg !73 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %_.var), !dbg !71 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %var_f64.var), !dbg !67 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %var_i32.var), !dbg !61 +// CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x) #0 !dbg !43 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a76b78461416b4a8(ptr %x) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x), !dbg !48 -// CHECK:STDOUT: ret ptr %G.call, !dbg !49 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a76b78461416b4a8(ptr %x), !dbg !89 +// CHECK:STDOUT: ret ptr %G.call, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !50 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !110 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x), !dbg !55 -// CHECK:STDOUT: ret i32 %G.call, !dbg !56 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x), !dbg !116 +// CHECK:STDOUT: ret i32 %G.call, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x) #0 !dbg !57 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c5e4ba542a56b71f(double %x) #0 !dbg !119 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x), !dbg !60 -// CHECK:STDOUT: ret double %G.call, !dbg !61 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c5e4ba542a56b71f(double %x), !dbg !125 +// CHECK:STDOUT: ret double %G.call, !dbg !126 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type.26 @_CF.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !62 { +// CHECK:STDOUT: define linkonce_odr %type.26 @_CF.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !128 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call %type.26 @_CG.Main.71d6c598da8ca542(%type.26 %x), !dbg !65 -// CHECK:STDOUT: ret %type.26 %G.call, !dbg !66 +// CHECK:STDOUT: %G.call = call %type.26 @_CG.Main.71d6c598da8ca542(%type.26 %x), !dbg !134 +// CHECK:STDOUT: ret %type.26 %G.call, !dbg !135 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a76b78461416b4a8(ptr %x) #0 !dbg !67 { +// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a76b78461416b4a8(ptr %x) #0 !dbg !137 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !70 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !70 -// CHECK:STDOUT: %C.Cfn.call = call ptr @_CCfn.C.Main.a76b78461416b4a8(ptr %c.var, ptr %x), !dbg !71 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !70 -// CHECK:STDOUT: ret ptr %C.Cfn.call, !dbg !72 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !142 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !142 +// CHECK:STDOUT: %C.Cfn.call = call ptr @_CCfn.C.Main.a76b78461416b4a8(ptr %c.var, ptr %x), !dbg !144 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !142 +// CHECK:STDOUT: ret ptr %C.Cfn.call, !dbg !148 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !73 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4d6ceefeb7f772f4(i32 %x) #0 !dbg !172 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !76 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !76 -// CHECK:STDOUT: %C.Cfn.call = call i32 @_CCfn.C.Main.4d6ceefeb7f772f4(ptr %c.var, i32 %x), !dbg !77 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !76 -// CHECK:STDOUT: ret i32 %C.Cfn.call, !dbg !78 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !177 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !177 +// CHECK:STDOUT: %C.Cfn.call = call i32 @_CCfn.C.Main.4d6ceefeb7f772f4(ptr %c.var, i32 %x), !dbg !179 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !177 +// CHECK:STDOUT: ret i32 %C.Cfn.call, !dbg !183 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c5e4ba542a56b71f(double %x) #0 !dbg !79 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c5e4ba542a56b71f(double %x) #0 !dbg !185 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !82 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !82 -// CHECK:STDOUT: %C.Cfn.call = call double @_CCfn.C.Main.c5e4ba542a56b71f(ptr %c.var, double %x), !dbg !83 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !82 -// CHECK:STDOUT: ret double %C.Cfn.call, !dbg !84 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !190 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !190 +// CHECK:STDOUT: %C.Cfn.call = call double @_CCfn.C.Main.c5e4ba542a56b71f(ptr %c.var, double %x), !dbg !192 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !190 +// CHECK:STDOUT: ret double %C.Cfn.call, !dbg !194 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type.26 @_CG.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !85 { +// CHECK:STDOUT: define linkonce_odr %type.26 @_CG.Main.71d6c598da8ca542(%type.26 %x) #0 !dbg !196 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !88 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !88 -// CHECK:STDOUT: %C.Cfn.call = call %type.26 @_CCfn.C.Main.71d6c598da8ca542(ptr %c.var, %type.26 %x), !dbg !89 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !88 -// CHECK:STDOUT: ret %type.26 %C.Cfn.call, !dbg !90 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !201 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !201 +// CHECK:STDOUT: %C.Cfn.call = call %type.26 @_CCfn.C.Main.71d6c598da8ca542(ptr %c.var, %type.26 %x), !dbg !203 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !201 +// CHECK:STDOUT: ret %type.26 %C.Cfn.call, !dbg !205 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CCfn.C.Main.a76b78461416b4a8(ptr %self, ptr %x) #0 !dbg !91 { +// CHECK:STDOUT: define linkonce_odr ptr @_CCfn.C.Main.a76b78461416b4a8(ptr %self, ptr %x) #0 !dbg !207 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %x, !dbg !97 +// CHECK:STDOUT: ret ptr %x, !dbg !215 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CCfn.C.Main.4d6ceefeb7f772f4(ptr %self, i32 %x) #0 !dbg !98 { +// CHECK:STDOUT: define linkonce_odr i32 @_CCfn.C.Main.4d6ceefeb7f772f4(ptr %self, i32 %x) #0 !dbg !237 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !104 +// CHECK:STDOUT: ret i32 %x, !dbg !245 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CCfn.C.Main.c5e4ba542a56b71f(ptr %self, double %x) #0 !dbg !105 { +// CHECK:STDOUT: define linkonce_odr double @_CCfn.C.Main.c5e4ba542a56b71f(ptr %self, double %x) #0 !dbg !247 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret double %x, !dbg !109 +// CHECK:STDOUT: ret double %x, !dbg !255 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type.26 @_CCfn.C.Main.71d6c598da8ca542(ptr %self, %type.26 %x) #0 !dbg !110 { +// CHECK:STDOUT: define linkonce_odr %type.26 @_CCfn.C.Main.71d6c598da8ca542(ptr %self, %type.26 %x) #0 !dbg !257 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.26 %x, !dbg !114 +// CHECK:STDOUT: ret %type.26 %x, !dbg !265 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -207,122 +207,122 @@ fn M() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_specific_in_class.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !1, line: 32, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 33, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 35, column: 3, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 37, column: 3, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 39, column: 3, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 41, column: 3, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 43, column: 3, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 34, column: 5, scope: !11) -// CHECK:STDOUT: !21 = !DILocation(line: 34, column: 3, scope: !11) -// CHECK:STDOUT: !22 = !DILocation(line: 36, column: 5, scope: !11) -// CHECK:STDOUT: !23 = !DILocation(line: 36, column: 3, scope: !11) -// CHECK:STDOUT: !24 = !DILocation(line: 38, column: 5, scope: !11) -// CHECK:STDOUT: !25 = !DILocation(line: 38, column: 3, scope: !11) -// CHECK:STDOUT: !26 = !DILocation(line: 40, column: 5, scope: !11) -// CHECK:STDOUT: !27 = !DILocation(line: 40, column: 3, scope: !11) -// CHECK:STDOUT: !28 = !DILocation(line: 42, column: 5, scope: !11) -// CHECK:STDOUT: !29 = !DILocation(line: 42, column: 3, scope: !11) -// CHECK:STDOUT: !30 = !DILocation(line: 44, column: 3, scope: !11) -// CHECK:STDOUT: !31 = !DILocation(line: 32, column: 1, scope: !11) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !35 = !DILocation(line: 41, column: 3, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 39, type: !37, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !37 = !DISubroutineType(types: !38) -// CHECK:STDOUT: !38 = !{null, !39} -// CHECK:STDOUT: !39 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !39) -// CHECK:STDOUT: !42 = !DILocation(line: 39, column: 3, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !1, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !44 = !DISubroutineType(types: !45) -// CHECK:STDOUT: !45 = !{!7, !7} -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !48 = !DILocation(line: 29, column: 10, scope: !43) -// CHECK:STDOUT: !49 = !DILocation(line: 29, column: 3, scope: !43) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 28, type: !51, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !53) -// CHECK:STDOUT: !51 = !DISubroutineType(types: !52) -// CHECK:STDOUT: !52 = !{!39, !39} -// CHECK:STDOUT: !53 = !{!54} -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !50, type: !39) -// CHECK:STDOUT: !55 = !DILocation(line: 29, column: 10, scope: !50) -// CHECK:STDOUT: !56 = !DILocation(line: 29, column: 3, scope: !50) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !7) -// CHECK:STDOUT: !60 = !DILocation(line: 29, column: 10, scope: !57) -// CHECK:STDOUT: !61 = !DILocation(line: 29, column: 3, scope: !57) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.71d6c598da8ca542", scope: null, file: !1, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !63) -// CHECK:STDOUT: !63 = !{!64} -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !62, type: !7) -// CHECK:STDOUT: !65 = !DILocation(line: 29, column: 10, scope: !62) -// CHECK:STDOUT: !66 = !DILocation(line: 29, column: 3, scope: !62) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a76b78461416b4a8", scope: null, file: !1, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !68 = !{!69} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !7) -// CHECK:STDOUT: !70 = !DILocation(line: 24, column: 3, scope: !67) -// CHECK:STDOUT: !71 = !DILocation(line: 25, column: 10, scope: !67) -// CHECK:STDOUT: !72 = !DILocation(line: 25, column: 3, scope: !67) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 23, type: !51, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !39) -// CHECK:STDOUT: !76 = !DILocation(line: 24, column: 3, scope: !73) -// CHECK:STDOUT: !77 = !DILocation(line: 25, column: 10, scope: !73) -// CHECK:STDOUT: !78 = !DILocation(line: 25, column: 3, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !80) -// CHECK:STDOUT: !80 = !{!81} -// CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !79, type: !7) -// CHECK:STDOUT: !82 = !DILocation(line: 24, column: 3, scope: !79) -// CHECK:STDOUT: !83 = !DILocation(line: 25, column: 10, scope: !79) -// CHECK:STDOUT: !84 = !DILocation(line: 25, column: 3, scope: !79) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.71d6c598da8ca542", scope: null, file: !1, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !86) -// CHECK:STDOUT: !86 = !{!87} -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !7) -// CHECK:STDOUT: !88 = !DILocation(line: 24, column: 3, scope: !85) -// CHECK:STDOUT: !89 = !DILocation(line: 25, column: 10, scope: !85) -// CHECK:STDOUT: !90 = !DILocation(line: 25, column: 3, scope: !85) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.a76b78461416b4a8", scope: null, file: !1, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !94) -// CHECK:STDOUT: !92 = !DISubroutineType(types: !93) -// CHECK:STDOUT: !93 = !{!7, !7, !7} -// CHECK:STDOUT: !94 = !{!95, !96} -// CHECK:STDOUT: !95 = !DILocalVariable(arg: 1, scope: !91, type: !7) -// CHECK:STDOUT: !96 = !DILocalVariable(arg: 2, scope: !91, type: !7) -// CHECK:STDOUT: !97 = !DILocation(line: 19, column: 5, scope: !91) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 18, type: !99, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !101) -// CHECK:STDOUT: !99 = !DISubroutineType(types: !100) -// CHECK:STDOUT: !100 = !{!39, !7, !39} -// CHECK:STDOUT: !101 = !{!102, !103} -// CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !98, type: !7) -// CHECK:STDOUT: !103 = !DILocalVariable(arg: 2, scope: !98, type: !39) -// CHECK:STDOUT: !104 = !DILocation(line: 19, column: 5, scope: !98) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.c5e4ba542a56b71f", scope: null, file: !1, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !106) -// CHECK:STDOUT: !106 = !{!107, !108} -// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !105, type: !7) -// CHECK:STDOUT: !108 = !DILocalVariable(arg: 2, scope: !105, type: !7) -// CHECK:STDOUT: !109 = !DILocation(line: 19, column: 5, scope: !105) -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.71d6c598da8ca542", scope: null, file: !1, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !111) -// CHECK:STDOUT: !111 = !{!112, !113} -// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !110, type: !7) -// CHECK:STDOUT: !113 = !DILocalVariable(arg: 2, scope: !110, type: !7) -// CHECK:STDOUT: !114 = !DILocation(line: 19, column: 5, scope: !110) +// CHECK:STDOUT: !32 = !DIFile(filename: "call_specific_in_class.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{null, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !{null} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !34} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !32, line: 24, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !35) +// CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !32, line: 32, type: !39, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !47 = !DILocation(line: 33, column: 3, scope: !46) +// CHECK:STDOUT: !49 = !DILocation(line: 34, column: 5, scope: !46) +// CHECK:STDOUT: !50 = !DILocation(line: 34, column: 3, scope: !46) +// CHECK:STDOUT: !51 = !{!35, !35} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = !DILocation(line: 35, column: 3, scope: !46) +// CHECK:STDOUT: !55 = !DILocation(line: 36, column: 5, scope: !46) +// CHECK:STDOUT: !56 = !DILocation(line: 36, column: 3, scope: !46) +// CHECK:STDOUT: !57 = !DILocation(line: 37, column: 3, scope: !46) +// CHECK:STDOUT: !59 = !DILocation(line: 38, column: 5, scope: !46) +// CHECK:STDOUT: !60 = !DILocation(line: 38, column: 3, scope: !46) +// CHECK:STDOUT: !61 = !DILocation(line: 39, column: 3, scope: !46) +// CHECK:STDOUT: !63 = !DILocation(line: 40, column: 5, scope: !46) +// CHECK:STDOUT: !64 = !DILocation(line: 40, column: 3, scope: !46) +// CHECK:STDOUT: !65 = !{!34, !34} +// CHECK:STDOUT: !66 = !DISubroutineType(types: !65) +// CHECK:STDOUT: !67 = !DILocation(line: 41, column: 3, scope: !46) +// CHECK:STDOUT: !69 = !DILocation(line: 42, column: 5, scope: !46) +// CHECK:STDOUT: !70 = !DILocation(line: 42, column: 3, scope: !46) +// CHECK:STDOUT: !71 = !DILocation(line: 43, column: 3, scope: !46) +// CHECK:STDOUT: !73 = !DILocation(line: 44, column: 3, scope: !46) +// CHECK:STDOUT: !74 = !DILocation(line: 32, column: 1, scope: !46) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 41, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !78) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !35) +// CHECK:STDOUT: !77 = !DILocation(line: 41, column: 3, scope: !75) +// CHECK:STDOUT: !78 = !{!76} +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 39, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !82) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !34) +// CHECK:STDOUT: !81 = !DILocation(line: 39, column: 3, scope: !79) +// CHECK:STDOUT: !82 = !{!80} +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a76b78461416b4a8", scope: null, file: !32, line: 28, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !91) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !35) +// CHECK:STDOUT: !89 = !DILocation(line: 29, column: 10, scope: !83) +// CHECK:STDOUT: !90 = !DILocation(line: 29, column: 3, scope: !83) +// CHECK:STDOUT: !91 = !{!84} +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !32, line: 28, type: !66, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !118) +// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !34) +// CHECK:STDOUT: !116 = !DILocation(line: 29, column: 10, scope: !110) +// CHECK:STDOUT: !117 = !DILocation(line: 29, column: 3, scope: !110) +// CHECK:STDOUT: !118 = !{!111} +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c5e4ba542a56b71f", scope: null, file: !32, line: 28, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !127) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !35) +// CHECK:STDOUT: !125 = !DILocation(line: 29, column: 10, scope: !119) +// CHECK:STDOUT: !126 = !DILocation(line: 29, column: 3, scope: !119) +// CHECK:STDOUT: !127 = !{!120} +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.71d6c598da8ca542", scope: null, file: !32, line: 28, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !136) +// CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !128, type: !35) +// CHECK:STDOUT: !134 = !DILocation(line: 29, column: 10, scope: !128) +// CHECK:STDOUT: !135 = !DILocation(line: 29, column: 3, scope: !128) +// CHECK:STDOUT: !136 = !{!129} +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a76b78461416b4a8", scope: null, file: !32, line: 23, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !149) +// CHECK:STDOUT: !138 = !DILocalVariable(arg: 1, scope: !137, type: !35) +// CHECK:STDOUT: !142 = !DILocation(line: 24, column: 3, scope: !137) +// CHECK:STDOUT: !144 = !DILocation(line: 25, column: 10, scope: !137) +// CHECK:STDOUT: !146 = !{!35, !35, !35} +// CHECK:STDOUT: !147 = !DISubroutineType(types: !146) +// CHECK:STDOUT: !148 = !DILocation(line: 25, column: 3, scope: !137) +// CHECK:STDOUT: !149 = !{!138} +// CHECK:STDOUT: !172 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4d6ceefeb7f772f4", scope: null, file: !32, line: 23, type: !66, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !184) +// CHECK:STDOUT: !173 = !DILocalVariable(arg: 1, scope: !172, type: !34) +// CHECK:STDOUT: !177 = !DILocation(line: 24, column: 3, scope: !172) +// CHECK:STDOUT: !179 = !DILocation(line: 25, column: 10, scope: !172) +// CHECK:STDOUT: !181 = !{!34, !35, !34} +// CHECK:STDOUT: !182 = !DISubroutineType(types: !181) +// CHECK:STDOUT: !183 = !DILocation(line: 25, column: 3, scope: !172) +// CHECK:STDOUT: !184 = !{!173} +// CHECK:STDOUT: !185 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c5e4ba542a56b71f", scope: null, file: !32, line: 23, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !195) +// CHECK:STDOUT: !186 = !DILocalVariable(arg: 1, scope: !185, type: !35) +// CHECK:STDOUT: !190 = !DILocation(line: 24, column: 3, scope: !185) +// CHECK:STDOUT: !192 = !DILocation(line: 25, column: 10, scope: !185) +// CHECK:STDOUT: !194 = !DILocation(line: 25, column: 3, scope: !185) +// CHECK:STDOUT: !195 = !{!186} +// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.71d6c598da8ca542", scope: null, file: !32, line: 23, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !206) +// CHECK:STDOUT: !197 = !DILocalVariable(arg: 1, scope: !196, type: !35) +// CHECK:STDOUT: !201 = !DILocation(line: 24, column: 3, scope: !196) +// CHECK:STDOUT: !203 = !DILocation(line: 25, column: 10, scope: !196) +// CHECK:STDOUT: !205 = !DILocation(line: 25, column: 3, scope: !196) +// CHECK:STDOUT: !206 = !{!197} +// CHECK:STDOUT: !207 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.a76b78461416b4a8", scope: null, file: !32, line: 18, type: !147, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !216) +// CHECK:STDOUT: !208 = !DILocalVariable(arg: 1, scope: !207, type: !35) +// CHECK:STDOUT: !209 = !DILocalVariable(arg: 2, scope: !207, type: !35) +// CHECK:STDOUT: !215 = !DILocation(line: 19, column: 5, scope: !207) +// CHECK:STDOUT: !216 = !{!208, !209} +// CHECK:STDOUT: !237 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.4d6ceefeb7f772f4", scope: null, file: !32, line: 18, type: !182, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !246) +// CHECK:STDOUT: !238 = !DILocalVariable(arg: 1, scope: !237, type: !35) +// CHECK:STDOUT: !239 = !DILocalVariable(arg: 2, scope: !237, type: !34) +// CHECK:STDOUT: !245 = !DILocation(line: 19, column: 5, scope: !237) +// CHECK:STDOUT: !246 = !{!238, !239} +// CHECK:STDOUT: !247 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.c5e4ba542a56b71f", scope: null, file: !32, line: 18, type: !147, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !256) +// CHECK:STDOUT: !248 = !DILocalVariable(arg: 1, scope: !247, type: !35) +// CHECK:STDOUT: !249 = !DILocalVariable(arg: 2, scope: !247, type: !35) +// CHECK:STDOUT: !255 = !DILocation(line: 19, column: 5, scope: !247) +// CHECK:STDOUT: !256 = !{!248, !249} +// CHECK:STDOUT: !257 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.71d6c598da8ca542", scope: null, file: !32, line: 18, type: !147, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !266) +// CHECK:STDOUT: !258 = !DILocalVariable(arg: 1, scope: !257, type: !35) +// CHECK:STDOUT: !259 = !DILocalVariable(arg: 2, scope: !257, type: !35) +// CHECK:STDOUT: !265 = !DILocation(line: 19, column: 5, scope: !257) +// CHECK:STDOUT: !266 = !{!258, !259} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon b/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon index ee1336712d86..2777da2d2fb5 100644 --- a/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon +++ b/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon @@ -55,53 +55,53 @@ fn Run() { // CHECK:STDOUT: ; ModuleID = 'lib1.carbon' // CHECK:STDOUT: source_filename = "lib1.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "lib1.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "lib1.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'lib2.carbon' // CHECK:STDOUT: source_filename = "lib2.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!21} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "lib2.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIFile(filename: "lib2.carbon", directory: "") +// CHECK:STDOUT: !21 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !20, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'todo_use.carbon' // CHECK:STDOUT: source_filename = "todo_use.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Lib1CallF.call = call i32 @_CLib1CallF.Main.4d6ceefeb7f772f4(i32 1, i32 2), !dbg !8 -// CHECK:STDOUT: %Lib2CallF.call = call i32 @_CLib2CallF.Main.4d6ceefeb7f772f4(i32 1, i32 2), !dbg !9 -// CHECK:STDOUT: ret i32 0, !dbg !10 +// CHECK:STDOUT: %Lib1CallF.call = call i32 @_CLib1CallF.Main.4d6ceefeb7f772f4(i32 1, i32 2), !dbg !28 +// CHECK:STDOUT: %Lib2CallF.call = call i32 @_CLib2CallF.Main.4d6ceefeb7f772f4(i32 1, i32 2), !dbg !33 +// CHECK:STDOUT: ret i32 0, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CLib1CallF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b) #0 !dbg !11 { -// CHECK:STDOUT: %1 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b), !dbg !18 -// CHECK:STDOUT: ret i32 %1, !dbg !19 +// CHECK:STDOUT: define linkonce_odr i32 @_CLib1CallF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b) #0 !dbg !37 { +// CHECK:STDOUT: %1 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b), !dbg !46 +// CHECK:STDOUT: ret i32 %1, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CLib2CallF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b) #0 !dbg !20 { -// CHECK:STDOUT: %1 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b), !dbg !25 -// CHECK:STDOUT: ret i32 %1, !dbg !26 +// CHECK:STDOUT: define linkonce_odr i32 @_CLib2CallF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b) #0 !dbg !49 { +// CHECK:STDOUT: %1 = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 %a, i32 %b), !dbg !58 +// CHECK:STDOUT: ret i32 %1, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %a, i32 %_) #0 !dbg !27 { -// CHECK:STDOUT: ret i32 %a, !dbg !31 +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %a, i32 %_) #0 !dbg !61 { +// CHECK:STDOUT: ret i32 %a, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -109,39 +109,39 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "todo_use.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 10, column: 16, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 11, column: 16, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Lib1CallF", linkageName: "_CLib1CallF.Main.4d6ceefeb7f772f4", scope: null, file: !12, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DIFile(filename: "lib1.carbon", directory: "") -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!7, !7, !7} -// CHECK:STDOUT: !15 = !{!16, !17} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !11, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 9, column: 10, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Lib2CallF", linkageName: "_CLib2CallF.Main.4d6ceefeb7f772f4", scope: null, file: !21, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !21 = !DIFile(filename: "lib2.carbon", directory: "") -// CHECK:STDOUT: !22 = !{!23, !24} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 2, scope: !20, type: !7) -// CHECK:STDOUT: !25 = !DILocation(line: 12, column: 10, scope: !20) -// CHECK:STDOUT: !26 = !DILocation(line: 12, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !12, line: 4, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29, !30} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 2, scope: !27, type: !7) -// CHECK:STDOUT: !31 = !DILocation(line: 5, column: 3, scope: !27) +// CHECK:STDOUT: !18 = !DIFile(filename: "lib1.carbon", directory: "") +// CHECK:STDOUT: !20 = !DIFile(filename: "lib2.carbon", directory: "") +// CHECK:STDOUT: !22 = !DIFile(filename: "todo_use.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !25 = !{!24} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !22, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 10, column: 16, scope: !27) +// CHECK:STDOUT: !29 = !{!24, !24, !24} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !33 = !DILocation(line: 11, column: 16, scope: !27) +// CHECK:STDOUT: !36 = !DILocation(line: 9, column: 1, scope: !27) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Lib1CallF", linkageName: "_CLib1CallF.Main.4d6ceefeb7f772f4", scope: null, file: !18, line: 8, type: !30, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !48) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !24) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !37, type: !24) +// CHECK:STDOUT: !46 = !DILocation(line: 9, column: 10, scope: !37) +// CHECK:STDOUT: !47 = !DILocation(line: 9, column: 3, scope: !37) +// CHECK:STDOUT: !48 = !{!38, !39} +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Lib2CallF", linkageName: "_CLib2CallF.Main.4d6ceefeb7f772f4", scope: null, file: !20, line: 11, type: !30, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !60) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !24) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 2, scope: !49, type: !24) +// CHECK:STDOUT: !58 = !DILocation(line: 12, column: 10, scope: !49) +// CHECK:STDOUT: !59 = !DILocation(line: 12, column: 3, scope: !49) +// CHECK:STDOUT: !60 = !{!50, !51} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !18, line: 4, type: !30, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !70) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !24) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 2, scope: !61, type: !24) +// CHECK:STDOUT: !69 = !DILocation(line: 5, column: 3, scope: !61) +// CHECK:STDOUT: !70 = !{!62, !63} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/import.carbon b/toolchain/lower/testdata/function/generic/import.carbon index 72666a54ccb3..c01f233883ab 100644 --- a/toolchain/lower/testdata/function/generic/import.carbon +++ b/toolchain/lower/testdata/function/generic/import.carbon @@ -63,24 +63,24 @@ fn Call() -> i32 { // CHECK:STDOUT: declare void @_CIndirectDeclared.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIndirectDefined.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CIndirectDefined.Main() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "indirectly_imported.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "IndirectDefined", linkageName: "_CIndirectDefined.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "indirectly_imported.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "IndirectDefined", linkageName: "_CIndirectDefined.Main", scope: null, file: !18, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !23 = !DILocation(line: 6, column: 1, scope: !22) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'directly_imported.carbon' @@ -89,60 +89,60 @@ fn Call() -> i32 { // CHECK:STDOUT: declare void @_CDirectDeclared.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDirectDefined.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CDirectDefined.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!25} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "directly_imported.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "DirectDefined", linkageName: "_CDirectDefined.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 8, column: 1, scope: !4) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !24 = !DIFile(filename: "directly_imported.carbon", directory: "") +// CHECK:STDOUT: !25 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !24, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "DirectDefined", linkageName: "_CDirectDefined.Main", scope: null, file: !24, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 8, column: 1, scope: !26) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use.carbon' // CHECK:STDOUT: source_filename = "use.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCall.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CCall.Main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %p.var = alloca ptr, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !8 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p.var), !dbg !9 -// CHECK:STDOUT: %DirectGeneric.call = call ptr @_CDirectGeneric.Main.84588f41d61dafba(ptr %n.var), !dbg !10 -// CHECK:STDOUT: store ptr %DirectGeneric.call, ptr %p.var, align 8, !dbg !9 -// CHECK:STDOUT: %.loc9_11 = load ptr, ptr %p.var, align 8, !dbg !11 -// CHECK:STDOUT: %.loc9_10.2 = load i32, ptr %.loc9_11, align 4, !dbg !12 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc9_10.2, !dbg !13 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !38 +// CHECK:STDOUT: %p.var = alloca ptr, align 8, !dbg !40 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !38 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p.var), !dbg !40 +// CHECK:STDOUT: %DirectGeneric.call = call ptr @_CDirectGeneric.Main.84588f41d61dafba(ptr %n.var), !dbg !43 +// CHECK:STDOUT: store ptr %DirectGeneric.call, ptr %p.var, align 8, !dbg !40 +// CHECK:STDOUT: %.loc9_11 = load ptr, ptr %p.var, align 8, !dbg !48 +// CHECK:STDOUT: %.loc9_10.2 = load i32, ptr %.loc9_11, align 4, !dbg !49 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !38 +// CHECK:STDOUT: ret i32 %.loc9_10.2, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CDirectGeneric.Main.84588f41d61dafba(ptr %y) #0 !dbg !20 { -// CHECK:STDOUT: call void @_CDirectDeclared.Main(), !dbg !27 -// CHECK:STDOUT: call void @_CDirectDefined.Main(), !dbg !28 -// CHECK:STDOUT: %1 = call ptr @_CIndirectGeneric.Main.84588f41d61dafba(ptr %y), !dbg !29 -// CHECK:STDOUT: ret ptr %1, !dbg !30 +// CHECK:STDOUT: define linkonce_odr ptr @_CDirectGeneric.Main.84588f41d61dafba(ptr %y) #0 !dbg !55 { +// CHECK:STDOUT: call void @_CDirectDeclared.Main(), !dbg !60 +// CHECK:STDOUT: call void @_CDirectDefined.Main(), !dbg !61 +// CHECK:STDOUT: %1 = call ptr @_CIndirectGeneric.Main.84588f41d61dafba(ptr %y), !dbg !63 +// CHECK:STDOUT: ret ptr %1, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CDirectDeclared.Main() @@ -150,10 +150,10 @@ fn Call() -> i32 { // CHECK:STDOUT: declare void @_CDirectDefined.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CIndirectGeneric.Main.84588f41d61dafba(ptr %x) #0 !dbg !31 { -// CHECK:STDOUT: call void @_CIndirectDeclared.Main(), !dbg !35 -// CHECK:STDOUT: call void @_CIndirectDefined.Main(), !dbg !36 -// CHECK:STDOUT: ret ptr %x, !dbg !37 +// CHECK:STDOUT: define linkonce_odr ptr @_CIndirectGeneric.Main.84588f41d61dafba(ptr %x) #0 !dbg !66 { +// CHECK:STDOUT: call void @_CIndirectDeclared.Main(), !dbg !71 +// CHECK:STDOUT: call void @_CIndirectDefined.Main(), !dbg !72 +// CHECK:STDOUT: ret ptr %x, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CIndirectDeclared.Main() @@ -166,45 +166,45 @@ fn Call() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!29} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 8, column: 17, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 11, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !7} -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !14, type: !7) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !14) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "DirectGeneric", linkageName: "_CDirectGeneric.Main.84588f41d61dafba", scope: null, file: !21, line: 10, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !21 = !DIFile(filename: "directly_imported.carbon", directory: "") -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{!24, !24} -// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !20, type: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 11, column: 3, scope: !20) -// CHECK:STDOUT: !28 = !DILocation(line: 12, column: 3, scope: !20) -// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 10, scope: !20) -// CHECK:STDOUT: !30 = !DILocation(line: 13, column: 3, scope: !20) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "IndirectGeneric", linkageName: "_CIndirectGeneric.Main.84588f41d61dafba", scope: null, file: !32, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !32 = !DIFile(filename: "indirectly_imported.carbon", directory: "") -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !31, type: !24) -// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 3, scope: !31) -// CHECK:STDOUT: !36 = !DILocation(line: 10, column: 3, scope: !31) -// CHECK:STDOUT: !37 = !DILocation(line: 11, column: 3, scope: !31) +// CHECK:STDOUT: !18 = !DIFile(filename: "indirectly_imported.carbon", directory: "") +// CHECK:STDOUT: !24 = !DIFile(filename: "directly_imported.carbon", directory: "") +// CHECK:STDOUT: !28 = !DIFile(filename: "use.carbon", directory: "") +// CHECK:STDOUT: !29 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !28, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !31 = !{!30} +// CHECK:STDOUT: !32 = !DISubroutineType(types: !31) +// CHECK:STDOUT: !33 = !{null, !30} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !28, line: 6, type: !32, spFlags: DISPFlagDefinition, unit: !29) +// CHECK:STDOUT: !38 = !DILocation(line: 7, column: 3, scope: !35) +// CHECK:STDOUT: !40 = !DILocation(line: 8, column: 3, scope: !35) +// CHECK:STDOUT: !43 = !DILocation(line: 8, column: 17, scope: !35) +// CHECK:STDOUT: !44 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !45 = !{!44, !44} +// CHECK:STDOUT: !46 = !DISubroutineType(types: !45) +// CHECK:STDOUT: !48 = !DILocation(line: 9, column: 11, scope: !35) +// CHECK:STDOUT: !49 = !DILocation(line: 9, column: 10, scope: !35) +// CHECK:STDOUT: !50 = !DILocation(line: 9, column: 3, scope: !35) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !28, line: 7, type: !34, spFlags: DISPFlagDefinition, unit: !29, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !30) +// CHECK:STDOUT: !53 = !DILocation(line: 7, column: 3, scope: !51) +// CHECK:STDOUT: !54 = !{!52} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "DirectGeneric", linkageName: "_CDirectGeneric.Main.84588f41d61dafba", scope: null, file: !24, line: 10, type: !46, spFlags: DISPFlagDefinition, unit: !29, retainedNodes: !65) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !44) +// CHECK:STDOUT: !60 = !DILocation(line: 11, column: 3, scope: !55) +// CHECK:STDOUT: !61 = !DILocation(line: 12, column: 3, scope: !55) +// CHECK:STDOUT: !63 = !DILocation(line: 13, column: 10, scope: !55) +// CHECK:STDOUT: !64 = !DILocation(line: 13, column: 3, scope: !55) +// CHECK:STDOUT: !65 = !{!56} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "IndirectGeneric", linkageName: "_CIndirectGeneric.Main.84588f41d61dafba", scope: null, file: !18, line: 8, type: !46, spFlags: DISPFlagDefinition, unit: !29, retainedNodes: !75) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !44) +// CHECK:STDOUT: !71 = !DILocation(line: 9, column: 3, scope: !66) +// CHECK:STDOUT: !72 = !DILocation(line: 10, column: 3, scope: !66) +// CHECK:STDOUT: !74 = !DILocation(line: 11, column: 3, scope: !66) +// CHECK:STDOUT: !75 = !{!67} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/import_core_witness.carbon b/toolchain/lower/testdata/function/generic/import_core_witness.carbon index ffd7c345da0b..10b1fe4f2a31 100644 --- a/toolchain/lower/testdata/function/generic/import_core_witness.carbon +++ b/toolchain/lower/testdata/function/generic/import_core_witness.carbon @@ -33,46 +33,46 @@ fn Run() { // CHECK:STDOUT: source_filename = "lib.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !9 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "lib.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !4 = !DIFile(filename: "lib.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 7, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !12) +// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !9, type: !6) +// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 3, scope: !9) +// CHECK:STDOUT: !12 = !{!10} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'main.carbon' // CHECK:STDOUT: source_filename = "main.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.79e272ab3b2c3188(), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !9 +// CHECK:STDOUT: call void @_CF.Main.79e272ab3b2c3188(), !dbg !18 +// CHECK:STDOUT: ret i32 0, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.79e272ab3b2c3188() #0 !dbg !10 { -// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !14 -// CHECK:STDOUT: store i32 0, ptr %1, align 4, !dbg !14 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.79e272ab3b2c3188() #0 !dbg !22 { +// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !23 +// CHECK:STDOUT: store i32 0, ptr %1, align 4, !dbg !23 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %1), !dbg !23 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr) @@ -83,23 +83,23 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!14} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "main.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.79e272ab3b2c3188", scope: null, file: !11, line: 4, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DIFile(filename: "lib.carbon", directory: "") -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 3, scope: !10) -// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 1, scope: !10) +// CHECK:STDOUT: !4 = !DIFile(filename: "lib.carbon", directory: "") +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !13 = !DIFile(filename: "main.carbon", directory: "") +// CHECK:STDOUT: !14 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !13, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !15 = !{!6} +// CHECK:STDOUT: !16 = !DISubroutineType(types: !15) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !13, line: 4, type: !16, spFlags: DISPFlagDefinition, unit: !14) +// CHECK:STDOUT: !18 = !DILocation(line: 5, column: 3, scope: !17) +// CHECK:STDOUT: !19 = !{null} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !DILocation(line: 4, column: 1, scope: !17) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.79e272ab3b2c3188", scope: null, file: !4, line: 4, type: !20, spFlags: DISPFlagDefinition, unit: !14) +// CHECK:STDOUT: !23 = !DILocation(line: 7, column: 3, scope: !22) +// CHECK:STDOUT: !25 = !DILocation(line: 4, column: 1, scope: !22) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/import_unused_def.carbon b/toolchain/lower/testdata/function/generic/import_unused_def.carbon index 130129aa5f5f..e89cf56d612f 100644 --- a/toolchain/lower/testdata/function/generic/import_unused_def.carbon +++ b/toolchain/lower/testdata/function/generic/import_unused_def.carbon @@ -45,71 +45,71 @@ fn Main() { // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_COp.Foo.Main:Copy.Core"(i32 %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_COp.Foo.Main:Copy.Core"(i32 %self) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %self, !dbg !10 +// CHECK:STDOUT: ret i32 %self, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Foo.Main:Copy.Core", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 5, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cdca8898aabbc885:core.Destroy.Core", scope: null, file: !1, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 3, scope: !17) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Foo.Main:Copy.Core", scope: null, file: !18, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !20) +// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 5, scope: !25) +// CHECK:STDOUT: !33 = !{!26} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !37) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !20) +// CHECK:STDOUT: !36 = !DILocation(line: 18, column: 3, scope: !34) +// CHECK:STDOUT: !37 = !{!35} +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cdca8898aabbc885:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !{!39} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %GenericF.call = call i32 @_CGenericF.Main.084a2801e0f5d754({} zeroinitializer), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %GenericF.call = call i32 @_CGenericF.Main.084a2801e0f5d754({} zeroinitializer), !dbg !47 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGenericF.Main.084a2801e0f5d754({} %x) #0 !dbg !9 { -// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !17 -// CHECK:STDOUT: %2 = call i32 @"_COp.Foo.Main:Copy.Core"(i32 0), !dbg !18 -// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !17 -// CHECK:STDOUT: %3 = load i32, ptr %1, align 4, !dbg !19 -// CHECK:STDOUT: %4 = call i32 @"_COp.Foo.Main:Copy.Core"(i32 %3), !dbg !19 -// CHECK:STDOUT: call void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr %1), !dbg !17 -// CHECK:STDOUT: ret i32 %4, !dbg !20 +// CHECK:STDOUT: define linkonce_odr i32 @_CGenericF.Main.084a2801e0f5d754({} %x) #0 !dbg !52 { +// CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !57 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !57 +// CHECK:STDOUT: %2 = call i32 @"_COp.Foo.Main:Copy.Core"(i32 0), !dbg !58 +// CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !57 +// CHECK:STDOUT: %3 = load i32, ptr %1, align 4, !dbg !60 +// CHECK:STDOUT: %4 = call i32 @"_COp.Foo.Main:Copy.Core"(i32 %3), !dbg !60 +// CHECK:STDOUT: call void @"_COp.cdca8898aabbc885:core.Destroy.Core"(ptr %1), !dbg !57 +// CHECK:STDOUT: ret i32 %4, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @"_COp.Foo.Main:Copy.Core"(i32) @@ -127,28 +127,28 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!43} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "GenericF", linkageName: "_CGenericF.Main.084a2801e0f5d754", scope: null, file: !10, line: 17, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !10 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{!13, !14} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !9, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 3, scope: !9) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 16, scope: !9) -// CHECK:STDOUT: !19 = !DILocation(line: 19, column: 10, scope: !9) -// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 3, scope: !9) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !42 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !43 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !42, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !44 = !{null} +// CHECK:STDOUT: !45 = !DISubroutineType(types: !44) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !42, line: 4, type: !45, spFlags: DISPFlagDefinition, unit: !43) +// CHECK:STDOUT: !47 = !DILocation(line: 5, column: 3, scope: !46) +// CHECK:STDOUT: !48 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !49 = !{!20, !48} +// CHECK:STDOUT: !50 = !DISubroutineType(types: !49) +// CHECK:STDOUT: !51 = !DILocation(line: 4, column: 1, scope: !46) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "GenericF", linkageName: "_CGenericF.Main.084a2801e0f5d754", scope: null, file: !18, line: 17, type: !50, spFlags: DISPFlagDefinition, unit: !43, retainedNodes: !62) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !48) +// CHECK:STDOUT: !57 = !DILocation(line: 18, column: 3, scope: !52) +// CHECK:STDOUT: !58 = !DILocation(line: 18, column: 16, scope: !52) +// CHECK:STDOUT: !60 = !DILocation(line: 19, column: 10, scope: !52) +// CHECK:STDOUT: !61 = !DILocation(line: 19, column: 3, scope: !52) +// CHECK:STDOUT: !62 = !{!53} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/local_function.carbon b/toolchain/lower/testdata/function/generic/local_function.carbon index 56d63aea5e7a..145e215d872e 100644 --- a/toolchain/lower/testdata/function/generic/local_function.carbon +++ b/toolchain/lower/testdata/function/generic/local_function.carbon @@ -28,49 +28,49 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "local_function.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 0), !dbg !8 -// CHECK:STDOUT: ret i32 %F.call, !dbg !9 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4d6ceefeb7f772f4(i32 0), !dbg !40 +// CHECK:STDOUT: ret i32 %F.call, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %y) #0 !dbg !10 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4d6ceefeb7f772f4(i32 %y) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @"_CG:enclosed.4d6ceefeb7f772f4"(i32 %y), !dbg !15 -// CHECK:STDOUT: ret i32 %G.call, !dbg !16 +// CHECK:STDOUT: %G.call = call i32 @"_CG:enclosed.4d6ceefeb7f772f4"(i32 %y), !dbg !50 +// CHECK:STDOUT: ret i32 %G.call, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CG:enclosed.4d6ceefeb7f772f4"(i32 %x) #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CG:enclosed.4d6ceefeb7f772f4"(i32 %x) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !20 +// CHECK:STDOUT: ret i32 %x, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "local_function.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 23, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !1, line: 17, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{!7, !7} -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !10, type: !7) -// CHECK:STDOUT: !15 = !DILocation(line: 19, column: 10, scope: !10) -// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "G", linkageName: "_CG:enclosed.4d6ceefeb7f772f4", scope: null, file: !1, line: 18, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 21, scope: !17) +// CHECK:STDOUT: !32 = !DIFile(filename: "local_function.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !32, line: 22, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !40 = !DILocation(line: 23, column: 10, scope: !37) +// CHECK:STDOUT: !41 = !{!34, !34} +// CHECK:STDOUT: !42 = !DISubroutineType(types: !41) +// CHECK:STDOUT: !43 = !DILocation(line: 23, column: 3, scope: !37) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d6ceefeb7f772f4", scope: null, file: !32, line: 17, type: !42, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !52) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !34) +// CHECK:STDOUT: !50 = !DILocation(line: 19, column: 10, scope: !44) +// CHECK:STDOUT: !51 = !DILocation(line: 19, column: 3, scope: !44) +// CHECK:STDOUT: !52 = !{!45} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "G", linkageName: "_CG:enclosed.4d6ceefeb7f772f4", scope: null, file: !32, line: 18, type: !42, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !60) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !34) +// CHECK:STDOUT: !59 = !DILocation(line: 18, column: 21, scope: !53) +// CHECK:STDOUT: !60 = !{!54} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/reverse_canonical.carbon b/toolchain/lower/testdata/function/generic/reverse_canonical.carbon index a37ae3eedb9a..0e8ea601b88c 100644 --- a/toolchain/lower/testdata/function/generic/reverse_canonical.carbon +++ b/toolchain/lower/testdata/function/generic/reverse_canonical.carbon @@ -52,119 +52,119 @@ fn Main() { // CHECK:STDOUT: source_filename = "reverse_canonical.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca i1, align 1, !dbg !7 -// CHECK:STDOUT: %y.var = alloca ptr, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !7 -// CHECK:STDOUT: store i8 poison, ptr %x.var, align 1, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !8 -// CHECK:STDOUT: store ptr poison, ptr %y.var, align 8, !dbg !8 -// CHECK:STDOUT: %.loc47_9 = load i8, ptr %x.var, align 1, !dbg !9 -// CHECK:STDOUT: %.loc47_91 = trunc i8 %.loc47_9 to i1, !dbg !9 -// CHECK:STDOUT: %.loc47_12 = load i8, ptr %x.var, align 1, !dbg !10 -// CHECK:STDOUT: %.loc47_122 = trunc i8 %.loc47_12 to i1, !dbg !10 -// CHECK:STDOUT: %.loc47_15 = load ptr, ptr %y.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @_Cfirst.Main.36f5e0b0ce09cb9a(i1 %.loc47_91, i1 %.loc47_122, ptr %.loc47_15), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %x.var = alloca i1, align 1, !dbg !21 +// CHECK:STDOUT: %y.var = alloca ptr, align 8, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !21 +// CHECK:STDOUT: store i8 poison, ptr %x.var, align 1, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !23 +// CHECK:STDOUT: store ptr poison, ptr %y.var, align 8, !dbg !23 +// CHECK:STDOUT: %.loc47_9 = load i8, ptr %x.var, align 1, !dbg !25 +// CHECK:STDOUT: %.loc47_91 = trunc i8 %.loc47_9 to i1, !dbg !25 +// CHECK:STDOUT: %.loc47_12 = load i8, ptr %x.var, align 1, !dbg !26 +// CHECK:STDOUT: %.loc47_122 = trunc i8 %.loc47_12 to i1, !dbg !26 +// CHECK:STDOUT: %.loc47_15 = load ptr, ptr %y.var, align 8, !dbg !27 +// CHECK:STDOUT: call void @_Cfirst.Main.36f5e0b0ce09cb9a(i1 %.loc47_91, i1 %.loc47_122, ptr %.loc47_15), !dbg !28 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.36f5e0b0ce09cb9a(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !14 { +// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.36f5e0b0ce09cb9a(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !22 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !22 -// CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !23 -// CHECK:STDOUT: call void @_Csecond.Main.0f29a29bf45af723(i1 %arg2, i1 %arg2, ptr %.loc23), !dbg !24 -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !40 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !40 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !40 +// CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !44 +// CHECK:STDOUT: call void @_Csecond.Main.0f29a29bf45af723(i1 %arg2, i1 %arg2, ptr %.loc23), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.0f29a29bf45af723(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.0f29a29bf45af723(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !31 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !31 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !31 -// CHECK:STDOUT: call void @_Cfirst.Main.81f1c9de445b895c(ptr %arg3, ptr %arg3, i1 %arg1), !dbg !32 -// CHECK:STDOUT: %.loc30 = load ptr, ptr %local_name.var, align 8, !dbg !33 -// CHECK:STDOUT: call void @_Cthird.Main.0f29a29bf45af723(i1 %arg2, i1 %arg2, ptr %.loc30), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.81f1c9de445b895c(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !36 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !41 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !41 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !41 -// CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !42 -// CHECK:STDOUT: call void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !43 -// CHECK:STDOUT: ret void, !dbg !44 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.0f29a29bf45af723(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !45 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !50 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !50 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !50 -// CHECK:STDOUT: %.loc36_10 = load ptr, ptr %local_name.var, align 8, !dbg !51 -// CHECK:STDOUT: %.loc36_22 = load ptr, ptr %local_name.var, align 8, !dbg !52 -// CHECK:STDOUT: call void @_Cfourth.Main.c6787c0e2572c86c(ptr %.loc36_10, ptr %.loc36_22, i1 %arg1), !dbg !53 -// CHECK:STDOUT: call void @_Cfourth.Main.c6787c0e2572c86c(ptr %arg3, ptr %arg3, i1 %arg2), !dbg !54 -// CHECK:STDOUT: ret void, !dbg !55 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !56 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !61 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !61 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !61 -// CHECK:STDOUT: call void @_Cfirst.Main.e1ce67f3c23ab61f(ptr %arg3, ptr %arg3, ptr %arg1), !dbg !62 +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !55 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !55 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !55 +// CHECK:STDOUT: call void @_Cfirst.Main.81f1c9de445b895c(ptr %arg3, ptr %arg3, i1 %arg1), !dbg !60 // CHECK:STDOUT: %.loc30 = load ptr, ptr %local_name.var, align 8, !dbg !63 -// CHECK:STDOUT: call void @_Cthird.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc30), !dbg !64 +// CHECK:STDOUT: call void @_Cthird.Main.0f29a29bf45af723(i1 %arg2, i1 %arg2, ptr %.loc30), !dbg !64 // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.c6787c0e2572c86c(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !66 { +// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.81f1c9de445b895c(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !71 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !72 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !77 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !77 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !77 +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !74 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !74 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !74 // CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !78 // CHECK:STDOUT: call void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !79 // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !81 { +// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.0f29a29bf45af723(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !86 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !86 -// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !86 -// CHECK:STDOUT: %.loc36_10 = load ptr, ptr %local_name.var, align 8, !dbg !87 -// CHECK:STDOUT: %.loc36_22 = load ptr, ptr %local_name.var, align 8, !dbg !88 -// CHECK:STDOUT: call void @_Cfourth.Main.901b24db5c2cfe42(ptr %.loc36_10, ptr %.loc36_22, ptr %arg1), !dbg !89 -// CHECK:STDOUT: call void @_Cfourth.Main.901b24db5c2cfe42(ptr %arg3, ptr %arg3, ptr %arg2), !dbg !90 -// CHECK:STDOUT: ret void, !dbg !91 +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !89 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !89 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !89 +// CHECK:STDOUT: %.loc36_10 = load ptr, ptr %local_name.var, align 8, !dbg !91 +// CHECK:STDOUT: %.loc36_22 = load ptr, ptr %local_name.var, align 8, !dbg !92 +// CHECK:STDOUT: call void @_Cfourth.Main.c6787c0e2572c86c(ptr %.loc36_10, ptr %.loc36_22, i1 %arg1), !dbg !94 +// CHECK:STDOUT: call void @_Cfourth.Main.c6787c0e2572c86c(ptr %arg3, ptr %arg3, i1 %arg2), !dbg !98 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.901b24db5c2cfe42(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !92 { +// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !101 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !97 +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !108 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !108 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !108 +// CHECK:STDOUT: call void @_Cfirst.Main.e1ce67f3c23ab61f(ptr %arg3, ptr %arg3, ptr %arg1), !dbg !113 +// CHECK:STDOUT: %.loc30 = load ptr, ptr %local_name.var, align 8, !dbg !116 +// CHECK:STDOUT: call void @_Cthird.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc30), !dbg !117 +// CHECK:STDOUT: ret void, !dbg !118 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.c6787c0e2572c86c(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !120 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !127 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !138 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !145 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !145 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !145 +// CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !149 +// CHECK:STDOUT: call void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !150 +// CHECK:STDOUT: ret void, !dbg !151 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !153 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !160 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !160 +// CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !160 +// CHECK:STDOUT: %.loc36_10 = load ptr, ptr %local_name.var, align 8, !dbg !162 +// CHECK:STDOUT: %.loc36_22 = load ptr, ptr %local_name.var, align 8, !dbg !163 +// CHECK:STDOUT: call void @_Cfourth.Main.901b24db5c2cfe42(ptr %.loc36_10, ptr %.loc36_22, ptr %arg1), !dbg !165 +// CHECK:STDOUT: call void @_Cfourth.Main.901b24db5c2cfe42(ptr %arg3, ptr %arg3, ptr %arg2), !dbg !169 +// CHECK:STDOUT: ret void, !dbg !170 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.901b24db5c2cfe42(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !172 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !179 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -175,105 +175,105 @@ fn Main() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "reverse_canonical.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 43, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 44, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 45, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 47, column: 9, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 47, column: 12, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 47, column: 15, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 47, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 43, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.36f5e0b0ce09cb9a", scope: null, file: !1, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17, !17, !17} -// CHECK:STDOUT: !17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !18 = !{!19, !20, !21} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 2, scope: !14, type: !17) -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 3, scope: !14, type: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 21, column: 3, scope: !14) -// CHECK:STDOUT: !23 = !DILocation(line: 23, column: 22, scope: !14) -// CHECK:STDOUT: !24 = !DILocation(line: 23, column: 3, scope: !14) -// CHECK:STDOUT: !25 = !DILocation(line: 20, column: 1, scope: !14) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.0f29a29bf45af723", scope: null, file: !1, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28, !29, !30} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !17) -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 2, scope: !26, type: !17) -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 3, scope: !26, type: !17) -// CHECK:STDOUT: !31 = !DILocation(line: 27, column: 3, scope: !26) -// CHECK:STDOUT: !32 = !DILocation(line: 29, column: 3, scope: !26) -// CHECK:STDOUT: !33 = !DILocation(line: 30, column: 21, scope: !26) -// CHECK:STDOUT: !34 = !DILocation(line: 30, column: 3, scope: !26) -// CHECK:STDOUT: !35 = !DILocation(line: 26, column: 1, scope: !26) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.81f1c9de445b895c", scope: null, file: !1, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38, !39, !40} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !17) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !36, type: !17) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 3, scope: !36, type: !17) -// CHECK:STDOUT: !41 = !DILocation(line: 21, column: 3, scope: !36) -// CHECK:STDOUT: !42 = !DILocation(line: 23, column: 22, scope: !36) -// CHECK:STDOUT: !43 = !DILocation(line: 23, column: 3, scope: !36) -// CHECK:STDOUT: !44 = !DILocation(line: 20, column: 1, scope: !36) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.0f29a29bf45af723", scope: null, file: !1, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47, !48, !49} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !17) -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 2, scope: !45, type: !17) -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 3, scope: !45, type: !17) -// CHECK:STDOUT: !50 = !DILocation(line: 34, column: 3, scope: !45) -// CHECK:STDOUT: !51 = !DILocation(line: 36, column: 10, scope: !45) -// CHECK:STDOUT: !52 = !DILocation(line: 36, column: 22, scope: !45) -// CHECK:STDOUT: !53 = !DILocation(line: 36, column: 3, scope: !45) -// CHECK:STDOUT: !54 = !DILocation(line: 37, column: 3, scope: !45) -// CHECK:STDOUT: !55 = !DILocation(line: 33, column: 1, scope: !45) -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.e1ce67f3c23ab61f", scope: null, file: !1, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !57) -// CHECK:STDOUT: !57 = !{!58, !59, !60} -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !56, type: !17) -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 2, scope: !56, type: !17) -// CHECK:STDOUT: !60 = !DILocalVariable(arg: 3, scope: !56, type: !17) -// CHECK:STDOUT: !61 = !DILocation(line: 27, column: 3, scope: !56) -// CHECK:STDOUT: !62 = !DILocation(line: 29, column: 3, scope: !56) -// CHECK:STDOUT: !63 = !DILocation(line: 30, column: 21, scope: !56) -// CHECK:STDOUT: !64 = !DILocation(line: 30, column: 3, scope: !56) -// CHECK:STDOUT: !65 = !DILocation(line: 26, column: 1, scope: !56) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.c6787c0e2572c86c", scope: null, file: !1, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) -// CHECK:STDOUT: !67 = !{!68, !69, !70} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !17) -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !66, type: !17) -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 3, scope: !66, type: !17) -// CHECK:STDOUT: !71 = !DILocation(line: 40, column: 1, scope: !66) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.e1ce67f3c23ab61f", scope: null, file: !1, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !73) -// CHECK:STDOUT: !73 = !{!74, !75, !76} -// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !17) -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 2, scope: !72, type: !17) -// CHECK:STDOUT: !76 = !DILocalVariable(arg: 3, scope: !72, type: !17) -// CHECK:STDOUT: !77 = !DILocation(line: 21, column: 3, scope: !72) -// CHECK:STDOUT: !78 = !DILocation(line: 23, column: 22, scope: !72) -// CHECK:STDOUT: !79 = !DILocation(line: 23, column: 3, scope: !72) -// CHECK:STDOUT: !80 = !DILocation(line: 20, column: 1, scope: !72) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.e1ce67f3c23ab61f", scope: null, file: !1, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !82) -// CHECK:STDOUT: !82 = !{!83, !84, !85} -// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !17) -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 2, scope: !81, type: !17) -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 3, scope: !81, type: !17) -// CHECK:STDOUT: !86 = !DILocation(line: 34, column: 3, scope: !81) -// CHECK:STDOUT: !87 = !DILocation(line: 36, column: 10, scope: !81) -// CHECK:STDOUT: !88 = !DILocation(line: 36, column: 22, scope: !81) -// CHECK:STDOUT: !89 = !DILocation(line: 36, column: 3, scope: !81) -// CHECK:STDOUT: !90 = !DILocation(line: 37, column: 3, scope: !81) -// CHECK:STDOUT: !91 = !DILocation(line: 33, column: 1, scope: !81) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.901b24db5c2cfe42", scope: null, file: !1, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !93) -// CHECK:STDOUT: !93 = !{!94, !95, !96} -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !92, type: !17) -// CHECK:STDOUT: !95 = !DILocalVariable(arg: 2, scope: !92, type: !17) -// CHECK:STDOUT: !96 = !DILocalVariable(arg: 3, scope: !92, type: !17) -// CHECK:STDOUT: !97 = !DILocation(line: 40, column: 1, scope: !92) +// CHECK:STDOUT: !16 = !DIFile(filename: "reverse_canonical.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !{null} +// CHECK:STDOUT: !19 = !DISubroutineType(types: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !16, line: 43, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !21 = !DILocation(line: 44, column: 3, scope: !20) +// CHECK:STDOUT: !23 = !DILocation(line: 45, column: 3, scope: !20) +// CHECK:STDOUT: !25 = !DILocation(line: 47, column: 9, scope: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 47, column: 12, scope: !20) +// CHECK:STDOUT: !27 = !DILocation(line: 47, column: 15, scope: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 47, column: 3, scope: !20) +// CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !30 = !{null, !29, !29, !29} +// CHECK:STDOUT: !31 = !DISubroutineType(types: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 43, column: 1, scope: !20) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.36f5e0b0ce09cb9a", scope: null, file: !16, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !47) +// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !29) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !33, type: !29) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 3, scope: !33, type: !29) +// CHECK:STDOUT: !40 = !DILocation(line: 21, column: 3, scope: !33) +// CHECK:STDOUT: !44 = !DILocation(line: 23, column: 22, scope: !33) +// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 3, scope: !33) +// CHECK:STDOUT: !46 = !DILocation(line: 20, column: 1, scope: !33) +// CHECK:STDOUT: !47 = !{!34, !35, !36} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.0f29a29bf45af723", scope: null, file: !16, line: 26, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !66) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !29) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !48, type: !29) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 3, scope: !48, type: !29) +// CHECK:STDOUT: !55 = !DILocation(line: 27, column: 3, scope: !48) +// CHECK:STDOUT: !60 = !DILocation(line: 29, column: 3, scope: !48) +// CHECK:STDOUT: !63 = !DILocation(line: 30, column: 21, scope: !48) +// CHECK:STDOUT: !64 = !DILocation(line: 30, column: 3, scope: !48) +// CHECK:STDOUT: !65 = !DILocation(line: 26, column: 1, scope: !48) +// CHECK:STDOUT: !66 = !{!49, !50, !51} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.81f1c9de445b895c", scope: null, file: !16, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !81) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !29) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !67, type: !29) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 3, scope: !67, type: !29) +// CHECK:STDOUT: !74 = !DILocation(line: 21, column: 3, scope: !67) +// CHECK:STDOUT: !78 = !DILocation(line: 23, column: 22, scope: !67) +// CHECK:STDOUT: !79 = !DILocation(line: 23, column: 3, scope: !67) +// CHECK:STDOUT: !80 = !DILocation(line: 20, column: 1, scope: !67) +// CHECK:STDOUT: !81 = !{!68, !69, !70} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.0f29a29bf45af723", scope: null, file: !16, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !100) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !29) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 2, scope: !82, type: !29) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 3, scope: !82, type: !29) +// CHECK:STDOUT: !89 = !DILocation(line: 34, column: 3, scope: !82) +// CHECK:STDOUT: !91 = !DILocation(line: 36, column: 10, scope: !82) +// CHECK:STDOUT: !92 = !DILocation(line: 36, column: 22, scope: !82) +// CHECK:STDOUT: !94 = !DILocation(line: 36, column: 3, scope: !82) +// CHECK:STDOUT: !98 = !DILocation(line: 37, column: 3, scope: !82) +// CHECK:STDOUT: !99 = !DILocation(line: 33, column: 1, scope: !82) +// CHECK:STDOUT: !100 = !{!83, !84, !85} +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.e1ce67f3c23ab61f", scope: null, file: !16, line: 26, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !119) +// CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !101, type: !29) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 2, scope: !101, type: !29) +// CHECK:STDOUT: !104 = !DILocalVariable(arg: 3, scope: !101, type: !29) +// CHECK:STDOUT: !108 = !DILocation(line: 27, column: 3, scope: !101) +// CHECK:STDOUT: !113 = !DILocation(line: 29, column: 3, scope: !101) +// CHECK:STDOUT: !116 = !DILocation(line: 30, column: 21, scope: !101) +// CHECK:STDOUT: !117 = !DILocation(line: 30, column: 3, scope: !101) +// CHECK:STDOUT: !118 = !DILocation(line: 26, column: 1, scope: !101) +// CHECK:STDOUT: !119 = !{!102, !103, !104} +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.c6787c0e2572c86c", scope: null, file: !16, line: 40, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !128) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !29) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !120, type: !29) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 3, scope: !120, type: !29) +// CHECK:STDOUT: !127 = !DILocation(line: 40, column: 1, scope: !120) +// CHECK:STDOUT: !128 = !{!121, !122, !123} +// CHECK:STDOUT: !138 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.e1ce67f3c23ab61f", scope: null, file: !16, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !152) +// CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !138, type: !29) +// CHECK:STDOUT: !140 = !DILocalVariable(arg: 2, scope: !138, type: !29) +// CHECK:STDOUT: !141 = !DILocalVariable(arg: 3, scope: !138, type: !29) +// CHECK:STDOUT: !145 = !DILocation(line: 21, column: 3, scope: !138) +// CHECK:STDOUT: !149 = !DILocation(line: 23, column: 22, scope: !138) +// CHECK:STDOUT: !150 = !DILocation(line: 23, column: 3, scope: !138) +// CHECK:STDOUT: !151 = !DILocation(line: 20, column: 1, scope: !138) +// CHECK:STDOUT: !152 = !{!139, !140, !141} +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.e1ce67f3c23ab61f", scope: null, file: !16, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !171) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !29) +// CHECK:STDOUT: !155 = !DILocalVariable(arg: 2, scope: !153, type: !29) +// CHECK:STDOUT: !156 = !DILocalVariable(arg: 3, scope: !153, type: !29) +// CHECK:STDOUT: !160 = !DILocation(line: 34, column: 3, scope: !153) +// CHECK:STDOUT: !162 = !DILocation(line: 36, column: 10, scope: !153) +// CHECK:STDOUT: !163 = !DILocation(line: 36, column: 22, scope: !153) +// CHECK:STDOUT: !165 = !DILocation(line: 36, column: 3, scope: !153) +// CHECK:STDOUT: !169 = !DILocation(line: 37, column: 3, scope: !153) +// CHECK:STDOUT: !170 = !DILocation(line: 33, column: 1, scope: !153) +// CHECK:STDOUT: !171 = !{!154, !155, !156} +// CHECK:STDOUT: !172 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.901b24db5c2cfe42", scope: null, file: !16, line: 40, type: !31, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !180) +// CHECK:STDOUT: !173 = !DILocalVariable(arg: 1, scope: !172, type: !29) +// CHECK:STDOUT: !174 = !DILocalVariable(arg: 2, scope: !172, type: !29) +// CHECK:STDOUT: !175 = !DILocalVariable(arg: 3, scope: !172, type: !29) +// CHECK:STDOUT: !179 = !DILocation(line: 40, column: 1, scope: !172) +// CHECK:STDOUT: !180 = !{!173, !174, !175} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/self_canonical.carbon b/toolchain/lower/testdata/function/generic/self_canonical.carbon index 06548653665c..63de4825e065 100644 --- a/toolchain/lower/testdata/function/generic/self_canonical.carbon +++ b/toolchain/lower/testdata/function/generic/self_canonical.carbon @@ -87,84 +87,84 @@ fn Main_method_no_template () { // CHECK:STDOUT: source_filename = "self_canonical.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain_method_no_template.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMain_method_no_template.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !7 -// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !7 -// CHECK:STDOUT: %.loc82 = load ptr, ptr %local1.var, align 8, !dbg !8 -// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc82), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !19 +// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !19 +// CHECK:STDOUT: %.loc82 = load ptr, ptr %local1.var, align 8, !dbg !21 +// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc82), !dbg !22 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfourth_function.Main.4da09b2222fc2513(ptr %arg) #0 !dbg !11 { +// CHECK:STDOUT: define linkonce_odr void @_Cfourth_function.Main.4da09b2222fc2513(ptr %arg) #0 !dbg !168 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !17 -// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !17 -// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !18 -// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !18 -// CHECK:STDOUT: %.loc53 = load ptr, ptr %local1.var, align 8, !dbg !19 -// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc53), !dbg !20 -// CHECK:STDOUT: %.loc54 = load ptr, ptr %local2.var, align 8, !dbg !21 -// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc54), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !171 +// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !173 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !171 +// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !171 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !173 +// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !173 +// CHECK:STDOUT: %.loc53 = load ptr, ptr %local1.var, align 8, !dbg !175 +// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc53), !dbg !176 +// CHECK:STDOUT: %.loc54 = load ptr, ptr %local2.var, align 8, !dbg !177 +// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc54), !dbg !178 +// CHECK:STDOUT: ret void, !dbg !179 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst_function.Main.ee57965601b4d646(ptr %arg) #0 !dbg !24 { +// CHECK:STDOUT: define linkonce_odr void @_Cfirst_function.Main.ee57965601b4d646(ptr %arg) #0 !dbg !219 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !27 -// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !28 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !27 -// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !28 -// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !28 -// CHECK:STDOUT: %.loc61_19 = load ptr, ptr %local2.var, align 8, !dbg !29 -// CHECK:STDOUT: %.loc61_27 = load ptr, ptr %local1.var, align 8, !dbg !30 -// CHECK:STDOUT: call void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %.loc61_19, ptr %.loc61_27, ptr %arg), !dbg !31 -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !222 +// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !224 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !222 +// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !222 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !224 +// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !224 +// CHECK:STDOUT: %.loc61_19 = load ptr, ptr %local2.var, align 8, !dbg !226 +// CHECK:STDOUT: %.loc61_27 = load ptr, ptr %local1.var, align 8, !dbg !227 +// CHECK:STDOUT: call void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %.loc61_19, ptr %.loc61_27, ptr %arg), !dbg !229 +// CHECK:STDOUT: ret void, !dbg !230 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !33 { +// CHECK:STDOUT: define linkonce_odr void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !245 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !40 -// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !41 -// CHECK:STDOUT: %local3.var = alloca ptr, align 8, !dbg !42 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !40 -// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !40 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !41 -// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !41 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local3.var), !dbg !42 -// CHECK:STDOUT: store ptr poison, ptr %local3.var, align 8, !dbg !42 -// CHECK:STDOUT: %.loc75_25 = load ptr, ptr %local3.var, align 8, !dbg !43 -// CHECK:STDOUT: %.loc75_33 = load ptr, ptr %local2.var, align 8, !dbg !44 -// CHECK:STDOUT: call void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %arg3, ptr %.loc75_25, ptr %.loc75_33), !dbg !45 -// CHECK:STDOUT: %.loc76 = load ptr, ptr %local1.var, align 8, !dbg !46 -// CHECK:STDOUT: call void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %.loc76, ptr %arg3, ptr %arg1), !dbg !47 -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !252 +// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !254 +// CHECK:STDOUT: %local3.var = alloca ptr, align 8, !dbg !256 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !252 +// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !252 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !254 +// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !254 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local3.var), !dbg !256 +// CHECK:STDOUT: store ptr poison, ptr %local3.var, align 8, !dbg !256 +// CHECK:STDOUT: %.loc75_25 = load ptr, ptr %local3.var, align 8, !dbg !259 +// CHECK:STDOUT: %.loc75_33 = load ptr, ptr %local2.var, align 8, !dbg !260 +// CHECK:STDOUT: call void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %arg3, ptr %.loc75_25, ptr %.loc75_33), !dbg !261 +// CHECK:STDOUT: %.loc76 = load ptr, ptr %local1.var, align 8, !dbg !262 +// CHECK:STDOUT: call void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %.loc76, ptr %arg3, ptr %arg1), !dbg !265 +// CHECK:STDOUT: ret void, !dbg !266 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !314 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !54 -// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !55 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !54 -// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !54 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !55 -// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !55 -// CHECK:STDOUT: %.loc39 = load ptr, ptr %local2.var, align 8, !dbg !56 -// CHECK:STDOUT: call void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %arg1, ptr %arg2, ptr %.loc39), !dbg !57 -// CHECK:STDOUT: %.loc40 = load ptr, ptr %local1.var, align 8, !dbg !58 -// CHECK:STDOUT: call void @_Cfourth_function.Main.4da09b2222fc2513(ptr %.loc40), !dbg !59 -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !321 +// CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !323 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !321 +// CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !321 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !323 +// CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !323 +// CHECK:STDOUT: %.loc39 = load ptr, ptr %local2.var, align 8, !dbg !327 +// CHECK:STDOUT: call void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %arg1, ptr %arg2, ptr %.loc39), !dbg !328 +// CHECK:STDOUT: %.loc40 = load ptr, ptr %local1.var, align 8, !dbg !329 +// CHECK:STDOUT: call void @_Cfourth_function.Main.4da09b2222fc2513(ptr %.loc40), !dbg !330 +// CHECK:STDOUT: ret void, !dbg !331 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -173,68 +173,68 @@ fn Main_method_no_template () { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "self_canonical.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main_method_no_template", linkageName: "_CMain_method_no_template.Main", scope: null, file: !1, line: 79, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 80, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 82, column: 18, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 82, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 79, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "fourth_function", linkageName: "_Cfourth_function.Main.4da09b2222fc2513", scope: null, file: !1, line: 49, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 50, column: 3, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 51, column: 3, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 53, column: 18, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 53, column: 3, scope: !11) -// CHECK:STDOUT: !21 = !DILocation(line: 54, column: 18, scope: !11) -// CHECK:STDOUT: !22 = !DILocation(line: 54, column: 3, scope: !11) -// CHECK:STDOUT: !23 = !DILocation(line: 49, column: 1, scope: !11) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "first_function", linkageName: "_Cfirst_function.Main.ee57965601b4d646", scope: null, file: !1, line: 57, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !14) -// CHECK:STDOUT: !27 = !DILocation(line: 58, column: 3, scope: !24) -// CHECK:STDOUT: !28 = !DILocation(line: 59, column: 3, scope: !24) -// CHECK:STDOUT: !29 = !DILocation(line: 61, column: 19, scope: !24) -// CHECK:STDOUT: !30 = !DILocation(line: 61, column: 27, scope: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 61, column: 3, scope: !24) -// CHECK:STDOUT: !32 = !DILocation(line: 57, column: 1, scope: !24) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "second_function", linkageName: "_Csecond_function.Main.efd9fcdf727c9de5", scope: null, file: !1, line: 70, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !36) -// CHECK:STDOUT: !34 = !DISubroutineType(types: !35) -// CHECK:STDOUT: !35 = !{null, !14, !14, !14} -// CHECK:STDOUT: !36 = !{!37, !38, !39} -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !33, type: !14) -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !33, type: !14) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 3, scope: !33, type: !14) -// CHECK:STDOUT: !40 = !DILocation(line: 71, column: 3, scope: !33) -// CHECK:STDOUT: !41 = !DILocation(line: 72, column: 3, scope: !33) -// CHECK:STDOUT: !42 = !DILocation(line: 73, column: 3, scope: !33) -// CHECK:STDOUT: !43 = !DILocation(line: 75, column: 25, scope: !33) -// CHECK:STDOUT: !44 = !DILocation(line: 75, column: 33, scope: !33) -// CHECK:STDOUT: !45 = !DILocation(line: 75, column: 3, scope: !33) -// CHECK:STDOUT: !46 = !DILocation(line: 76, column: 18, scope: !33) -// CHECK:STDOUT: !47 = !DILocation(line: 76, column: 3, scope: !33) -// CHECK:STDOUT: !48 = !DILocation(line: 70, column: 1, scope: !33) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "third_function", linkageName: "_Cthird_function.Main.1c39a3b349bf66b6", scope: null, file: !1, line: 35, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51, !52, !53} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !14) -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !14) -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 3, scope: !49, type: !14) -// CHECK:STDOUT: !54 = !DILocation(line: 36, column: 3, scope: !49) -// CHECK:STDOUT: !55 = !DILocation(line: 37, column: 3, scope: !49) -// CHECK:STDOUT: !56 = !DILocation(line: 39, column: 30, scope: !49) -// CHECK:STDOUT: !57 = !DILocation(line: 39, column: 3, scope: !49) -// CHECK:STDOUT: !58 = !DILocation(line: 40, column: 19, scope: !49) -// CHECK:STDOUT: !59 = !DILocation(line: 40, column: 3, scope: !49) -// CHECK:STDOUT: !60 = !DILocation(line: 35, column: 1, scope: !49) +// CHECK:STDOUT: !14 = !DIFile(filename: "self_canonical.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Main_method_no_template", linkageName: "_CMain_method_no_template.Main", scope: null, file: !14, line: 79, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 80, column: 3, scope: !18) +// CHECK:STDOUT: !21 = !DILocation(line: 82, column: 18, scope: !18) +// CHECK:STDOUT: !22 = !DILocation(line: 82, column: 3, scope: !18) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !23} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 79, column: 1, scope: !18) +// CHECK:STDOUT: !38 = !{null, !23, !23, !23} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "fourth_function", linkageName: "_Cfourth_function.Main.4da09b2222fc2513", scope: null, file: !14, line: 49, type: !25, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !180) +// CHECK:STDOUT: !169 = !DILocalVariable(arg: 1, scope: !168, type: !23) +// CHECK:STDOUT: !171 = !DILocation(line: 50, column: 3, scope: !168) +// CHECK:STDOUT: !173 = !DILocation(line: 51, column: 3, scope: !168) +// CHECK:STDOUT: !175 = !DILocation(line: 53, column: 18, scope: !168) +// CHECK:STDOUT: !176 = !DILocation(line: 53, column: 3, scope: !168) +// CHECK:STDOUT: !177 = !DILocation(line: 54, column: 18, scope: !168) +// CHECK:STDOUT: !178 = !DILocation(line: 54, column: 3, scope: !168) +// CHECK:STDOUT: !179 = !DILocation(line: 49, column: 1, scope: !168) +// CHECK:STDOUT: !180 = !{!169} +// CHECK:STDOUT: !219 = distinct !DISubprogram(name: "first_function", linkageName: "_Cfirst_function.Main.ee57965601b4d646", scope: null, file: !14, line: 57, type: !25, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !231) +// CHECK:STDOUT: !220 = !DILocalVariable(arg: 1, scope: !219, type: !23) +// CHECK:STDOUT: !222 = !DILocation(line: 58, column: 3, scope: !219) +// CHECK:STDOUT: !224 = !DILocation(line: 59, column: 3, scope: !219) +// CHECK:STDOUT: !226 = !DILocation(line: 61, column: 19, scope: !219) +// CHECK:STDOUT: !227 = !DILocation(line: 61, column: 27, scope: !219) +// CHECK:STDOUT: !229 = !DILocation(line: 61, column: 3, scope: !219) +// CHECK:STDOUT: !230 = !DILocation(line: 57, column: 1, scope: !219) +// CHECK:STDOUT: !231 = !{!220} +// CHECK:STDOUT: !245 = distinct !DISubprogram(name: "second_function", linkageName: "_Csecond_function.Main.efd9fcdf727c9de5", scope: null, file: !14, line: 70, type: !39, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !267) +// CHECK:STDOUT: !246 = !DILocalVariable(arg: 1, scope: !245, type: !23) +// CHECK:STDOUT: !247 = !DILocalVariable(arg: 2, scope: !245, type: !23) +// CHECK:STDOUT: !248 = !DILocalVariable(arg: 3, scope: !245, type: !23) +// CHECK:STDOUT: !252 = !DILocation(line: 71, column: 3, scope: !245) +// CHECK:STDOUT: !254 = !DILocation(line: 72, column: 3, scope: !245) +// CHECK:STDOUT: !256 = !DILocation(line: 73, column: 3, scope: !245) +// CHECK:STDOUT: !259 = !DILocation(line: 75, column: 25, scope: !245) +// CHECK:STDOUT: !260 = !DILocation(line: 75, column: 33, scope: !245) +// CHECK:STDOUT: !261 = !DILocation(line: 75, column: 3, scope: !245) +// CHECK:STDOUT: !262 = !DILocation(line: 76, column: 18, scope: !245) +// CHECK:STDOUT: !265 = !DILocation(line: 76, column: 3, scope: !245) +// CHECK:STDOUT: !266 = !DILocation(line: 70, column: 1, scope: !245) +// CHECK:STDOUT: !267 = !{!246, !247, !248} +// CHECK:STDOUT: !314 = distinct !DISubprogram(name: "third_function", linkageName: "_Cthird_function.Main.1c39a3b349bf66b6", scope: null, file: !14, line: 35, type: !39, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !332) +// CHECK:STDOUT: !315 = !DILocalVariable(arg: 1, scope: !314, type: !23) +// CHECK:STDOUT: !316 = !DILocalVariable(arg: 2, scope: !314, type: !23) +// CHECK:STDOUT: !317 = !DILocalVariable(arg: 3, scope: !314, type: !23) +// CHECK:STDOUT: !321 = !DILocation(line: 36, column: 3, scope: !314) +// CHECK:STDOUT: !323 = !DILocation(line: 37, column: 3, scope: !314) +// CHECK:STDOUT: !327 = !DILocation(line: 39, column: 30, scope: !314) +// CHECK:STDOUT: !328 = !DILocation(line: 39, column: 3, scope: !314) +// CHECK:STDOUT: !329 = !DILocation(line: 40, column: 19, scope: !314) +// CHECK:STDOUT: !330 = !DILocation(line: 40, column: 3, scope: !314) +// CHECK:STDOUT: !331 = !DILocation(line: 35, column: 1, scope: !314) +// CHECK:STDOUT: !332 = !{!315, !316, !317} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/type_param.carbon b/toolchain/lower/testdata/function/generic/type_param.carbon index c63efedcc0e5..fdad3340ce4d 100644 --- a/toolchain/lower/testdata/function/generic/type_param.carbon +++ b/toolchain/lower/testdata/function/generic/type_param.carbon @@ -19,11 +19,11 @@ fn F(generic T: type) { // CHECK:STDOUT: ; ModuleID = 'type_param.carbon' // CHECK:STDOUT: source_filename = "type_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "type_param.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !14 = !DIFile(filename: "type_param.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/generic/type_representation.carbon b/toolchain/lower/testdata/function/generic/type_representation.carbon index 1137d201d755..1435063da332 100644 --- a/toolchain/lower/testdata/function/generic/type_representation.carbon +++ b/toolchain/lower/testdata/function/generic/type_representation.carbon @@ -79,177 +79,177 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: source_filename = "type_representation.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %self, !dbg !10 +// CHECK:STDOUT: ret i32 %self, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF_i32.Main(i32 %a) #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CF_i32.Main(i32 %a) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.51815a09c4c03ee5(i32 %a), !dbg !14 -// CHECK:STDOUT: ret i32 %F.call, !dbg !15 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.51815a09c4c03ee5(i32 %a), !dbg !46 +// CHECK:STDOUT: ret i32 %F.call, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.X.Main:Copy.Main"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define void @"_COp.X.Main:Copy.Main"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc38_24.1.a = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !28 -// CHECK:STDOUT: %.loc38_24.2 = load i32, ptr %.loc38_24.1.a, align 4, !dbg !28 -// CHECK:STDOUT: %.loc38_37.1.b = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !29 -// CHECK:STDOUT: %.loc38_37.2 = load i32, ptr %.loc38_37.1.b, align 4, !dbg !29 -// CHECK:STDOUT: %.loc38_39.2.a = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !30 -// CHECK:STDOUT: store i32 %.loc38_24.2, ptr %.loc38_39.2.a, align 4, !dbg !30 -// CHECK:STDOUT: %.loc38_39.4.b = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !30 -// CHECK:STDOUT: store i32 %.loc38_37.2, ptr %.loc38_39.4.b, align 4, !dbg !30 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: %.loc38_24.1.a = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !58 +// CHECK:STDOUT: %.loc38_24.2 = load i32, ptr %.loc38_24.1.a, align 4, !dbg !58 +// CHECK:STDOUT: %.loc38_37.1.b = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !59 +// CHECK:STDOUT: %.loc38_37.2 = load i32, ptr %.loc38_37.1.b, align 4, !dbg !59 +// CHECK:STDOUT: %.loc38_39.2.a = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !60 +// CHECK:STDOUT: store i32 %.loc38_24.2, ptr %.loc38_39.2.a, align 4, !dbg !60 +// CHECK:STDOUT: %.loc38_39.4.b = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !60 +// CHECK:STDOUT: store i32 %.loc38_37.2, ptr %.loc38_39.4.b, align 4, !dbg !60 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF_X.Main(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !32 { +// CHECK:STDOUT: define void @_CF_X.Main(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.425841177dc25b60(ptr %return, ptr %a), !dbg !35 -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: call void @_CF.Main.425841177dc25b60(ptr %return, ptr %a), !dbg !69 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !42 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !43 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.61ea2aba74ab3bf1:Copy.Main"() #0 !dbg !47 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !50 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF_empty_tuple.Main() #0 !dbg !51 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.0ffdc268e95480c6(), !dbg !52 -// CHECK:STDOUT: ret void, !dbg !53 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.e554695bf635d9c1:Copy.Main"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !54 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.loc59_12.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !57 -// CHECK:STDOUT: %tuple.elem0.loc59_12.1.tuple.elem.load = load i32, ptr %tuple.elem0.loc59_12.1.tuple.elem, align 4, !dbg !57 -// CHECK:STDOUT: %tuple.elem0.loc59_12.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !57 -// CHECK:STDOUT: store i32 %tuple.elem0.loc59_12.1.tuple.elem.load, ptr %tuple.elem0.loc59_12.2.tuple.elem, align 4, !dbg !57 -// CHECK:STDOUT: %tuple.elem1.loc59_12.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !57 -// CHECK:STDOUT: %tuple.elem1.loc59_12.1.tuple.elem.load = load i32, ptr %tuple.elem1.loc59_12.1.tuple.elem, align 4, !dbg !57 -// CHECK:STDOUT: %tuple.elem1.loc59_12.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !57 -// CHECK:STDOUT: store i32 %tuple.elem1.loc59_12.1.tuple.elem.load, ptr %tuple.elem1.loc59_12.2.tuple.elem, align 4, !dbg !57 -// CHECK:STDOUT: ret void, !dbg !58 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF_two_tuple.Main(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !59 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.fa2890b7def5e5c7(ptr %return, ptr %a), !dbg !62 -// CHECK:STDOUT: ret void, !dbg !63 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !64 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !67 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %self) #0 !dbg !68 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.loc69_17.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %self, i32 0, i32 0, !dbg !71 -// CHECK:STDOUT: %tuple.elem0.loc69_17.tuple.elem.load = load ptr, ptr %tuple.elem0.loc69_17.tuple.elem, align 8, !dbg !71 -// CHECK:STDOUT: %tuple.elem0.loc69_51.tuple.elem = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !72 -// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %tuple.elem0.loc69_51.tuple.elem, ptr %tuple.elem0.loc69_17.tuple.elem.load), !dbg !71 -// CHECK:STDOUT: %tuple.elem1.loc69_37.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %self, i32 0, i32 1, !dbg !73 -// CHECK:STDOUT: %tuple.elem1.loc69_37.tuple.elem.load = load ptr, ptr %tuple.elem1.loc69_37.tuple.elem, align 8, !dbg !73 -// CHECK:STDOUT: %tuple.elem1.loc69_51.tuple.elem = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !72 -// CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %tuple.elem1.loc69_51.tuple.elem, ptr %tuple.elem1.loc69_37.tuple.elem.load), !dbg !73 // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF_nested_tuple.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !75 { +// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.2353b6e2f4825328(ptr %return, ptr %a), !dbg !78 -// CHECK:STDOUT: ret void, !dbg !79 +// CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1c942cf0c4ee9edc:core.Destroy.Core"(ptr %self) #0 !dbg !80 { +// CHECK:STDOUT: define void @"_COp.61ea2aba74ab3bf1:Copy.Main"() #0 !dbg !80 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !83 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.51815a09c4c03ee5(i32 %a) #0 !dbg !84 { +// CHECK:STDOUT: define void @_CF_empty_tuple.Main() #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !87 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !87 -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc18 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !88 -// CHECK:STDOUT: store i32 %Copy.WithSelf.Op.call.loc18, ptr %_.var, align 4, !dbg !87 -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc19 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !89 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !87 -// CHECK:STDOUT: ret i32 %Copy.WithSelf.Op.call.loc19, !dbg !90 +// CHECK:STDOUT: call void @_CF.Main.0ffdc268e95480c6(), !dbg !90 +// CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.425841177dc25b60(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !91 { +// CHECK:STDOUT: define void @"_COp.e554695bf635d9c1:Copy.Main"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !94 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !94 -// CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %_.var, ptr %a), !dbg !95 -// CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %return, ptr %a), !dbg !96 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var), !dbg !94 -// CHECK:STDOUT: ret void, !dbg !97 +// CHECK:STDOUT: %tuple.elem0.loc59_12.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !97 +// CHECK:STDOUT: %tuple.elem0.loc59_12.1.tuple.elem.load = load i32, ptr %tuple.elem0.loc59_12.1.tuple.elem, align 4, !dbg !97 +// CHECK:STDOUT: %tuple.elem0.loc59_12.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !97 +// CHECK:STDOUT: store i32 %tuple.elem0.loc59_12.1.tuple.elem.load, ptr %tuple.elem0.loc59_12.2.tuple.elem, align 4, !dbg !97 +// CHECK:STDOUT: %tuple.elem1.loc59_12.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 1, !dbg !97 +// CHECK:STDOUT: %tuple.elem1.loc59_12.1.tuple.elem.load = load i32, ptr %tuple.elem1.loc59_12.1.tuple.elem, align 4, !dbg !97 +// CHECK:STDOUT: %tuple.elem1.loc59_12.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !97 +// CHECK:STDOUT: store i32 %tuple.elem1.loc59_12.1.tuple.elem.load, ptr %tuple.elem1.loc59_12.2.tuple.elem, align 4, !dbg !97 +// CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.0ffdc268e95480c6() #0 !dbg !98 { +// CHECK:STDOUT: define void @_CF_two_tuple.Main(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !99 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !99 -// CHECK:STDOUT: call void @"_COp.61ea2aba74ab3bf1:Copy.Main"(), !dbg !100 -// CHECK:STDOUT: call void @"_COp.61ea2aba74ab3bf1:Copy.Main"(), !dbg !101 -// CHECK:STDOUT: ret void, !dbg !102 +// CHECK:STDOUT: call void @_CF.Main.fa2890b7def5e5c7(ptr %return, ptr %a), !dbg !106 +// CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.fa2890b7def5e5c7(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !103 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !109 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !106 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !106 -// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %_.var, ptr %a), !dbg !107 -// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %return, ptr %a), !dbg !108 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %_.var), !dbg !106 -// CHECK:STDOUT: ret void, !dbg !109 +// CHECK:STDOUT: ret void, !dbg !111 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2353b6e2f4825328(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !110 { +// CHECK:STDOUT: define void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %self) #0 !dbg !113 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { { i32, i32 }, { i32, i32 } }, align 4, !dbg !113 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !113 -// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %_.var, ptr %a), !dbg !114 -// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %return, ptr %a), !dbg !115 -// CHECK:STDOUT: call void @"_COp.1c942cf0c4ee9edc:core.Destroy.Core"(ptr %_.var), !dbg !113 -// CHECK:STDOUT: ret void, !dbg !116 +// CHECK:STDOUT: %tuple.elem0.loc69_17.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %self, i32 0, i32 0, !dbg !118 +// CHECK:STDOUT: %tuple.elem0.loc69_17.tuple.elem.load = load ptr, ptr %tuple.elem0.loc69_17.tuple.elem, align 8, !dbg !118 +// CHECK:STDOUT: %tuple.elem0.loc69_51.tuple.elem = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !119 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %tuple.elem0.loc69_51.tuple.elem, ptr %tuple.elem0.loc69_17.tuple.elem.load), !dbg !118 +// CHECK:STDOUT: %tuple.elem1.loc69_37.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %self, i32 0, i32 1, !dbg !120 +// CHECK:STDOUT: %tuple.elem1.loc69_37.tuple.elem.load = load ptr, ptr %tuple.elem1.loc69_37.tuple.elem, align 8, !dbg !120 +// CHECK:STDOUT: %tuple.elem1.loc69_51.tuple.elem = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !119 +// CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %tuple.elem1.loc69_51.tuple.elem, ptr %tuple.elem1.loc69_37.tuple.elem.load), !dbg !120 +// CHECK:STDOUT: ret void, !dbg !121 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CF_nested_tuple.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !123 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_CF.Main.2353b6e2f4825328(ptr %return, ptr %a), !dbg !129 +// CHECK:STDOUT: ret void, !dbg !130 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.1c942cf0c4ee9edc:core.Destroy.Core"(ptr %self) #0 !dbg !132 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !134 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.51815a09c4c03ee5(i32 %a) #0 !dbg !136 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !141 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !141 +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc18 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !142 +// CHECK:STDOUT: store i32 %Copy.WithSelf.Op.call.loc18, ptr %_.var, align 4, !dbg !141 +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc19 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !144 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !141 +// CHECK:STDOUT: ret i32 %Copy.WithSelf.Op.call.loc19, !dbg !145 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.425841177dc25b60(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !147 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !152 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !152 +// CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %_.var, ptr %a), !dbg !153 +// CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %return, ptr %a), !dbg !155 +// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %_.var), !dbg !152 +// CHECK:STDOUT: ret void, !dbg !156 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.0ffdc268e95480c6() #0 !dbg !158 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !162 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !162 +// CHECK:STDOUT: call void @"_COp.61ea2aba74ab3bf1:Copy.Main"(), !dbg !163 +// CHECK:STDOUT: call void @"_COp.61ea2aba74ab3bf1:Copy.Main"(), !dbg !165 +// CHECK:STDOUT: ret void, !dbg !166 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.fa2890b7def5e5c7(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !167 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !172 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !172 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %_.var, ptr %a), !dbg !173 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %return, ptr %a), !dbg !175 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %_.var), !dbg !172 +// CHECK:STDOUT: ret void, !dbg !176 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2353b6e2f4825328(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !178 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %_.var = alloca { { i32, i32 }, { i32, i32 } }, align 4, !dbg !183 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !183 +// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %_.var, ptr %a), !dbg !184 +// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %return, ptr %a), !dbg !186 +// CHECK:STDOUT: call void @"_COp.1c942cf0c4ee9edc:core.Destroy.Core"(ptr %_.var), !dbg !183 +// CHECK:STDOUT: ret void, !dbg !187 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -261,124 +261,124 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "type_representation.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.be1e879c1ad406d8.Core:Copy.Main", scope: null, file: !1, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 5, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F_i32", linkageName: "_CF_i32.Main", scope: null, file: !1, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 29, column: 10, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 29, column: 3, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 29, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null, !7} -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !16, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 29, column: 10, scope: !16) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.X.Main:Copy.Main", scope: null, file: !1, line: 37, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{!25, !25} +// CHECK:STDOUT: !18 = !DIFile(filename: "type_representation.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) // CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 38, column: 20, scope: !22) -// CHECK:STDOUT: !29 = !DILocation(line: 38, column: 33, scope: !22) -// CHECK:STDOUT: !30 = !DILocation(line: 38, column: 14, scope: !22) -// CHECK:STDOUT: !31 = !DILocation(line: 38, column: 7, scope: !22) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "F_X", linkageName: "_CF_X.Main", scope: null, file: !1, line: 43, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !25) -// CHECK:STDOUT: !35 = !DILocation(line: 44, column: 10, scope: !32) -// CHECK:STDOUT: !36 = !DILocation(line: 44, column: 3, scope: !32) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !1, line: 44, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !38 = !DISubroutineType(types: !39) -// CHECK:STDOUT: !39 = !{null, !25} -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !37, type: !25) -// CHECK:STDOUT: !42 = !DILocation(line: 44, column: 10, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !1, line: 44, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !25) -// CHECK:STDOUT: !46 = !DILocation(line: 44, column: 10, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.61ea2aba74ab3bf1:Copy.Main", scope: null, file: !1, line: 48, type: !48, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !48 = !DISubroutineType(types: !49) -// CHECK:STDOUT: !49 = !{null} -// CHECK:STDOUT: !50 = !DILocation(line: 49, column: 5, scope: !47) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "F_empty_tuple", linkageName: "_CF_empty_tuple.Main", scope: null, file: !1, line: 53, type: !48, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !52 = !DILocation(line: 54, column: 10, scope: !51) -// CHECK:STDOUT: !53 = !DILocation(line: 54, column: 3, scope: !51) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:Copy.Main", scope: null, file: !1, line: 58, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !55) -// CHECK:STDOUT: !55 = !{!56} -// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !25) -// CHECK:STDOUT: !57 = !DILocation(line: 59, column: 12, scope: !54) -// CHECK:STDOUT: !58 = !DILocation(line: 59, column: 5, scope: !54) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "F_two_tuple", linkageName: "_CF_two_tuple.Main", scope: null, file: !1, line: 63, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !60) -// CHECK:STDOUT: !60 = !{!61} -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !59, type: !25) -// CHECK:STDOUT: !62 = !DILocation(line: 64, column: 10, scope: !59) -// CHECK:STDOUT: !63 = !DILocation(line: 64, column: 3, scope: !59) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 64, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !65) -// CHECK:STDOUT: !65 = !{!66} -// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !25) -// CHECK:STDOUT: !67 = !DILocation(line: 64, column: 10, scope: !64) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ae1e3622d7875d32:Copy.Main", scope: null, file: !1, line: 68, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !69) -// CHECK:STDOUT: !69 = !{!70} -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !25) -// CHECK:STDOUT: !71 = !DILocation(line: 69, column: 13, scope: !68) -// CHECK:STDOUT: !72 = !DILocation(line: 69, column: 12, scope: !68) -// CHECK:STDOUT: !73 = !DILocation(line: 69, column: 33, scope: !68) -// CHECK:STDOUT: !74 = !DILocation(line: 69, column: 5, scope: !68) -// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "F_nested_tuple", linkageName: "_CF_nested_tuple.Main", scope: null, file: !1, line: 73, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !76) -// CHECK:STDOUT: !76 = !{!77} -// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !75, type: !25) -// CHECK:STDOUT: !78 = !DILocation(line: 74, column: 10, scope: !75) -// CHECK:STDOUT: !79 = !DILocation(line: 74, column: 3, scope: !75) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1c942cf0c4ee9edc:core.Destroy.Core", scope: null, file: !1, line: 74, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !81) -// CHECK:STDOUT: !81 = !{!82} -// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !80, type: !25) -// CHECK:STDOUT: !83 = !DILocation(line: 74, column: 10, scope: !80) -// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.51815a09c4c03ee5", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !85) -// CHECK:STDOUT: !85 = !{!86} -// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !84, type: !7) -// CHECK:STDOUT: !87 = !DILocation(line: 18, column: 3, scope: !84) -// CHECK:STDOUT: !88 = !DILocation(line: 18, column: 14, scope: !84) -// CHECK:STDOUT: !89 = !DILocation(line: 19, column: 10, scope: !84) -// CHECK:STDOUT: !90 = !DILocation(line: 19, column: 3, scope: !84) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.425841177dc25b60", scope: null, file: !1, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !92) -// CHECK:STDOUT: !92 = !{!93} -// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !91, type: !25) -// CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !91) -// CHECK:STDOUT: !95 = !DILocation(line: 18, column: 14, scope: !91) -// CHECK:STDOUT: !96 = !DILocation(line: 19, column: 10, scope: !91) -// CHECK:STDOUT: !97 = !DILocation(line: 19, column: 3, scope: !91) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.0ffdc268e95480c6", scope: null, file: !1, line: 17, type: !48, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !99 = !DILocation(line: 18, column: 3, scope: !98) -// CHECK:STDOUT: !100 = !DILocation(line: 18, column: 14, scope: !98) -// CHECK:STDOUT: !101 = !DILocation(line: 19, column: 10, scope: !98) -// CHECK:STDOUT: !102 = !DILocation(line: 19, column: 3, scope: !98) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.fa2890b7def5e5c7", scope: null, file: !1, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !104) -// CHECK:STDOUT: !104 = !{!105} -// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !103, type: !25) -// CHECK:STDOUT: !106 = !DILocation(line: 18, column: 3, scope: !103) -// CHECK:STDOUT: !107 = !DILocation(line: 18, column: 14, scope: !103) -// CHECK:STDOUT: !108 = !DILocation(line: 19, column: 10, scope: !103) -// CHECK:STDOUT: !109 = !DILocation(line: 19, column: 3, scope: !103) -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2353b6e2f4825328", scope: null, file: !1, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !111) -// CHECK:STDOUT: !111 = !{!112} -// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !110, type: !25) -// CHECK:STDOUT: !113 = !DILocation(line: 18, column: 3, scope: !110) -// CHECK:STDOUT: !114 = !DILocation(line: 18, column: 14, scope: !110) -// CHECK:STDOUT: !115 = !DILocation(line: 19, column: 10, scope: !110) -// CHECK:STDOUT: !116 = !DILocation(line: 19, column: 3, scope: !110) +// CHECK:STDOUT: !26 = !{!25, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !25} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = !{null} +// CHECK:STDOUT: !31 = !DISubroutineType(types: !30) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.be1e879c1ad406d8.Core:Copy.Main", scope: null, file: !18, line: 23, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) +// CHECK:STDOUT: !38 = !DILocation(line: 24, column: 5, scope: !32) +// CHECK:STDOUT: !39 = !{!33} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "F_i32", linkageName: "_CF_i32.Main", scope: null, file: !18, line: 28, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) +// CHECK:STDOUT: !46 = !DILocation(line: 29, column: 10, scope: !40) +// CHECK:STDOUT: !47 = !DILocation(line: 29, column: 3, scope: !40) +// CHECK:STDOUT: !48 = !{!41} +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 29, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !52) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !20) +// CHECK:STDOUT: !51 = !DILocation(line: 29, column: 10, scope: !49) +// CHECK:STDOUT: !52 = !{!50} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.X.Main:Copy.Main", scope: null, file: !18, line: 37, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !62) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !25) +// CHECK:STDOUT: !58 = !DILocation(line: 38, column: 20, scope: !53) +// CHECK:STDOUT: !59 = !DILocation(line: 38, column: 33, scope: !53) +// CHECK:STDOUT: !60 = !DILocation(line: 38, column: 14, scope: !53) +// CHECK:STDOUT: !61 = !DILocation(line: 38, column: 7, scope: !53) +// CHECK:STDOUT: !62 = !{!54} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "F_X", linkageName: "_CF_X.Main", scope: null, file: !18, line: 43, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !25) +// CHECK:STDOUT: !69 = !DILocation(line: 44, column: 10, scope: !63) +// CHECK:STDOUT: !70 = !DILocation(line: 44, column: 3, scope: !63) +// CHECK:STDOUT: !71 = !{!64} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 44, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !75) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !25) +// CHECK:STDOUT: !74 = !DILocation(line: 44, column: 10, scope: !72) +// CHECK:STDOUT: !75 = !{!73} +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !18, line: 44, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !79) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !25) +// CHECK:STDOUT: !78 = !DILocation(line: 44, column: 10, scope: !76) +// CHECK:STDOUT: !79 = !{!77} +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.61ea2aba74ab3bf1:Copy.Main", scope: null, file: !18, line: 48, type: !31, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !84 = !DILocation(line: 49, column: 5, scope: !80) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "F_empty_tuple", linkageName: "_CF_empty_tuple.Main", scope: null, file: !18, line: 53, type: !31, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !90 = !DILocation(line: 54, column: 10, scope: !85) +// CHECK:STDOUT: !91 = !DILocation(line: 54, column: 3, scope: !85) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:Copy.Main", scope: null, file: !18, line: 58, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !99) +// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !25) +// CHECK:STDOUT: !97 = !DILocation(line: 59, column: 12, scope: !92) +// CHECK:STDOUT: !98 = !DILocation(line: 59, column: 5, scope: !92) +// CHECK:STDOUT: !99 = !{!93} +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "F_two_tuple", linkageName: "_CF_two_tuple.Main", scope: null, file: !18, line: 63, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !108) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !25) +// CHECK:STDOUT: !106 = !DILocation(line: 64, column: 10, scope: !100) +// CHECK:STDOUT: !107 = !DILocation(line: 64, column: 3, scope: !100) +// CHECK:STDOUT: !108 = !{!101} +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 64, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !112) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !25) +// CHECK:STDOUT: !111 = !DILocation(line: 64, column: 10, scope: !109) +// CHECK:STDOUT: !112 = !{!110} +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ae1e3622d7875d32:Copy.Main", scope: null, file: !18, line: 68, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !122) +// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !113, type: !25) +// CHECK:STDOUT: !118 = !DILocation(line: 69, column: 13, scope: !113) +// CHECK:STDOUT: !119 = !DILocation(line: 69, column: 12, scope: !113) +// CHECK:STDOUT: !120 = !DILocation(line: 69, column: 33, scope: !113) +// CHECK:STDOUT: !121 = !DILocation(line: 69, column: 5, scope: !113) +// CHECK:STDOUT: !122 = !{!114} +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "F_nested_tuple", linkageName: "_CF_nested_tuple.Main", scope: null, file: !18, line: 73, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !131) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !25) +// CHECK:STDOUT: !129 = !DILocation(line: 74, column: 10, scope: !123) +// CHECK:STDOUT: !130 = !DILocation(line: 74, column: 3, scope: !123) +// CHECK:STDOUT: !131 = !{!124} +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1c942cf0c4ee9edc:core.Destroy.Core", scope: null, file: !18, line: 74, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !135) +// CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !132, type: !25) +// CHECK:STDOUT: !134 = !DILocation(line: 74, column: 10, scope: !132) +// CHECK:STDOUT: !135 = !{!133} +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.51815a09c4c03ee5", scope: null, file: !18, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !146) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !20) +// CHECK:STDOUT: !141 = !DILocation(line: 18, column: 3, scope: !136) +// CHECK:STDOUT: !142 = !DILocation(line: 18, column: 14, scope: !136) +// CHECK:STDOUT: !144 = !DILocation(line: 19, column: 10, scope: !136) +// CHECK:STDOUT: !145 = !DILocation(line: 19, column: 3, scope: !136) +// CHECK:STDOUT: !146 = !{!137} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.425841177dc25b60", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !157) +// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !25) +// CHECK:STDOUT: !152 = !DILocation(line: 18, column: 3, scope: !147) +// CHECK:STDOUT: !153 = !DILocation(line: 18, column: 14, scope: !147) +// CHECK:STDOUT: !155 = !DILocation(line: 19, column: 10, scope: !147) +// CHECK:STDOUT: !156 = !DILocation(line: 19, column: 3, scope: !147) +// CHECK:STDOUT: !157 = !{!148} +// CHECK:STDOUT: !158 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.0ffdc268e95480c6", scope: null, file: !18, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !162 = !DILocation(line: 18, column: 3, scope: !158) +// CHECK:STDOUT: !163 = !DILocation(line: 18, column: 14, scope: !158) +// CHECK:STDOUT: !165 = !DILocation(line: 19, column: 10, scope: !158) +// CHECK:STDOUT: !166 = !DILocation(line: 19, column: 3, scope: !158) +// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.fa2890b7def5e5c7", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !177) +// CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !167, type: !25) +// CHECK:STDOUT: !172 = !DILocation(line: 18, column: 3, scope: !167) +// CHECK:STDOUT: !173 = !DILocation(line: 18, column: 14, scope: !167) +// CHECK:STDOUT: !175 = !DILocation(line: 19, column: 10, scope: !167) +// CHECK:STDOUT: !176 = !DILocation(line: 19, column: 3, scope: !167) +// CHECK:STDOUT: !177 = !{!168} +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2353b6e2f4825328", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !188) +// CHECK:STDOUT: !179 = !DILocalVariable(arg: 1, scope: !178, type: !25) +// CHECK:STDOUT: !183 = !DILocation(line: 18, column: 3, scope: !178) +// CHECK:STDOUT: !184 = !DILocation(line: 18, column: 14, scope: !178) +// CHECK:STDOUT: !186 = !DILocation(line: 19, column: 10, scope: !178) +// CHECK:STDOUT: !187 = !DILocation(line: 19, column: 3, scope: !178) +// CHECK:STDOUT: !188 = !{!179} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/global/class_obj.carbon b/toolchain/lower/testdata/global/class_obj.carbon index 2f4e18ed6955..1a79bb0a8245 100644 --- a/toolchain/lower/testdata/global/class_obj.carbon +++ b/toolchain/lower/testdata/global/class_obj.carbon @@ -22,10 +22,10 @@ var a: A = {}; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 @_Ca.Main, ptr align 1 @A.val.loc14_1, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 @_Ca.Main, ptr align 1 @A.val.loc14_1, i64 0, i1 false), !dbg !19 +// CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -34,16 +34,16 @@ var a: A = {}; // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "class_obj.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "class_obj.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !14, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 1, scope: !18) +// CHECK:STDOUT: !20 = !DILocation(line: 0, scope: !18) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/global/class_with_fun.carbon b/toolchain/lower/testdata/global/class_with_fun.carbon index e1c58c5bb37f..6583f1aef7a3 100644 --- a/toolchain/lower/testdata/global/class_with_fun.carbon +++ b/toolchain/lower/testdata/global/class_with_fun.carbon @@ -26,40 +26,40 @@ var a: A = {}; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_Cret_a.Main(ptr sret({}) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_Cret_a.Main(ptr sret({}) %return) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc15_12, i64 0, i1 false), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc15_12, i64 0, i1 false), !dbg !22 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !9 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 @_Ca.Main, ptr align 1 @A.val.loc15_12, i64 0, i1 false), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 @_Ca.Main, ptr align 1 @A.val.loc15_12, i64 0, i1 false), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "class_with_fun.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "ret_a", linkageName: "_Cret_a.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !10, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null} -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 1, scope: !9) -// CHECK:STDOUT: !13 = !DILocation(line: 0, scope: !9) +// CHECK:STDOUT: !14 = !DIFile(filename: "class_with_fun.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{!16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "ret_a", linkageName: "_Cret_a.Main", scope: null, file: !14, line: 14, type: !18, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 3, scope: !19) +// CHECK:STDOUT: !23 = !{null} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !14, type: !24, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !26 = !DILocation(line: 18, column: 1, scope: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 0, scope: !25) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/global/decl.carbon b/toolchain/lower/testdata/global/decl.carbon index e804711d9ab1..e3117bd7425e 100644 --- a/toolchain/lower/testdata/global/decl.carbon +++ b/toolchain/lower/testdata/global/decl.carbon @@ -19,24 +19,24 @@ var a: i32; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 poison, ptr @_Ca.Main, align 4, !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: store i32 poison, ptr @_Ca.Main, align 4, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "decl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 12, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "decl.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !24 = !DILocation(line: 12, column: 1, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 0, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/global/simple_init.carbon b/toolchain/lower/testdata/global/simple_init.carbon index d14e2f20a136..d77adba644f9 100644 --- a/toolchain/lower/testdata/global/simple_init.carbon +++ b/toolchain/lower/testdata/global/simple_init.carbon @@ -19,24 +19,24 @@ var a: i32 = 0; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 0, ptr @_Ca.Main, align 4, !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: store i32 0, ptr @_Ca.Main, align 4, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple_init.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 12, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "simple_init.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !24 = !DILocation(line: 12, column: 1, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 0, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/global/simple_with_fun.carbon b/toolchain/lower/testdata/global/simple_with_fun.carbon index 64ec8bbf1114..f3c51a105bf1 100644 --- a/toolchain/lower/testdata/global/simple_with_fun.carbon +++ b/toolchain/lower/testdata/global/simple_with_fun.carbon @@ -24,37 +24,37 @@ var a: i32 = test_a(); // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Ctest_a.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_Ctest_a.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !9 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %test_a.call = call i32 @_Ctest_a.Main(), !dbg !12 -// CHECK:STDOUT: store i32 %test_a.call, ptr @_Ca.Main, align 4, !dbg !13 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: %test_a.call = call i32 @_Ctest_a.Main(), !dbg !30 +// CHECK:STDOUT: store i32 %test_a.call, ptr @_Ca.Main, align 4, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple_with_fun.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "test_a", linkageName: "_Ctest_a.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !10, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null} -// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 14, scope: !9) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 1, scope: !9) -// CHECK:STDOUT: !14 = !DILocation(line: 0, scope: !9) +// CHECK:STDOUT: !18 = !DIFile(filename: "simple_with_fun.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "test_a", linkageName: "_Ctest_a.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) +// CHECK:STDOUT: !27 = !{null} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !28, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !30 = !DILocation(line: 17, column: 14, scope: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 17, column: 1, scope: !29) +// CHECK:STDOUT: !32 = !DILocation(line: 0, scope: !29) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/global/use.carbon b/toolchain/lower/testdata/global/use.carbon index 25e2b3764e71..344e85ce64f7 100644 --- a/toolchain/lower/testdata/global/use.carbon +++ b/toolchain/lower/testdata/global/use.carbon @@ -26,41 +26,41 @@ fn F() -> i32 { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17 = load i32, ptr @_Ca.Main, align 4, !dbg !8 -// CHECK:STDOUT: ret i32 %.loc17, !dbg !9 +// CHECK:STDOUT: %.loc17 = load i32, ptr @_Ca.Main, align 4, !dbg !26 +// CHECK:STDOUT: ret i32 %.loc17, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !10 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 5, ptr @_Ca.Main, align 4, !dbg !13 -// CHECK:STDOUT: %.loc14 = load i32, ptr @_Ca.Main, align 4, !dbg !14 -// CHECK:STDOUT: store i32 %.loc14, ptr @_Cb.Main, align 4, !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: store i32 5, ptr @_Ca.Main, align 4, !dbg !31 +// CHECK:STDOUT: %.loc14 = load i32, ptr @_Ca.Main, align 4, !dbg !32 +// CHECK:STDOUT: store i32 %.loc14, ptr @_Cb.Main, align 4, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !11, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null} -// CHECK:STDOUT: !13 = !DILocation(line: 12, column: 1, scope: !10) -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 14, scope: !10) -// CHECK:STDOUT: !15 = !DILocation(line: 14, column: 1, scope: !10) -// CHECK:STDOUT: !16 = !DILocation(line: 0, scope: !10) +// CHECK:STDOUT: !18 = !DIFile(filename: "use.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 17, column: 10, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 17, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !29, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 12, column: 1, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 14, column: 14, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 1, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 0, scope: !30) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/if/else.carbon b/toolchain/lower/testdata/if/else.carbon index 72e4bf5545c9..0d0699010325 100644 --- a/toolchain/lower/testdata/if/else.carbon +++ b/toolchain/lower/testdata/if/else.carbon @@ -28,68 +28,68 @@ fn If(b: bool) { // CHECK:STDOUT: source_filename = "else.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !10 { +// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIf.Main(i1 %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CIf.Main(i1 %b) #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br i1 %b, label %if.then, label %if.else, !dbg !18 +// CHECK:STDOUT: br i1 %b, label %if.then, label %if.else, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: call void @_CF.Main(), !dbg !19 -// CHECK:STDOUT: br label %if.done, !dbg !20 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !34 +// CHECK:STDOUT: br label %if.done, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @_CG.Main(), !dbg !21 -// CHECK:STDOUT: br label %if.done, !dbg !20 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !36 +// CHECK:STDOUT: br label %if.done, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: if.done: ; preds = %if.else, %if.then -// CHECK:STDOUT: call void @_CH.Main(), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: call void @_CH.Main(), !dbg !37 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "else.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 14, column: 1, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !10) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "If", linkageName: "_CIf.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 6, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 19, column: 5, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 21, column: 5, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 17, column: 1, scope: !12) +// CHECK:STDOUT: !16 = !DIFile(filename: "else.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !{null} +// CHECK:STDOUT: !19 = !DISubroutineType(types: !18) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !16, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 1, scope: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !16, line: 14, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 1, scope: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !16, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !28 = !DILocation(line: 15, column: 1, scope: !27) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "If", linkageName: "_CIf.Main", scope: null, file: !16, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !39) +// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !29, type: !20) +// CHECK:STDOUT: !33 = !DILocation(line: 18, column: 6, scope: !29) +// CHECK:STDOUT: !34 = !DILocation(line: 19, column: 5, scope: !29) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 3, scope: !29) +// CHECK:STDOUT: !36 = !DILocation(line: 21, column: 5, scope: !29) +// CHECK:STDOUT: !37 = !DILocation(line: 23, column: 3, scope: !29) +// CHECK:STDOUT: !38 = !DILocation(line: 17, column: 1, scope: !29) +// CHECK:STDOUT: !39 = !{!30} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/if/no_else.carbon b/toolchain/lower/testdata/if/no_else.carbon index 3b96008ec036..a5469762238f 100644 --- a/toolchain/lower/testdata/if/no_else.carbon +++ b/toolchain/lower/testdata/if/no_else.carbon @@ -25,55 +25,55 @@ fn If(b: bool) { // CHECK:STDOUT: source_filename = "no_else.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIf.Main(i1 %b) #0 !dbg !10 { +// CHECK:STDOUT: define void @_CIf.Main(i1 %b) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br i1 %b, label %if.then, label %if.else, !dbg !16 +// CHECK:STDOUT: br i1 %b, label %if.then, label %if.else, !dbg !31 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: call void @_CF.Main(), !dbg !17 -// CHECK:STDOUT: br label %if.else, !dbg !18 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !32 +// CHECK:STDOUT: br label %if.else, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry -// CHECK:STDOUT: call void @_CG.Main(), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_else.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 14, column: 1, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "If", linkageName: "_CIf.Main", scope: null, file: !1, line: 16, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 6, scope: !10) -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 5, scope: !10) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 3, scope: !10) -// CHECK:STDOUT: !19 = !DILocation(line: 20, column: 3, scope: !10) -// CHECK:STDOUT: !20 = !DILocation(line: 16, column: 1, scope: !10) +// CHECK:STDOUT: !16 = !DIFile(filename: "no_else.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !{null} +// CHECK:STDOUT: !19 = !DISubroutineType(types: !18) +// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !21 = !{null, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !16, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 1, scope: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !16, line: 14, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 1, scope: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "If", linkageName: "_CIf.Main", scope: null, file: !16, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !36) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !20) +// CHECK:STDOUT: !31 = !DILocation(line: 17, column: 6, scope: !27) +// CHECK:STDOUT: !32 = !DILocation(line: 18, column: 5, scope: !27) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 3, scope: !27) +// CHECK:STDOUT: !34 = !DILocation(line: 20, column: 3, scope: !27) +// CHECK:STDOUT: !35 = !DILocation(line: 16, column: 1, scope: !27) +// CHECK:STDOUT: !36 = !{!28} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/if_expr/basic.carbon b/toolchain/lower/testdata/if_expr/basic.carbon index 98bcb1e9ef7e..e996df26a433 100644 --- a/toolchain/lower/testdata/if_expr/basic.carbon +++ b/toolchain/lower/testdata/if_expr/basic.carbon @@ -22,59 +22,59 @@ fn Select(b: bool) -> i32 { // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 1, !dbg !8 +// CHECK:STDOUT: ret i32 1, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CG.Main() #0 !dbg !9 { +// CHECK:STDOUT: define i32 @_CG.Main() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 2, !dbg !10 +// CHECK:STDOUT: ret i32 2, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CSelect.Main(i1 %b) #0 !dbg !11 { +// CHECK:STDOUT: define i32 @_CSelect.Main(i1 %b) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br i1 %b, label %if.expr.then, label %if.expr.else, !dbg !17 +// CHECK:STDOUT: br i1 %b, label %if.expr.then, label %if.expr.else, !dbg !54 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.then: ; preds = %entry -// CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !18 -// CHECK:STDOUT: br label %if.expr.result, !dbg !17 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !55 +// CHECK:STDOUT: br label %if.expr.result, !dbg !54 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.else: ; preds = %entry -// CHECK:STDOUT: %G.call = call i32 @_CG.Main(), !dbg !19 -// CHECK:STDOUT: br label %if.expr.result, !dbg !17 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main(), !dbg !56 +// CHECK:STDOUT: br label %if.expr.result, !dbg !54 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.result: ; preds = %if.expr.else, %if.expr.then // CHECK:STDOUT: %0 = phi i32 [ %F.call, %if.expr.then ], [ %G.call, %if.expr.else ] -// CHECK:STDOUT: ret i32 %0, !dbg !20 +// CHECK:STDOUT: ret i32 %0, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 17, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 17, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Select", linkageName: "_CSelect.Main", scope: null, file: !1, line: 16, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!7, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 10, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 20, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 17, column: 29, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 3, scope: !11) +// CHECK:STDOUT: !32 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{!34, !37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !32, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !43 = !DILocation(line: 13, column: 17, scope: !40) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !32, line: 14, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !47 = !DILocation(line: 14, column: 17, scope: !44) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Select", linkageName: "_CSelect.Main", scope: null, file: !32, line: 16, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !37) +// CHECK:STDOUT: !54 = !DILocation(line: 17, column: 10, scope: !48) +// CHECK:STDOUT: !55 = !DILocation(line: 17, column: 20, scope: !48) +// CHECK:STDOUT: !56 = !DILocation(line: 17, column: 29, scope: !48) +// CHECK:STDOUT: !57 = !DILocation(line: 17, column: 3, scope: !48) +// CHECK:STDOUT: !58 = !{!49} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/if_expr/empty_block.carbon b/toolchain/lower/testdata/if_expr/empty_block.carbon index 9c06b125afa4..f9040d85aa3f 100644 --- a/toolchain/lower/testdata/if_expr/empty_block.carbon +++ b/toolchain/lower/testdata/if_expr/empty_block.carbon @@ -19,61 +19,61 @@ fn Select(b: bool, c: bool, d: bool) -> i32 { // CHECK:STDOUT: source_filename = "empty_block.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CSelect.Main(i1 %b, i1 %c, i1 %d) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CSelect.Main(i1 %b, i1 %c, i1 %d) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br i1 %b, label %if.expr.then.loc14_10, label %if.expr.else.loc14_10, !dbg !13 +// CHECK:STDOUT: br i1 %b, label %if.expr.then.loc14_10, label %if.expr.else.loc14_10, !dbg !48 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.then.loc14_10: ; preds = %entry -// CHECK:STDOUT: br i1 %c, label %if.expr.then.loc14_20, label %if.expr.else.loc14_20, !dbg !14 +// CHECK:STDOUT: br i1 %c, label %if.expr.then.loc14_20, label %if.expr.else.loc14_20, !dbg !50 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.then.loc14_20: ; preds = %if.expr.then.loc14_10 -// CHECK:STDOUT: br label %if.expr.result.loc14_20, !dbg !14 +// CHECK:STDOUT: br label %if.expr.result.loc14_20, !dbg !50 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.else.loc14_20: ; preds = %if.expr.then.loc14_10 -// CHECK:STDOUT: br label %if.expr.result.loc14_20, !dbg !14 +// CHECK:STDOUT: br label %if.expr.result.loc14_20, !dbg !50 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.result.loc14_20: ; preds = %if.expr.else.loc14_20, %if.expr.then.loc14_20 // CHECK:STDOUT: %0 = phi i32 [ 1, %if.expr.then.loc14_20 ], [ 2, %if.expr.else.loc14_20 ] -// CHECK:STDOUT: br label %if.expr.result.loc14_10, !dbg !13 +// CHECK:STDOUT: br label %if.expr.result.loc14_10, !dbg !48 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.else.loc14_10: ; preds = %entry -// CHECK:STDOUT: br i1 %d, label %if.expr.then.loc14_51, label %if.expr.else.loc14_51, !dbg !15 +// CHECK:STDOUT: br i1 %d, label %if.expr.then.loc14_51, label %if.expr.else.loc14_51, !dbg !52 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.then.loc14_51: ; preds = %if.expr.else.loc14_10 -// CHECK:STDOUT: br label %if.expr.result.loc14_51, !dbg !15 +// CHECK:STDOUT: br label %if.expr.result.loc14_51, !dbg !52 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.else.loc14_51: ; preds = %if.expr.else.loc14_10 -// CHECK:STDOUT: br label %if.expr.result.loc14_51, !dbg !15 +// CHECK:STDOUT: br label %if.expr.result.loc14_51, !dbg !52 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.result.loc14_51: ; preds = %if.expr.else.loc14_51, %if.expr.then.loc14_51 // CHECK:STDOUT: %1 = phi i32 [ 3, %if.expr.then.loc14_51 ], [ 4, %if.expr.else.loc14_51 ] -// CHECK:STDOUT: br label %if.expr.result.loc14_10, !dbg !13 +// CHECK:STDOUT: br label %if.expr.result.loc14_10, !dbg !48 // CHECK:STDOUT: // CHECK:STDOUT: if.expr.result.loc14_10: ; preds = %if.expr.result.loc14_51, %if.expr.result.loc14_20 // CHECK:STDOUT: %2 = phi i32 [ %0, %if.expr.result.loc14_20 ], [ %1, %if.expr.result.loc14_51 ] -// CHECK:STDOUT: ret i32 %2, !dbg !16 +// CHECK:STDOUT: ret i32 %2, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty_block.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Select", linkageName: "_CSelect.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8, !8, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10, !11, !12} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocalVariable(arg: 2, scope: !4, type: !8) -// CHECK:STDOUT: !12 = !DILocalVariable(arg: 3, scope: !4, type: !8) -// CHECK:STDOUT: !13 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 20, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 14, column: 51, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !32 = !DIFile(filename: "empty_block.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{!34, !35, !35, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Select", linkageName: "_CSelect.Main", scope: null, file: !32, line: 13, type: !37, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !54) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !35) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !38, type: !35) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 3, scope: !38, type: !35) +// CHECK:STDOUT: !48 = !DILocation(line: 14, column: 10, scope: !38) +// CHECK:STDOUT: !50 = !DILocation(line: 14, column: 20, scope: !38) +// CHECK:STDOUT: !52 = !DILocation(line: 14, column: 51, scope: !38) +// CHECK:STDOUT: !53 = !DILocation(line: 14, column: 3, scope: !38) +// CHECK:STDOUT: !54 = !{!39, !40, !41} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/assoc_fn_alias.carbon b/toolchain/lower/testdata/impl/assoc_fn_alias.carbon index bd21e8036018..6b60a84c5fb3 100644 --- a/toolchain/lower/testdata/impl/assoc_fn_alias.carbon +++ b/toolchain/lower/testdata/impl/assoc_fn_alias.carbon @@ -63,98 +63,98 @@ fn Call2(c: C) { // CHECK:STDOUT: source_filename = "class_method_defined_as_alias.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc15_16.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc15_16.2 = load i32, ptr %.loc15_16.1.n, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc15_16.2, !dbg !12 +// CHECK:STDOUT: %.loc15_16.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc15_16.2 = load i32, ptr %.loc15_16.1.n, align 4, !dbg !29 +// CHECK:STDOUT: ret i32 %.loc15_16.2, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCall.Main(ptr %a) #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CCall.Main(ptr %a) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(ptr %a), !dbg !16 -// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !17 +// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(ptr %a), !dbg !37 +// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "class_method_defined_as_alias.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 12, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 15, column: 5, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !8) -// CHECK:STDOUT: !16 = !DILocation(line: 20, column: 10, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 20, column: 3, scope: !13) +// CHECK:STDOUT: !18 = !DIFile(filename: "class_method_defined_as_alias.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !18, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 15, column: 12, scope: !24) +// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 5, scope: !24) +// CHECK:STDOUT: !31 = !{!25} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !18, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 10, scope: !32) +// CHECK:STDOUT: !38 = !DILocation(line: 20, column: 3, scope: !32) +// CHECK:STDOUT: !39 = !{!33} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'impl_method_defined_as_alias.carbon' // CHECK:STDOUT: source_filename = "impl_method_defined_as_alias.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.C.Main(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.C.Main(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_34.1.i = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc10_34.2 = load i32, ptr %.loc10_34.1.i, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc10_34.2, !dbg !12 +// CHECK:STDOUT: %.loc10_34.1.i = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !49 +// CHECK:STDOUT: %.loc10_34.2 = load i32, ptr %.loc10_34.1.i, align 4, !dbg !49 +// CHECK:STDOUT: ret i32 %.loc10_34.2, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall2.Main(ptr %c) #0 !dbg !13 { +// CHECK:STDOUT: define void @_CCall2.Main(ptr %c) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Call.call = call i32 @_CCall.Main.0676fa98bb7dbd66(ptr %c), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %Call.call = call i32 @_CCall.Main.0676fa98bb7dbd66(ptr %c), !dbg !56 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CCall.Main.0676fa98bb7dbd66(ptr %i) #0 !dbg !20 { +// CHECK:STDOUT: define linkonce_odr i32 @_CCall.Main.0676fa98bb7dbd66(ptr %i) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %I.WithSelf.F.call = call i32 @_CF.C.Main(ptr %i), !dbg !23 -// CHECK:STDOUT: ret i32 %I.WithSelf.F.call, !dbg !24 +// CHECK:STDOUT: %I.WithSelf.F.call = call i32 @_CF.C.Main(ptr %i), !dbg !64 +// CHECK:STDOUT: ret i32 %I.WithSelf.F.call, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!41} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "impl_method_defined_as_alias.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 10, column: 30, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 10, column: 23, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Call2", linkageName: "_CCall2.Main", scope: null, file: !1, line: 21, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !8} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !8) -// CHECK:STDOUT: !18 = !DILocation(line: 22, column: 3, scope: !13) -// CHECK:STDOUT: !19 = !DILocation(line: 21, column: 1, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.0676fa98bb7dbd66", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !8) -// CHECK:STDOUT: !23 = !DILocation(line: 18, column: 10, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 3, scope: !20) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !40 = !DIFile(filename: "impl_method_defined_as_alias.carbon", directory: "") +// CHECK:STDOUT: !41 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !40, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !42 = !{null, !21} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main", scope: null, file: !40, line: 10, type: !23, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !51) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !21) +// CHECK:STDOUT: !49 = !DILocation(line: 10, column: 30, scope: !44) +// CHECK:STDOUT: !50 = !DILocation(line: 10, column: 23, scope: !44) +// CHECK:STDOUT: !51 = !{!45} +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Call2", linkageName: "_CCall2.Main", scope: null, file: !40, line: 21, type: !43, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !58) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !21) +// CHECK:STDOUT: !56 = !DILocation(line: 22, column: 3, scope: !52) +// CHECK:STDOUT: !57 = !DILocation(line: 21, column: 1, scope: !52) +// CHECK:STDOUT: !58 = !{!53} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.0676fa98bb7dbd66", scope: null, file: !40, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !66) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !21) +// CHECK:STDOUT: !64 = !DILocation(line: 18, column: 10, scope: !59) +// CHECK:STDOUT: !65 = !DILocation(line: 18, column: 3, scope: !59) +// CHECK:STDOUT: !66 = !{!60} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/extend_impl.carbon b/toolchain/lower/testdata/impl/extend_impl.carbon index 1e53a829551c..8cae1f40ab28 100644 --- a/toolchain/lower/testdata/impl/extend_impl.carbon +++ b/toolchain/lower/testdata/impl/extend_impl.carbon @@ -35,48 +35,48 @@ fn InstanceAccess(a: A) -> i32 { // CHECK:STDOUT: source_filename = "extend_impl.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTypeAccess.Main() #0 !dbg !9 { +// CHECK:STDOUT: define i32 @_CTypeAccess.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(), !dbg !10 -// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !11 +// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(), !dbg !33 +// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CInstanceAccess.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CInstanceAccess.Main(ptr %a) #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(), !dbg !18 -// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !19 +// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(), !dbg !40 +// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "extend_impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 7, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "TypeAccess", linkageName: "_CTypeAccess.Main", scope: null, file: !1, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 26, column: 10, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 26, column: 3, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "InstanceAccess", linkageName: "_CInstanceAccess.Main", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!7, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 30, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 30, column: 3, scope: !12) +// CHECK:STDOUT: !18 = !DIFile(filename: "extend_impl.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{!20, !23} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !18, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 20, column: 7, scope: !26) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "TypeAccess", linkageName: "_CTypeAccess.Main", scope: null, file: !18, line: 25, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 26, column: 10, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 26, column: 3, scope: !30) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "InstanceAccess", linkageName: "_CInstanceAccess.Main", scope: null, file: !18, line: 29, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !42) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !23) +// CHECK:STDOUT: !40 = !DILocation(line: 30, column: 10, scope: !35) +// CHECK:STDOUT: !41 = !DILocation(line: 30, column: 3, scope: !35) +// CHECK:STDOUT: !42 = !{!36} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/impl.carbon b/toolchain/lower/testdata/impl/impl.carbon index 39111a3b1a79..82b88bd1ea26 100644 --- a/toolchain/lower/testdata/impl/impl.carbon +++ b/toolchain/lower/testdata/impl/impl.carbon @@ -88,43 +88,43 @@ impl C(B) as I { // CHECK:STDOUT: source_filename = "impl.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_16.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc14_16.2 = load i32, ptr %.loc14_16.1.n, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc14_16.2, !dbg !12 +// CHECK:STDOUT: %.loc14_16.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc14_16.2 = load i32, ptr %.loc14_16.1.n, align 4, !dbg !29 +// CHECK:STDOUT: ret i32 %.loc14_16.2, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCall.Main(ptr %a) #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CCall.Main(ptr %a) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(ptr %a), !dbg !16 -// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !17 +// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(ptr %a), !dbg !37 +// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 12, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 5, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !8) -// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 10, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 3, scope: !13) +// CHECK:STDOUT: !18 = !DIFile(filename: "impl.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 12, scope: !24) +// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 5, scope: !24) +// CHECK:STDOUT: !31 = !{!25} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !18, line: 18, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 19, column: 10, scope: !32) +// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 3, scope: !32) +// CHECK:STDOUT: !39 = !{!33} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_impls.carbon' @@ -134,43 +134,43 @@ impl C(B) as I { // CHECK:STDOUT: @B.val.loc17_40 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc13_40, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc13_40, i64 0, i1 false), !dbg !53 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc17_40, i64 0, i1 false), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc17_40, i64 0, i1 false), !dbg !60 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF1.Main(ptr %x, ptr %y) #0 !dbg !15 { +// CHECK:STDOUT: define void @_CF1.Main(ptr %x, ptr %y) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !21 -// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !21 -// CHECK:STDOUT: call void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr %a.var, ptr %x), !dbg !23 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !22 -// CHECK:STDOUT: call void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr %b.var, ptr %y), !dbg !24 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %b.var), !dbg !22 -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %a.var), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !67 +// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !70 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !67 +// CHECK:STDOUT: call void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr %a.var, ptr %x), !dbg !68 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !70 +// CHECK:STDOUT: call void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr %b.var, ptr %y), !dbg !71 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %b.var), !dbg !70 +// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %a.var), !dbg !67 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -186,75 +186,75 @@ impl C(B) as I { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!41} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_impls.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.bd4fb75a414fe858.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 31, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.a6a60dfee2d7d273.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 17, column: 31, scope: !11) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "F1", linkageName: "_CF1.Main", scope: null, file: !1, line: 20, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !7, !7} -// CHECK:STDOUT: !18 = !{!19, !20} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !15, type: !7) -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 2, scope: !15, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 21, column: 3, scope: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 22, column: 3, scope: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 21, column: 21, scope: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 21, scope: !15) -// CHECK:STDOUT: !25 = !DILocation(line: 20, column: 1, scope: !15) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !7} -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !31 = !DILocation(line: 22, column: 3, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !1, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !35 = !DILocation(line: 21, column: 3, scope: !32) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !DIFile(filename: "generic_impls.carbon", directory: "") +// CHECK:STDOUT: !41 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !40, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !42 = !{!21, !21} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = !{null, !21, !21} +// CHECK:STDOUT: !45 = !DISubroutineType(types: !44) +// CHECK:STDOUT: !46 = !{null, !21} +// CHECK:STDOUT: !47 = !DISubroutineType(types: !46) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.bd4fb75a414fe858.Main", scope: null, file: !40, line: 13, type: !43, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !54) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !21) +// CHECK:STDOUT: !53 = !DILocation(line: 13, column: 31, scope: !48) +// CHECK:STDOUT: !54 = !{!49} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.a6a60dfee2d7d273.Main", scope: null, file: !40, line: 17, type: !43, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !61) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !21) +// CHECK:STDOUT: !60 = !DILocation(line: 17, column: 31, scope: !55) +// CHECK:STDOUT: !61 = !{!56} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "F1", linkageName: "_CF1.Main", scope: null, file: !40, line: 20, type: !45, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !74) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !21) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !62, type: !21) +// CHECK:STDOUT: !67 = !DILocation(line: 21, column: 3, scope: !62) +// CHECK:STDOUT: !68 = !DILocation(line: 21, column: 21, scope: !62) +// CHECK:STDOUT: !70 = !DILocation(line: 22, column: 3, scope: !62) +// CHECK:STDOUT: !71 = !DILocation(line: 22, column: 21, scope: !62) +// CHECK:STDOUT: !73 = !DILocation(line: 20, column: 1, scope: !62) +// CHECK:STDOUT: !74 = !{!63, !64} +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !40, line: 22, type: !47, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !78) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !21) +// CHECK:STDOUT: !77 = !DILocation(line: 22, column: 3, scope: !75) +// CHECK:STDOUT: !78 = !{!76} +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !40, line: 21, type: !47, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !82) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !21) +// CHECK:STDOUT: !81 = !DILocation(line: 21, column: 3, scope: !79) +// CHECK:STDOUT: !82 = !{!80} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_class_impls.carbon' // CHECK:STDOUT: source_filename = "generic_class_impls.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.bd4fb75a414fe858.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.C.bd4fb75a414fe858.Main:I.Main"() #0 !dbg !87 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.a6a60dfee2d7d273.Main:I.Main"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.C.a6a60dfee2d7d273.Main:I.Main"() #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!84} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_class_impls.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.bd4fb75a414fe858.Main:I.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.a6a60dfee2d7d273.Main:I.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !8) +// CHECK:STDOUT: !83 = !DIFile(filename: "generic_class_impls.carbon", directory: "") +// CHECK:STDOUT: !84 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !83, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !85 = !{null} +// CHECK:STDOUT: !86 = !DISubroutineType(types: !85) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.bd4fb75a414fe858.Main:I.Main", scope: null, file: !83, line: 14, type: !86, spFlags: DISPFlagDefinition, unit: !84) +// CHECK:STDOUT: !88 = !DILocation(line: 14, column: 3, scope: !87) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.a6a60dfee2d7d273.Main:I.Main", scope: null, file: !83, line: 18, type: !86, spFlags: DISPFlagDefinition, unit: !84) +// CHECK:STDOUT: !90 = !DILocation(line: 18, column: 3, scope: !89) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/import.carbon b/toolchain/lower/testdata/impl/import.carbon index b5e3cbd40f0e..37c0053309dd 100644 --- a/toolchain/lower/testdata/impl/import.carbon +++ b/toolchain/lower/testdata/impl/import.carbon @@ -41,61 +41,61 @@ fn Call(a: A) -> i32 { // CHECK:STDOUT: source_filename = "impl_def.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CF.A.Main:I.Main"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_16.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc14_16.2 = load i32, ptr %.loc14_16.1.n, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc14_16.2, !dbg !12 +// CHECK:STDOUT: %.loc14_16.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc14_16.2 = load i32, ptr %.loc14_16.1.n, align 4, !dbg !29 +// CHECK:STDOUT: ret i32 %.loc14_16.2, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "impl_def.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 12, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 5, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "impl_def.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main:I.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 12, scope: !24) +// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 5, scope: !24) +// CHECK:STDOUT: !31 = !{!25} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'impl_use.carbon' // CHECK:STDOUT: source_filename = "impl_use.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCall.Main(ptr %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CCall.Main(ptr %a) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(ptr %a), !dbg !11 -// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !12 +// CHECK:STDOUT: %A.as.I.impl.F.call = call i32 @"_CF.A.Main:I.Main"(ptr %a), !dbg !39 +// CHECK:STDOUT: ret i32 %A.as.I.impl.F.call, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @"_CF.A.Main:I.Main"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "impl_use.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 3, scope: !4) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !32 = !DIFile(filename: "impl_use.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !32, line: 4, type: !23, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !41) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !21) +// CHECK:STDOUT: !39 = !DILocation(line: 5, column: 10, scope: !34) +// CHECK:STDOUT: !40 = !DILocation(line: 5, column: 3, scope: !34) +// CHECK:STDOUT: !41 = !{!35} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/import_facet.carbon b/toolchain/lower/testdata/impl/import_facet.carbon index c577a02de561..ede680e7fc2d 100644 --- a/toolchain/lower/testdata/impl/import_facet.carbon +++ b/toolchain/lower/testdata/impl/import_facet.carbon @@ -56,37 +56,37 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: ; ModuleID = 'a.carbon' // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!7} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !7 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'c.carbon' // CHECK:STDOUT: source_filename = "c.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!9} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "c.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !8 = !DIFile(filename: "c.carbon", directory: "") +// CHECK:STDOUT: !9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !8, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'd.carbon' @@ -95,38 +95,38 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: @C.val.f2f.anon = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CF.Main(ptr %d) #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CF.Main(ptr %d) #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc5_21.1.temp = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_21.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr %.loc5_21.1.temp, ptr %d), !dbg !10 -// CHECK:STDOUT: %C.GetC.call = call ptr @_CGetC.C.Main.8b8580dcf8be64c1(ptr %.loc5_21.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_COp.42b1207bb77e2640:core.Destroy.Core"(ptr %.loc5_21.1.temp), !dbg !10 -// CHECK:STDOUT: ret ptr %C.GetC.call, !dbg !11 +// CHECK:STDOUT: %.loc5_21.1.temp = alloca {}, align 1, !dbg !22 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_21.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr %.loc5_21.1.temp, ptr %d), !dbg !22 +// CHECK:STDOUT: %C.GetC.call = call ptr @_CGetC.C.Main.8b8580dcf8be64c1(ptr %.loc5_21.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.42b1207bb77e2640:core.Destroy.Core"(ptr %.loc5_21.1.temp), !dbg !22 +// CHECK:STDOUT: ret ptr %C.GetC.call, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.42b1207bb77e2640:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.42b1207bb77e2640:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr sret({}) %return, ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.f2f.anon, i64 0, i1 false), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr sret({}) %return, ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.f2f.anon, i64 0, i1 false), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGetC.C.Main.8b8580dcf8be64c1(ptr %self) #0 !dbg !23 { -// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !27 -// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !27 -// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !28 -// CHECK:STDOUT: ret ptr %2, !dbg !29 +// CHECK:STDOUT: define linkonce_odr ptr @_CGetC.C.Main.8b8580dcf8be64c1(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !41 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !41 +// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !41 +// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !43 +// CHECK:STDOUT: ret ptr %2, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -135,37 +135,37 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!11} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "d.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.42b1207bb77e2640:core.Destroy.Core", scope: null, file: !1, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !7} -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 5, column: 10, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "GetI", linkageName: "_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba", scope: null, file: !19, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !19 = !DIFile(filename: "c.carbon", directory: "") -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 7, column: 7, scope: !18) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.C.Main.8b8580dcf8be64c1", scope: null, file: !24, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !24 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 5, column: 5, scope: !23) -// CHECK:STDOUT: !28 = !DILocation(line: 6, column: 12, scope: !23) -// CHECK:STDOUT: !29 = !DILocation(line: 6, column: 5, scope: !23) +// CHECK:STDOUT: !4 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !8 = !DIFile(filename: "c.carbon", directory: "") +// CHECK:STDOUT: !10 = !DIFile(filename: "d.carbon", directory: "") +// CHECK:STDOUT: !11 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !10, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !13 = !{!12, !12} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = !{null, !12} +// CHECK:STDOUT: !16 = !DISubroutineType(types: !15) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !10, line: 4, type: !14, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !24) +// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !17, type: !12) +// CHECK:STDOUT: !22 = !DILocation(line: 5, column: 10, scope: !17) +// CHECK:STDOUT: !23 = !DILocation(line: 5, column: 3, scope: !17) +// CHECK:STDOUT: !24 = !{!18} +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.42b1207bb77e2640:core.Destroy.Core", scope: null, file: !10, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !28) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !12) +// CHECK:STDOUT: !27 = !DILocation(line: 5, column: 10, scope: !25) +// CHECK:STDOUT: !28 = !{!26} +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "GetI", linkageName: "_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba", scope: null, file: !8, line: 6, type: !14, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !35) +// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !29, type: !12) +// CHECK:STDOUT: !34 = !DILocation(line: 7, column: 7, scope: !29) +// CHECK:STDOUT: !35 = !{!30} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.C.Main.8b8580dcf8be64c1", scope: null, file: !4, line: 4, type: !14, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !45) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !12) +// CHECK:STDOUT: !41 = !DILocation(line: 5, column: 5, scope: !36) +// CHECK:STDOUT: !43 = !DILocation(line: 6, column: 12, scope: !36) +// CHECK:STDOUT: !44 = !DILocation(line: 6, column: 5, scope: !36) +// CHECK:STDOUT: !45 = !{!37} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/import_thunk.carbon b/toolchain/lower/testdata/impl/import_thunk.carbon index 245a7383e384..942f96a158fb 100644 --- a/toolchain/lower/testdata/impl/import_thunk.carbon +++ b/toolchain/lower/testdata/impl/import_thunk.carbon @@ -71,66 +71,66 @@ fn Test(a: A) -> C { // CHECK:STDOUT: source_filename = "thunk.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_47.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc9_47.2 = load i32, ptr %.loc9_47.1.a, align 4, !dbg !10 -// CHECK:STDOUT: %.loc9_49.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc9_47.2, ptr %.loc9_49.2.b, align 4, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc9_47.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %.loc9_47.2 = load i32, ptr %.loc9_47.1.a, align 4, !dbg !33 +// CHECK:STDOUT: %.loc9_49.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: store i32 %.loc9_47.2, ptr %.loc9_49.2.b, align 4, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_47.1.b = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !16 -// CHECK:STDOUT: %.loc12_47.2 = load i32, ptr %.loc12_47.1.b, align 4, !dbg !16 -// CHECK:STDOUT: %.loc12_49.2.c = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: store i32 %.loc12_47.2, ptr %.loc12_49.2.c, align 4, !dbg !17 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %.loc12_47.1.b = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !42 +// CHECK:STDOUT: %.loc12_47.2 = load i32, ptr %.loc12_47.1.b, align 4, !dbg !42 +// CHECK:STDOUT: %.loc12_49.2.c = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !43 +// CHECK:STDOUT: store i32 %.loc12_47.2, ptr %.loc12_49.2.c, align 4, !dbg !43 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %b) #0 !dbg !19 { +// CHECK:STDOUT: define void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %b) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_35.1.b = getelementptr inbounds nuw { i32 }, ptr %b, i32 0, i32 0, !dbg !22 -// CHECK:STDOUT: %.loc20_35.2 = load i32, ptr %.loc20_35.1.b, align 4, !dbg !22 -// CHECK:STDOUT: %.loc20_37.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: store i32 %.loc20_35.2, ptr %.loc20_37.2.b, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc20_35.1.b = getelementptr inbounds nuw { i32 }, ptr %b, i32 0, i32 0, !dbg !51 +// CHECK:STDOUT: %.loc20_35.2 = load i32, ptr %.loc20_35.1.b, align 4, !dbg !51 +// CHECK:STDOUT: %.loc20_37.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !52 +// CHECK:STDOUT: store i32 %.loc20_35.2, ptr %.loc20_37.2.b, align 4, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_19.1.temp = alloca { i32 }, align 4, !dbg !28 -// CHECK:STDOUT: %.4.temp = alloca { i32 }, align 4, !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !29 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !29 -// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.4.temp), !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: %.loc20_19.1.temp = alloca { i32 }, align 4, !dbg !58 +// CHECK:STDOUT: %.4.temp = alloca { i32 }, align 4, !dbg !57 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !57 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !57 +// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.4.temp), !dbg !58 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !57 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -144,76 +144,76 @@ fn Test(a: A) -> C { // CHECK:STDOUT: attributes #1 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "thunk.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 43, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 37, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 30, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 12, column: 43, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 37, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 30, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "F", linkageName: "_CF.61ea2aba74ab3bf1:I.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 34, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 20, column: 28, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 20, column: 21, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocation(line: 20, column: 3, scope: !25) -// CHECK:STDOUT: !29 = !DILocation(line: 0, scope: !25) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{null, !33} -// CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 20, column: 3, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !1, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !38 = !DISubroutineType(types: !39) -// CHECK:STDOUT: !39 = !{null, !7} -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !37, type: !7) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 3, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !46 = !DILocation(line: 20, column: 3, scope: !43) +// CHECK:STDOUT: !18 = !DIFile(filename: "thunk.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !36) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !21) +// CHECK:STDOUT: !33 = !DILocation(line: 9, column: 43, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 9, column: 37, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 30, scope: !28) +// CHECK:STDOUT: !36 = !{!29} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core", scope: null, file: !18, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !21) +// CHECK:STDOUT: !42 = !DILocation(line: 12, column: 43, scope: !37) +// CHECK:STDOUT: !43 = !DILocation(line: 12, column: 37, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 12, column: 30, scope: !37) +// CHECK:STDOUT: !45 = !{!38} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.61ea2aba74ab3bf1:I.Main", scope: null, file: !18, line: 20, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !21) +// CHECK:STDOUT: !51 = !DILocation(line: 20, column: 34, scope: !46) +// CHECK:STDOUT: !52 = !DILocation(line: 20, column: 28, scope: !46) +// CHECK:STDOUT: !53 = !DILocation(line: 20, column: 21, scope: !46) +// CHECK:STDOUT: !54 = !{!47} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !18, line: 20, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !59) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !21) +// CHECK:STDOUT: !57 = !DILocation(line: 0, scope: !55) +// CHECK:STDOUT: !58 = !DILocation(line: 20, column: 3, scope: !55) +// CHECK:STDOUT: !59 = !{!56} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !20) +// CHECK:STDOUT: !62 = !DILocation(line: 20, column: 3, scope: !60) +// CHECK:STDOUT: !63 = !{!61} +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !67) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !21) +// CHECK:STDOUT: !66 = !DILocation(line: 20, column: 3, scope: !64) +// CHECK:STDOUT: !67 = !{!65} +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !21) +// CHECK:STDOUT: !70 = !DILocation(line: 20, column: 3, scope: !68) +// CHECK:STDOUT: !71 = !{!69} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_thunk.carbon' // CHECK:STDOUT: source_filename = "call_thunk.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTest.Main(ptr sret({ i32 }) %return, ptr %a) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CTest.Main(ptr sret({ i32 }) %return, ptr %a) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_20.1.temp = alloca { i32 }, align 4, !dbg !10 -// CHECK:STDOUT: %.loc7_20.2.temp = alloca { i32 }, align 4, !dbg !10 -// CHECK:STDOUT: %.loc7_19.1.temp = alloca { i32 }, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.2.temp), !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc7_19.1.temp, ptr %a), !dbg !11 -// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc7_20.2.temp, ptr %.loc7_19.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc7_20.2.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc7_20.2.temp), !dbg !10 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc7_19.1.temp), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc7_20.1.temp = alloca { i32 }, align 4, !dbg !80 +// CHECK:STDOUT: %.loc7_20.2.temp = alloca { i32 }, align 4, !dbg !80 +// CHECK:STDOUT: %.loc7_19.1.temp = alloca { i32 }, align 4, !dbg !79 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !80 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.2.temp), !dbg !80 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.1.temp), !dbg !79 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc7_19.1.temp, ptr %a), !dbg !79 +// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc7_20.2.temp, ptr %.loc7_19.1.temp), !dbg !80 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc7_20.2.temp), !dbg !81 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc7_20.2.temp), !dbg !80 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc7_19.1.temp), !dbg !79 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF:thunk:I.f5faeaa774ca256e.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }), ptr) @@ -225,21 +225,21 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !87 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -252,67 +252,67 @@ fn Test(a: A) -> C { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!73} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_thunk.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 19, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !1, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !7} -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !25 = !DILocation(line: 7, column: 10, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !29 = !DILocation(line: 7, column: 10, scope: !26) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !72 = !DIFile(filename: "call_thunk.carbon", directory: "") +// CHECK:STDOUT: !73 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !72, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !72, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !82) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !21) +// CHECK:STDOUT: !79 = !DILocation(line: 7, column: 19, scope: !74) +// CHECK:STDOUT: !80 = !DILocation(line: 7, column: 10, scope: !74) +// CHECK:STDOUT: !81 = !DILocation(line: 7, column: 3, scope: !74) +// CHECK:STDOUT: !82 = !{!75} +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !72, line: 7, type: !25, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !86) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !20) +// CHECK:STDOUT: !85 = !DILocation(line: 7, column: 10, scope: !83) +// CHECK:STDOUT: !86 = !{!84} +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !72, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !90) +// CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !87, type: !21) +// CHECK:STDOUT: !89 = !DILocation(line: 7, column: 10, scope: !87) +// CHECK:STDOUT: !90 = !{!88} +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !72, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !94) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !21) +// CHECK:STDOUT: !93 = !DILocation(line: 7, column: 10, scope: !91) +// CHECK:STDOUT: !94 = !{!92} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'thunk_for_imported_interface.carbon' // CHECK:STDOUT: source_filename = "thunk_for_imported_interface.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.X.Main:I.Main"(ptr sret({ i32 }) %return, ptr %b) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.X.Main:I.Main"(ptr sret({ i32 }) %return, ptr %b) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_35.1.b = getelementptr inbounds nuw { i32 }, ptr %b, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc9_35.2 = load i32, ptr %.loc9_35.1.b, align 4, !dbg !10 -// CHECK:STDOUT: %.loc9_37.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc9_35.2, ptr %.loc9_37.2.b, align 4, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc9_35.1.b = getelementptr inbounds nuw { i32 }, ptr %b, i32 0, i32 0, !dbg !102 +// CHECK:STDOUT: %.loc9_35.2 = load i32, ptr %.loc9_35.1.b, align 4, !dbg !102 +// CHECK:STDOUT: %.loc9_37.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !103 +// CHECK:STDOUT: store i32 %.loc9_35.2, ptr %.loc9_37.2.b, align 4, !dbg !103 +// CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:I.d0cc85b6c89517e3.Main:X.Main:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:I.d0cc85b6c89517e3.Main:X.Main:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !106 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_19.1.temp = alloca { i32 }, align 4, !dbg !16 -// CHECK:STDOUT: %.4.temp = alloca { i32 }, align 4, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_19.1.temp), !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !17 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !17 -// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc9_19.1.temp, ptr %.4.temp), !dbg !16 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc9_19.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc9_19.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %.loc9_19.1.temp = alloca { i32 }, align 4, !dbg !109 +// CHECK:STDOUT: %.4.temp = alloca { i32 }, align 4, !dbg !108 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_19.1.temp), !dbg !109 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !108 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !108 +// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc9_19.1.temp, ptr %.4.temp), !dbg !109 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc9_19.1.temp), !dbg !109 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc9_19.1.temp), !dbg !109 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !108 +// CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }), ptr) @@ -320,21 +320,21 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !111 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !119 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -348,64 +348,64 @@ fn Test(a: A) -> C { // CHECK:STDOUT: attributes #1 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!96} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "thunk_for_imported_interface.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 34, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 28, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 21, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.d0cc85b6c89517e3.Main:X.Main:I.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 3, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 0, scope: !13) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 9, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !1, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{null, !7} -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 9, column: 3, scope: !25) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !7) -// CHECK:STDOUT: !34 = !DILocation(line: 9, column: 3, scope: !31) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !95 = !DIFile(filename: "thunk_for_imported_interface.carbon", directory: "") +// CHECK:STDOUT: !96 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !95, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !95, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !105) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !21) +// CHECK:STDOUT: !102 = !DILocation(line: 9, column: 34, scope: !97) +// CHECK:STDOUT: !103 = !DILocation(line: 9, column: 28, scope: !97) +// CHECK:STDOUT: !104 = !DILocation(line: 9, column: 21, scope: !97) +// CHECK:STDOUT: !105 = !{!98} +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.d0cc85b6c89517e3.Main:X.Main:I.Main", scope: null, file: !95, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !110) +// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !21) +// CHECK:STDOUT: !108 = !DILocation(line: 0, scope: !106) +// CHECK:STDOUT: !109 = !DILocation(line: 9, column: 3, scope: !106) +// CHECK:STDOUT: !110 = !{!107} +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !95, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !114) +// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !20) +// CHECK:STDOUT: !113 = !DILocation(line: 9, column: 3, scope: !111) +// CHECK:STDOUT: !114 = !{!112} +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !95, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !118) +// CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !21) +// CHECK:STDOUT: !117 = !DILocation(line: 9, column: 3, scope: !115) +// CHECK:STDOUT: !118 = !{!116} +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !95, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !122) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !21) +// CHECK:STDOUT: !121 = !DILocation(line: 9, column: 3, scope: !119) +// CHECK:STDOUT: !122 = !{!120} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_thunk_for_imported_interface.carbon' // CHECK:STDOUT: source_filename = "call_thunk_for_imported_interface.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTest.Main(ptr sret({ i32 }) %return, ptr %a) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CTest.Main(ptr sret({ i32 }) %return, ptr %a) #0 !dbg !125 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc8_19.1.temp = alloca { i32 }, align 4, !dbg !10 -// CHECK:STDOUT: %.loc8_19.2.temp = alloca { i32 }, align 4, !dbg !10 -// CHECK:STDOUT: %.loc8_18.1.temp = alloca { i32 }, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_19.1.temp), !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_19.2.temp), !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_18.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc8_18.1.temp, ptr %a), !dbg !11 -// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc8_19.2.temp, ptr %.loc8_18.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc8_19.2.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc8_19.2.temp), !dbg !10 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc8_18.1.temp), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc8_19.1.temp = alloca { i32 }, align 4, !dbg !131 +// CHECK:STDOUT: %.loc8_19.2.temp = alloca { i32 }, align 4, !dbg !131 +// CHECK:STDOUT: %.loc8_18.1.temp = alloca { i32 }, align 4, !dbg !130 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_19.1.temp), !dbg !131 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_19.2.temp), !dbg !131 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_18.1.temp), !dbg !130 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc8_18.1.temp, ptr %a), !dbg !130 +// CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc8_19.2.temp, ptr %.loc8_18.1.temp), !dbg !131 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc8_19.2.temp), !dbg !132 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc8_19.2.temp), !dbg !131 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc8_18.1.temp), !dbg !130 +// CHECK:STDOUT: ret void, !dbg !132 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF:thunk:I.4980a17f6b368c72.Main:X.Main:I.Main"(ptr sret({ i32 }), ptr) @@ -417,21 +417,21 @@ fn Test(a: A) -> C { // CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !134 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !138 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !140 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !142 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !144 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -444,37 +444,37 @@ fn Test(a: A) -> C { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!124} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_thunk_for_imported_interface.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 8, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 8, column: 18, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 10, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !1, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !7} -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !25 = !DILocation(line: 8, column: 10, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !29 = !DILocation(line: 8, column: 10, scope: !26) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !123 = !DIFile(filename: "call_thunk_for_imported_interface.carbon", directory: "") +// CHECK:STDOUT: !124 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !123, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !125 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !123, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !133) +// CHECK:STDOUT: !126 = !DILocalVariable(arg: 1, scope: !125, type: !21) +// CHECK:STDOUT: !130 = !DILocation(line: 8, column: 18, scope: !125) +// CHECK:STDOUT: !131 = !DILocation(line: 8, column: 10, scope: !125) +// CHECK:STDOUT: !132 = !DILocation(line: 8, column: 3, scope: !125) +// CHECK:STDOUT: !133 = !{!126} +// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !123, line: 8, type: !25, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !137) +// CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !134, type: !20) +// CHECK:STDOUT: !136 = !DILocation(line: 8, column: 10, scope: !134) +// CHECK:STDOUT: !137 = !{!135} +// CHECK:STDOUT: !138 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !123, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !141) +// CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !138, type: !21) +// CHECK:STDOUT: !140 = !DILocation(line: 8, column: 10, scope: !138) +// CHECK:STDOUT: !141 = !{!139} +// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !123, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !124, retainedNodes: !145) +// CHECK:STDOUT: !143 = !DILocalVariable(arg: 1, scope: !142, type: !21) +// CHECK:STDOUT: !144 = !DILocation(line: 8, column: 10, scope: !142) +// CHECK:STDOUT: !145 = !{!143} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/instance_method.carbon b/toolchain/lower/testdata/impl/instance_method.carbon index d3c66e08a435..ba0f5d92cc02 100644 --- a/toolchain/lower/testdata/impl/instance_method.carbon +++ b/toolchain/lower/testdata/impl/instance_method.carbon @@ -33,37 +33,37 @@ fn Call(a: A*) -> A* { // CHECK:STDOUT: source_filename = "instance_method.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @"_CGet.A.Main:GetSelf.Main"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define ptr @"_CGet.A.Main:GetSelf.Main"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %self, !dbg !10 +// CHECK:STDOUT: ret ptr %self, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CCall.Main(ptr %a) #0 !dbg !11 { +// CHECK:STDOUT: define ptr @_CCall.Main(ptr %a) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.as.GetSelf.impl.Get.call = call ptr @"_CGet.A.Main:GetSelf.Main"(ptr %a), !dbg !14 -// CHECK:STDOUT: ret ptr %A.as.GetSelf.impl.Get.call, !dbg !15 +// CHECK:STDOUT: %A.as.GetSelf.impl.Get.call = call ptr @"_CGet.A.Main:GetSelf.Main"(ptr %a), !dbg !35 +// CHECK:STDOUT: ret ptr %A.as.GetSelf.impl.Get.call, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "instance_method.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.A.Main:GetSelf.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 7, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 28, column: 10, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 28, column: 3, scope: !11) +// CHECK:STDOUT: !14 = !DIFile(filename: "instance_method.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{!16, !16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.A.Main:GetSelf.Main", scope: null, file: !14, line: 21, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !27) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !16) +// CHECK:STDOUT: !26 = !DILocation(line: 22, column: 7, scope: !19) +// CHECK:STDOUT: !27 = !{!20} +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !14, line: 27, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !37) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !16) +// CHECK:STDOUT: !35 = !DILocation(line: 28, column: 10, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 28, column: 3, scope: !28) +// CHECK:STDOUT: !37 = !{!29} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/period_self.carbon b/toolchain/lower/testdata/impl/period_self.carbon index 92e916afb0ff..d1999ec9971e 100644 --- a/toolchain/lower/testdata/impl/period_self.carbon +++ b/toolchain/lower/testdata/impl/period_self.carbon @@ -45,65 +45,65 @@ fn G(a: A(B)) { // CHECK:STDOUT: ; ModuleID = 'library_with_period_self_in_impl.carbon' // CHECK:STDOUT: source_filename = "library_with_period_self_in_impl.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "library_with_period_self_in_impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "library_with_period_self_in_impl.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_period_self_in_impl.carbon' // CHECK:STDOUT: source_filename = "import_period_self_in_impl.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main(ptr %a) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main(ptr %a) #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.a6a60dfee2d7d273(ptr %a), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CF.Main.a6a60dfee2d7d273(ptr %a), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.a6a60dfee2d7d273(ptr %x) #0 !dbg !12 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8"(ptr %x), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.a6a60dfee2d7d273(ptr %x) #0 !dbg !32 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8"(ptr %x), !dbg !35 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8"(ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8"(ptr %self), !dbg !23 -// CHECK:STDOUT: ret ptr %1, !dbg !24 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8"(ptr %self), !dbg !45 +// CHECK:STDOUT: ret ptr %1, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!21} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_period_self_in_impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a6a60dfee2d7d273", scope: null, file: !13, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !13 = !DIFile(filename: "library_with_period_self_in_impl.carbon", directory: "") -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 1, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8", scope: null, file: !13, line: 12, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!7, !7} -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 13, column: 12, scope: !18) -// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 5, scope: !18) +// CHECK:STDOUT: !18 = !DIFile(filename: "library_with_period_self_in_impl.carbon", directory: "") +// CHECK:STDOUT: !20 = !DIFile(filename: "import_period_self_in_impl.carbon", directory: "") +// CHECK:STDOUT: !21 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !20, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !23 = !{null, !22} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !20, line: 6, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !31) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !22) +// CHECK:STDOUT: !29 = !DILocation(line: 7, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 6, column: 1, scope: !25) +// CHECK:STDOUT: !31 = !{!26} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a6a60dfee2d7d273", scope: null, file: !18, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !39) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !22) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 3, scope: !32) +// CHECK:STDOUT: !36 = !{!22, !22} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !DILocation(line: 17, column: 1, scope: !32) +// CHECK:STDOUT: !39 = !{!33} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.06ad18aa23ecf9a8", scope: null, file: !18, line: 12, type: !37, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !47) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !22) +// CHECK:STDOUT: !45 = !DILocation(line: 13, column: 12, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 13, column: 5, scope: !40) +// CHECK:STDOUT: !47 = !{!41} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/impl/thunk.carbon b/toolchain/lower/testdata/impl/thunk.carbon index 5013b265895e..c1ac0d4ec81f 100644 --- a/toolchain/lower/testdata/impl/thunk.carbon +++ b/toolchain/lower/testdata/impl/thunk.carbon @@ -75,83 +75,83 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: source_filename = "thunk.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_47.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc9_47.2 = load i32, ptr %.loc9_47.1.a, align 4, !dbg !10 -// CHECK:STDOUT: %.loc9_49.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc9_47.2, ptr %.loc9_49.2.b, align 4, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc9_47.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %.loc9_47.2 = load i32, ptr %.loc9_47.1.a, align 4, !dbg !33 +// CHECK:STDOUT: %.loc9_49.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: store i32 %.loc9_47.2, ptr %.loc9_49.2.b, align 4, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_47.1.b = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !16 -// CHECK:STDOUT: %.loc12_47.2 = load i32, ptr %.loc12_47.1.b, align 4, !dbg !16 -// CHECK:STDOUT: %.loc12_49.2.c = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: store i32 %.loc12_47.2, ptr %.loc12_49.2.c, align 4, !dbg !17 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %.loc12_47.1.b = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !42 +// CHECK:STDOUT: %.loc12_47.2 = load i32, ptr %.loc12_47.1.b, align 4, !dbg !42 +// CHECK:STDOUT: %.loc12_49.2.c = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !43 +// CHECK:STDOUT: store i32 %.loc12_47.2, ptr %.loc12_49.2.c, align 4, !dbg !43 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %b) #0 !dbg !19 { +// CHECK:STDOUT: define void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %b) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_35.1.b = getelementptr inbounds nuw { i32 }, ptr %b, i32 0, i32 0, !dbg !22 -// CHECK:STDOUT: %.loc20_35.2 = load i32, ptr %.loc20_35.1.b, align 4, !dbg !22 -// CHECK:STDOUT: %.loc20_37.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: store i32 %.loc20_35.2, ptr %.loc20_37.2.b, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc20_35.1.b = getelementptr inbounds nuw { i32 }, ptr %b, i32 0, i32 0, !dbg !51 +// CHECK:STDOUT: %.loc20_35.2 = load i32, ptr %.loc20_35.1.b, align 4, !dbg !51 +// CHECK:STDOUT: %.loc20_37.2.b = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !52 +// CHECK:STDOUT: store i32 %.loc20_35.2, ptr %.loc20_37.2.b, align 4, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_19.1.temp = alloca { i32 }, align 4, !dbg !28 -// CHECK:STDOUT: %.4.temp = alloca { i32 }, align 4, !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !29 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !29 -// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.4.temp), !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: %.loc20_19.1.temp = alloca { i32 }, align 4, !dbg !58 +// CHECK:STDOUT: %.4.temp = alloca { i32 }, align 4, !dbg !57 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !57 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.4.temp, ptr %a), !dbg !57 +// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.4.temp), !dbg !58 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.4.temp), !dbg !57 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.8a4c81221ddadf9c:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTest.Main(ptr sret({ i32 }) %return, ptr %a) #0 !dbg !47 { +// CHECK:STDOUT: define void @_CTest.Main(ptr sret({ i32 }) %return, ptr %a) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc24_20.1.temp = alloca { i32 }, align 4, !dbg !50 -// CHECK:STDOUT: %.loc24_20.2.temp = alloca { i32 }, align 4, !dbg !50 -// CHECK:STDOUT: %.loc24_19.1.temp = alloca { i32 }, align 4, !dbg !51 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_20.1.temp), !dbg !50 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_20.2.temp), !dbg !50 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_19.1.temp), !dbg !51 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc24_19.1.temp, ptr %a), !dbg !51 -// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc24_20.2.temp, ptr %.loc24_19.1.temp), !dbg !50 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc24_20.2.temp), !dbg !52 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc24_20.2.temp), !dbg !50 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc24_19.1.temp), !dbg !51 -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: %.loc24_20.1.temp = alloca { i32 }, align 4, !dbg !78 +// CHECK:STDOUT: %.loc24_20.2.temp = alloca { i32 }, align 4, !dbg !78 +// CHECK:STDOUT: %.loc24_19.1.temp = alloca { i32 }, align 4, !dbg !77 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_20.1.temp), !dbg !78 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_20.2.temp), !dbg !78 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_19.1.temp), !dbg !77 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc24_19.1.temp, ptr %a), !dbg !77 +// CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc24_20.2.temp, ptr %.loc24_19.1.temp), !dbg !78 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc24_20.2.temp), !dbg !79 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc24_20.2.temp), !dbg !78 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc24_19.1.temp), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -165,62 +165,62 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: attributes #1 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "thunk.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 43, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 37, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 30, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 12, column: 43, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 37, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 30, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "F", linkageName: "_CF.61ea2aba74ab3bf1:I.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 34, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 20, column: 28, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 20, column: 21, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) -// CHECK:STDOUT: !28 = !DILocation(line: 20, column: 3, scope: !25) -// CHECK:STDOUT: !29 = !DILocation(line: 0, scope: !25) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{null, !33} -// CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 20, column: 3, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !1, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !38 = !DISubroutineType(types: !39) -// CHECK:STDOUT: !39 = !{null, !7} -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !37, type: !7) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 3, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !46 = !DILocation(line: 20, column: 3, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !48) -// CHECK:STDOUT: !48 = !{!49} -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !7) -// CHECK:STDOUT: !50 = !DILocation(line: 24, column: 10, scope: !47) -// CHECK:STDOUT: !51 = !DILocation(line: 24, column: 19, scope: !47) -// CHECK:STDOUT: !52 = !DILocation(line: 24, column: 3, scope: !47) +// CHECK:STDOUT: !18 = !DIFile(filename: "thunk.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !36) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !21) +// CHECK:STDOUT: !33 = !DILocation(line: 9, column: 43, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 9, column: 37, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 30, scope: !28) +// CHECK:STDOUT: !36 = !{!29} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core", scope: null, file: !18, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !21) +// CHECK:STDOUT: !42 = !DILocation(line: 12, column: 43, scope: !37) +// CHECK:STDOUT: !43 = !DILocation(line: 12, column: 37, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 12, column: 30, scope: !37) +// CHECK:STDOUT: !45 = !{!38} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.61ea2aba74ab3bf1:I.Main", scope: null, file: !18, line: 20, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !21) +// CHECK:STDOUT: !51 = !DILocation(line: 20, column: 34, scope: !46) +// CHECK:STDOUT: !52 = !DILocation(line: 20, column: 28, scope: !46) +// CHECK:STDOUT: !53 = !DILocation(line: 20, column: 21, scope: !46) +// CHECK:STDOUT: !54 = !{!47} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.6a2feaaa6331eb92.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !18, line: 20, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !59) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !21) +// CHECK:STDOUT: !57 = !DILocation(line: 0, scope: !55) +// CHECK:STDOUT: !58 = !DILocation(line: 20, column: 3, scope: !55) +// CHECK:STDOUT: !59 = !{!56} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 20, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !63) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !60, type: !20) +// CHECK:STDOUT: !62 = !DILocation(line: 20, column: 3, scope: !60) +// CHECK:STDOUT: !63 = !{!61} +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a4c81221ddadf9c:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !67) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !64, type: !21) +// CHECK:STDOUT: !66 = !DILocation(line: 20, column: 3, scope: !64) +// CHECK:STDOUT: !67 = !{!65} +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !71) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !21) +// CHECK:STDOUT: !70 = !DILocation(line: 20, column: 3, scope: !68) +// CHECK:STDOUT: !71 = !{!69} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !18, line: 23, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !80) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !21) +// CHECK:STDOUT: !77 = !DILocation(line: 24, column: 19, scope: !72) +// CHECK:STDOUT: !78 = !DILocation(line: 24, column: 10, scope: !72) +// CHECK:STDOUT: !79 = !DILocation(line: 24, column: 3, scope: !72) +// CHECK:STDOUT: !80 = !{!73} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_thunk.carbon' @@ -230,46 +230,46 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: @B.val.loc18_43 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc7_45, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc7_45, i64 0, i1 false), !dbg !90 +// CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #0 !dbg !96 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !21 { +// CHECK:STDOUT: define void @_CCall.Main(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22_23.1.temp = alloca {}, align 1, !dbg !27 -// CHECK:STDOUT: %.loc22_23.3.temp = alloca {}, align 1, !dbg !27 -// CHECK:STDOUT: %.loc22_22.1.temp = alloca {}, align 1, !dbg !28 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.1.temp), !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.3.temp), !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_22.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.loc22_22.1.temp, ptr %b), !dbg !28 -// CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc22_23.3.temp, ptr %c, ptr %.loc22_22.1.temp), !dbg !27 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc22_23.3.temp), !dbg !29 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc22_23.3.temp), !dbg !27 -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %.loc22_22.1.temp), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: %.loc22_23.1.temp = alloca {}, align 1, !dbg !107 +// CHECK:STDOUT: %.loc22_23.3.temp = alloca {}, align 1, !dbg !107 +// CHECK:STDOUT: %.loc22_22.1.temp = alloca {}, align 1, !dbg !108 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.1.temp), !dbg !107 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.3.temp), !dbg !107 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_22.1.temp), !dbg !108 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.loc22_22.1.temp, ptr %b), !dbg !108 +// CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc22_23.3.temp, ptr %c, ptr %.loc22_22.1.temp), !dbg !107 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc22_23.3.temp), !dbg !109 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc22_23.3.temp), !dbg !107 +// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %.loc22_22.1.temp), !dbg !108 +// CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCallGeneric.Main(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !30 { +// CHECK:STDOUT: define void @_CCallCallGeneric.Main(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !111 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallGeneric.Main.8a681e94b982e379(ptr %return, ptr %c, ptr %b), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: call void @_CCallGeneric.Main.8a681e94b982e379(ptr %return, ptr %c, ptr %b), !dbg !120 +// CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -279,32 +279,32 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr sret({}) %return, ptr %self, ptr %_) #0 !dbg !36 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr sret({}) %return, ptr %self, ptr %_) #0 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc18_43, i64 0, i1 false), !dbg !40 -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc18_43, i64 0, i1 false), !dbg !130 +// CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallGeneric.Main.8a681e94b982e379(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !41 { +// CHECK:STDOUT: define linkonce_odr void @_CCallGeneric.Main.8a681e94b982e379(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !132 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF:thunk:I.eca2102529696f40.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %return, ptr %c, ptr %b), !dbg !45 -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: call void @"_CF:thunk:I.eca2102529696f40.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %return, ptr %c, ptr %b), !dbg !139 +// CHECK:STDOUT: ret void, !dbg !141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF:thunk:I.eca2102529696f40.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr sret({}) %return, ptr %self, ptr %x) #2 !dbg !47 { +// CHECK:STDOUT: define linkonce_odr void @"_CF:thunk:I.eca2102529696f40.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr sret({}) %return, ptr %self, ptr %x) #2 !dbg !143 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_32.2.temp = alloca {}, align 1, !dbg !51 -// CHECK:STDOUT: %.6.temp = alloca {}, align 1, !dbg !52 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_32.2.temp), !dbg !51 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !52 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.6.temp, ptr %x), !dbg !52 -// CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc18_32.2.temp, ptr %self, ptr %.6.temp), !dbg !51 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc18_32.2.temp), !dbg !51 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc18_32.2.temp), !dbg !51 -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %.6.temp), !dbg !52 -// CHECK:STDOUT: ret void, !dbg !51 +// CHECK:STDOUT: %.loc18_32.2.temp = alloca {}, align 1, !dbg !147 +// CHECK:STDOUT: %.6.temp = alloca {}, align 1, !dbg !146 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_32.2.temp), !dbg !147 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !146 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.6.temp, ptr %x), !dbg !146 +// CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc18_32.2.temp, ptr %self, ptr %.6.temp), !dbg !147 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc18_32.2.temp), !dbg !147 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %.loc18_32.2.temp), !dbg !147 +// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %.6.temp), !dbg !146 +// CHECK:STDOUT: ret void, !dbg !147 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -314,60 +314,60 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!82} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_thunk.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 36, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !1, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 0, scope: !17) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 21, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{!7, !7, !7} -// CHECK:STDOUT: !24 = !{!25, !26} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 2, scope: !21, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 22, column: 10, scope: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 22, column: 22, scope: !21) -// CHECK:STDOUT: !29 = !DILocation(line: 22, column: 3, scope: !21) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "CallCallGeneric", linkageName: "_CCallCallGeneric.Main", scope: null, file: !1, line: 29, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32, !33} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !7) -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !30, type: !7) -// CHECK:STDOUT: !34 = !DILocation(line: 30, column: 10, scope: !30) -// CHECK:STDOUT: !35 = !DILocation(line: 30, column: 3, scope: !30) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f", scope: null, file: !1, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38, !39} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !7) -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !36, type: !7) -// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 34, scope: !36) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.Main.8a681e94b982e379", scope: null, file: !1, line: 25, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43, !44} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 2, scope: !41, type: !7) -// CHECK:STDOUT: !45 = !DILocation(line: 26, column: 10, scope: !41) -// CHECK:STDOUT: !46 = !DILocation(line: 26, column: 3, scope: !41) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.eca2102529696f40.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f", scope: null, file: !1, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !48) -// CHECK:STDOUT: !48 = !{!49, !50} -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !7) -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !47, type: !7) -// CHECK:STDOUT: !51 = !DILocation(line: 18, column: 3, scope: !47) -// CHECK:STDOUT: !52 = !DILocation(line: 0, scope: !47) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !26 = !{null, !21} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !81 = !DIFile(filename: "generic_thunk.carbon", directory: "") +// CHECK:STDOUT: !82 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !81, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !83 = !{!21, !21, !21} +// CHECK:STDOUT: !84 = !DISubroutineType(types: !83) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core", scope: null, file: !81, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !91) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !21) +// CHECK:STDOUT: !90 = !DILocation(line: 7, column: 36, scope: !85) +// CHECK:STDOUT: !91 = !{!86} +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !81, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !95) +// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !21) +// CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !92) +// CHECK:STDOUT: !95 = !{!93} +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !81, type: !27, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !99) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !21) +// CHECK:STDOUT: !98 = !DILocation(line: 0, scope: !96) +// CHECK:STDOUT: !99 = !{!97} +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !81, line: 21, type: !84, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !110) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !21) +// CHECK:STDOUT: !102 = !DILocalVariable(arg: 2, scope: !100, type: !21) +// CHECK:STDOUT: !107 = !DILocation(line: 22, column: 10, scope: !100) +// CHECK:STDOUT: !108 = !DILocation(line: 22, column: 22, scope: !100) +// CHECK:STDOUT: !109 = !DILocation(line: 22, column: 3, scope: !100) +// CHECK:STDOUT: !110 = !{!101, !102} +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "CallCallGeneric", linkageName: "_CCallCallGeneric.Main", scope: null, file: !81, line: 29, type: !84, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !122) +// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !21) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 2, scope: !111, type: !21) +// CHECK:STDOUT: !120 = !DILocation(line: 30, column: 10, scope: !111) +// CHECK:STDOUT: !121 = !DILocation(line: 30, column: 3, scope: !111) +// CHECK:STDOUT: !122 = !{!112, !113} +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f", scope: null, file: !81, line: 18, type: !84, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !131) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !21) +// CHECK:STDOUT: !125 = !DILocalVariable(arg: 2, scope: !123, type: !21) +// CHECK:STDOUT: !130 = !DILocation(line: 18, column: 34, scope: !123) +// CHECK:STDOUT: !131 = !{!124, !125} +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.Main.8a681e94b982e379", scope: null, file: !81, line: 25, type: !84, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !142) +// CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !132, type: !21) +// CHECK:STDOUT: !134 = !DILocalVariable(arg: 2, scope: !132, type: !21) +// CHECK:STDOUT: !139 = !DILocation(line: 26, column: 10, scope: !132) +// CHECK:STDOUT: !141 = !DILocation(line: 26, column: 3, scope: !132) +// CHECK:STDOUT: !142 = !{!133, !134} +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.eca2102529696f40.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f", scope: null, file: !81, line: 18, type: !84, spFlags: DISPFlagDefinition, unit: !82, retainedNodes: !148) +// CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !143, type: !21) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 2, scope: !143, type: !21) +// CHECK:STDOUT: !146 = !DILocation(line: 0, scope: !143) +// CHECK:STDOUT: !147 = !DILocation(line: 18, column: 3, scope: !143) +// CHECK:STDOUT: !148 = !{!144, !145} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/index/array_element_access.carbon b/toolchain/lower/testdata/index/array_element_access.carbon index 24bf40e6e188..3c065270f52b 100644 --- a/toolchain/lower/testdata/index/array_element_access.carbon +++ b/toolchain/lower/testdata/index/array_element_access.carbon @@ -28,81 +28,81 @@ fn Run() { // CHECK:STDOUT: @array.loc14_40 = internal constant [2 x i32] [i32 1, i32 2] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CA.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CA.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.102.loc12_37, i64 8, i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.102.loc12_37, i64 8, i1 false), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CB.Main(ptr sret([2 x i32]) %return) #0 !dbg !10 { +// CHECK:STDOUT: define void @_CB.Main(ptr sret([2 x i32]) %return) #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_39.3.array.index = getelementptr inbounds [2 x i32], ptr %return, i32 0, i64 0, !dbg !11 -// CHECK:STDOUT: %.loc14_39.6.array.index = getelementptr inbounds [2 x i32], ptr %return, i32 0, i64 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @array.loc14_40, i64 8, i1 false), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc14_39.3.array.index = getelementptr inbounds [2 x i32], ptr %return, i32 0, i64 0, !dbg !38 +// CHECK:STDOUT: %.loc14_39.6.array.index = getelementptr inbounds [2 x i32], ptr %return, i32 0, i64 1, !dbg !38 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @array.loc14_40, i64 8, i1 false), !dbg !39 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !13 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [2 x i32], align 4, !dbg !17 -// CHECK:STDOUT: %.loc17_28.1.temp = alloca { i32, i32 }, align 4, !dbg !18 -// CHECK:STDOUT: %b.var = alloca i32, align 4, !dbg !19 -// CHECK:STDOUT: %_.var.loc19 = alloca i32, align 4, !dbg !20 -// CHECK:STDOUT: %_.var.loc20 = alloca i32, align 4, !dbg !21 -// CHECK:STDOUT: %.loc20_18.1.temp = alloca [2 x i32], align 4, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_28.1.temp), !dbg !18 -// CHECK:STDOUT: call void @_CA.Main(ptr %.loc17_28.1.temp), !dbg !18 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc17_28.1.temp, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: %.loc17_28.3 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !18 -// CHECK:STDOUT: %.loc17_28.4.array.index = getelementptr inbounds [2 x i32], ptr %a.var, i32 0, i64 0, !dbg !18 -// CHECK:STDOUT: store i32 %.loc17_28.3, ptr %.loc17_28.4.array.index, align 4, !dbg !18 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc17_28.1.temp, i32 0, i32 1, !dbg !18 -// CHECK:STDOUT: %.loc17_28.6 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !18 -// CHECK:STDOUT: %.loc17_28.7.array.index = getelementptr inbounds [2 x i32], ptr %a.var, i32 0, i64 1, !dbg !18 -// CHECK:STDOUT: store i32 %.loc17_28.6, ptr %.loc17_28.7.array.index, align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !19 -// CHECK:STDOUT: store i32 1, ptr %b.var, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc19), !dbg !20 -// CHECK:STDOUT: %.loc19_18 = load i32, ptr %b.var, align 4, !dbg !23 -// CHECK:STDOUT: %.loc19_19.1.array.index = getelementptr inbounds [2 x i32], ptr %a.var, i32 0, i32 %.loc19_18, !dbg !24 -// CHECK:STDOUT: %.loc19_19.2 = load i32, ptr %.loc19_19.1.array.index, align 4, !dbg !24 -// CHECK:STDOUT: store i32 %.loc19_19.2, ptr %_.var.loc19, align 4, !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc20), !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.1.temp), !dbg !22 -// CHECK:STDOUT: call void @_CB.Main(ptr %.loc20_18.1.temp), !dbg !22 -// CHECK:STDOUT: %.loc20_21.1.array.index = getelementptr inbounds [2 x i32], ptr %.loc20_18.1.temp, i32 0, i32 1, !dbg !22 -// CHECK:STDOUT: %.loc20_21.2 = load i32, ptr %.loc20_21.1.array.index, align 4, !dbg !22 -// CHECK:STDOUT: store i32 %.loc20_21.2, ptr %_.var.loc20, align 4, !dbg !21 -// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %.loc20_18.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc20), !dbg !21 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc19), !dbg !20 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %b.var), !dbg !19 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc17_28.1.temp), !dbg !18 -// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %a.var), !dbg !17 -// CHECK:STDOUT: ret i32 0, !dbg !25 +// CHECK:STDOUT: %a.var = alloca [2 x i32], align 4, !dbg !41 +// CHECK:STDOUT: %.loc17_28.1.temp = alloca { i32, i32 }, align 4, !dbg !42 +// CHECK:STDOUT: %b.var = alloca i32, align 4, !dbg !44 +// CHECK:STDOUT: %_.var.loc19 = alloca i32, align 4, !dbg !46 +// CHECK:STDOUT: %_.var.loc20 = alloca i32, align 4, !dbg !50 +// CHECK:STDOUT: %.loc20_18.1.temp = alloca [2 x i32], align 4, !dbg !51 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !41 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_28.1.temp), !dbg !42 +// CHECK:STDOUT: call void @_CA.Main(ptr %.loc17_28.1.temp), !dbg !42 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc17_28.1.temp, i32 0, i32 0, !dbg !42 +// CHECK:STDOUT: %.loc17_28.3 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !42 +// CHECK:STDOUT: %.loc17_28.4.array.index = getelementptr inbounds [2 x i32], ptr %a.var, i32 0, i64 0, !dbg !42 +// CHECK:STDOUT: store i32 %.loc17_28.3, ptr %.loc17_28.4.array.index, align 4, !dbg !42 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc17_28.1.temp, i32 0, i32 1, !dbg !42 +// CHECK:STDOUT: %.loc17_28.6 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !42 +// CHECK:STDOUT: %.loc17_28.7.array.index = getelementptr inbounds [2 x i32], ptr %a.var, i32 0, i64 1, !dbg !42 +// CHECK:STDOUT: store i32 %.loc17_28.6, ptr %.loc17_28.7.array.index, align 4, !dbg !42 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !44 +// CHECK:STDOUT: store i32 1, ptr %b.var, align 4, !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc19), !dbg !46 +// CHECK:STDOUT: %.loc19_18 = load i32, ptr %b.var, align 4, !dbg !48 +// CHECK:STDOUT: %.loc19_19.1.array.index = getelementptr inbounds [2 x i32], ptr %a.var, i32 0, i32 %.loc19_18, !dbg !47 +// CHECK:STDOUT: %.loc19_19.2 = load i32, ptr %.loc19_19.1.array.index, align 4, !dbg !47 +// CHECK:STDOUT: store i32 %.loc19_19.2, ptr %_.var.loc19, align 4, !dbg !46 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc20), !dbg !50 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.1.temp), !dbg !51 +// CHECK:STDOUT: call void @_CB.Main(ptr %.loc20_18.1.temp), !dbg !51 +// CHECK:STDOUT: %.loc20_21.1.array.index = getelementptr inbounds [2 x i32], ptr %.loc20_18.1.temp, i32 0, i32 1, !dbg !51 +// CHECK:STDOUT: %.loc20_21.2 = load i32, ptr %.loc20_21.1.array.index, align 4, !dbg !51 +// CHECK:STDOUT: store i32 %.loc20_21.2, ptr %_.var.loc20, align 4, !dbg !50 +// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %.loc20_18.1.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc20), !dbg !50 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc19), !dbg !46 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %b.var), !dbg !44 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc17_28.1.temp), !dbg !42 +// CHECK:STDOUT: call void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %a.var), !dbg !41 +// CHECK:STDOUT: ret i32 0, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.bdc700786da40234:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -120,49 +120,49 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "array_element_access.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 12, column: 31, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 12, column: 24, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 34, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 27, scope: !10) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 16, type: !14, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 3, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 26, scope: !13) -// CHECK:STDOUT: !19 = !DILocation(line: 18, column: 3, scope: !13) -// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 3, scope: !13) -// CHECK:STDOUT: !21 = !DILocation(line: 20, column: 3, scope: !13) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 16, scope: !13) -// CHECK:STDOUT: !23 = !DILocation(line: 19, column: 18, scope: !13) -// CHECK:STDOUT: !24 = !DILocation(line: 19, column: 16, scope: !13) -// CHECK:STDOUT: !25 = !DILocation(line: 16, column: 1, scope: !13) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !16} -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !16) -// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 16, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc700786da40234:core.Destroy.Core", scope: null, file: !1, line: 20, type: !33, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !33 = !DISubroutineType(types: !34) -// CHECK:STDOUT: !34 = !{null, !7} -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !32, type: !7) -// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 16, scope: !32) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 17, type: !33, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) -// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 26, scope: !38) +// CHECK:STDOUT: !18 = !DIFile(filename: "array_element_access.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main", scope: null, file: !18, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 12, column: 31, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 12, column: 24, scope: !30) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main", scope: null, file: !18, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !38 = !DILocation(line: 14, column: 34, scope: !35) +// CHECK:STDOUT: !39 = !DILocation(line: 14, column: 27, scope: !35) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 16, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 3, scope: !40) +// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 26, scope: !40) +// CHECK:STDOUT: !44 = !DILocation(line: 18, column: 3, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 3, scope: !40) +// CHECK:STDOUT: !47 = !DILocation(line: 19, column: 16, scope: !40) +// CHECK:STDOUT: !48 = !DILocation(line: 19, column: 18, scope: !40) +// CHECK:STDOUT: !50 = !DILocation(line: 20, column: 3, scope: !40) +// CHECK:STDOUT: !51 = !DILocation(line: 20, column: 16, scope: !40) +// CHECK:STDOUT: !53 = !DILocation(line: 16, column: 1, scope: !40) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !57) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !20) +// CHECK:STDOUT: !56 = !DILocation(line: 20, column: 16, scope: !54) +// CHECK:STDOUT: !57 = !{!55} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc700786da40234:core.Destroy.Core", scope: null, file: !18, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !61) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !21) +// CHECK:STDOUT: !60 = !DILocation(line: 20, column: 16, scope: !58) +// CHECK:STDOUT: !61 = !{!59} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !65) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !21) +// CHECK:STDOUT: !64 = !DILocation(line: 17, column: 26, scope: !62) +// CHECK:STDOUT: !65 = !{!63} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interface/assoc.carbon b/toolchain/lower/testdata/interface/assoc.carbon index 35af79d8b755..8e15e14682e7 100644 --- a/toolchain/lower/testdata/interface/assoc.carbon +++ b/toolchain/lower/testdata/interface/assoc.carbon @@ -21,22 +21,22 @@ fn F() { I.Assoc; } // CHECK:STDOUT: source_filename = "assoc.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "assoc.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 17, column: 1, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "assoc.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !14, line: 17, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 17, column: 1, scope: !18) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interface/basic.carbon b/toolchain/lower/testdata/interface/basic.carbon index 31b13a5ef4a6..7e9fa72b23a8 100644 --- a/toolchain/lower/testdata/interface/basic.carbon +++ b/toolchain/lower/testdata/interface/basic.carbon @@ -39,59 +39,59 @@ fn CallF() { // CHECK:STDOUT: %type.10 = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(%type.10 %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(%type.10 %_) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare %type.10 @_CG.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define %type.10 @_CH.Main() #0 !dbg !11 { +// CHECK:STDOUT: define %type.10 @_CH.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call %type.10 @_CG.Main(), !dbg !14 -// CHECK:STDOUT: ret %type.10 %G.call, !dbg !15 +// CHECK:STDOUT: %G.call = call %type.10 @_CG.Main(), !dbg !31 +// CHECK:STDOUT: ret %type.10 %G.call, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CAssoc.C.Main:I.Main"() #0 !dbg !16 { +// CHECK:STDOUT: define void @"_CAssoc.C.Main:I.Main"() #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !20 { +// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(%type.10 zeroinitializer), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @_CF.Main(%type.10 zeroinitializer), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !1, line: 23, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!7} -// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 22, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 15, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Assoc", linkageName: "_CAssoc.C.Main:I.Main", scope: null, file: !1, line: 27, type: !17, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null} -// CHECK:STDOUT: !19 = !DILocation(line: 27, column: 5, scope: !16) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 31, type: !17, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DILocation(line: 32, column: 3, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 31, column: 1, scope: !20) +// CHECK:STDOUT: !14 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !17 = !{null, !16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = !{!16} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !14, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !15, retainedNodes: !27) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !16) +// CHECK:STDOUT: !26 = !DILocation(line: 19, column: 1, scope: !23) +// CHECK:STDOUT: !27 = !{!24} +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !14, line: 23, type: !20, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !31 = !DILocation(line: 23, column: 22, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 23, column: 15, scope: !28) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Assoc", linkageName: "_CAssoc.C.Main:I.Main", scope: null, file: !14, line: 27, type: !22, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !34 = !DILocation(line: 27, column: 5, scope: !33) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !14, line: 31, type: !22, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !36 = !DILocation(line: 32, column: 3, scope: !35) +// CHECK:STDOUT: !37 = !DILocation(line: 31, column: 1, scope: !35) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interface/mangle_declared_class.carbon b/toolchain/lower/testdata/interface/mangle_declared_class.carbon index 427714c49613..a8b6face458a 100644 --- a/toolchain/lower/testdata/interface/mangle_declared_class.carbon +++ b/toolchain/lower/testdata/interface/mangle_declared_class.carbon @@ -31,30 +31,30 @@ impl D as N { // CHECK:STDOUT: source_filename = "mangle_declared_class.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.C.Main:I.Main"() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.D.Main:I.Main"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.D.Main:I.Main"() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "mangle_declared_class.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.D.Main:I.Main", scope: null, file: !1, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 26, column: 3, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "mangle_declared_class.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.Main", scope: null, file: !14, line: 18, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 18, column: 3, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "F", linkageName: "_CF.D.Main:I.Main", scope: null, file: !14, line: 26, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 26, column: 3, scope: !20) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interface/modifiers.carbon b/toolchain/lower/testdata/interface/modifiers.carbon index 3f9b92337b93..5257018a8f76 100644 --- a/toolchain/lower/testdata/interface/modifiers.carbon +++ b/toolchain/lower/testdata/interface/modifiers.carbon @@ -148,83 +148,83 @@ fn F() { // CHECK:STDOUT: source_filename = "default_interfaces.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CHello.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CHello.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "default_interfaces.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Hello", linkageName: "_CHello.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 4, column: 1, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "default_interfaces.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Hello", linkageName: "_CHello.Main", scope: null, file: !14, line: 4, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 4, column: 1, scope: !18) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'final_interfaces.carbon' // CHECK:STDOUT: source_filename = "final_interfaces.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!21} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "final_interfaces.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIFile(filename: "final_interfaces.carbon", directory: "") +// CHECK:STDOUT: !21 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !20, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'default_function.carbon' // CHECK:STDOUT: source_filename = "default_function.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallFn.Main.794e85173e977a8b(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CCallFn.Main.794e85173e977a8b(), !dbg !25 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallFn.Main.794e85173e977a8b() #0 !dbg !9 { -// CHECK:STDOUT: call void @_CF.DefaultFn.Main.794e85173e977a8b(), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: define linkonce_odr void @_CCallFn.Main.794e85173e977a8b() #0 !dbg !27 { +// CHECK:STDOUT: call void @_CF.DefaultFn.Main.794e85173e977a8b(), !dbg !28 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CHello.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.DefaultFn.Main.794e85173e977a8b() #0 !dbg !13 { -// CHECK:STDOUT: call void @_CHello.Main(), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: define linkonce_odr void @_CF.DefaultFn.Main.794e85173e977a8b() #0 !dbg !30 { +// CHECK:STDOUT: call void @_CHello.Main(), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "default_function.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "CallFn", linkageName: "_CCallFn.Main.794e85173e977a8b", scope: null, file: !10, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DIFile(filename: "default_interfaces.carbon", directory: "") -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 3, scope: !9) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 1, scope: !9) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "F", linkageName: "_CF.DefaultFn.Main.794e85173e977a8b", scope: null, file: !10, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 20, scope: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !13) +// CHECK:STDOUT: !14 = !DIFile(filename: "default_interfaces.carbon", directory: "") +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !22 = !DIFile(filename: "default_function.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !22, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 10, column: 3, scope: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 9, column: 1, scope: !24) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "CallFn", linkageName: "_CCallFn.Main.794e85173e977a8b", scope: null, file: !14, line: 16, type: !17, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 17, column: 3, scope: !27) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 1, scope: !27) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.DefaultFn.Main.794e85173e977a8b", scope: null, file: !14, line: 7, type: !17, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !31 = !DILocation(line: 7, column: 20, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 7, column: 3, scope: !30) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'default_method.carbon' @@ -234,81 +234,81 @@ fn F() { // CHECK:STDOUT: @C.val.loc10_15.6 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_15.2.temp = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_15.2.temp), !dbg !7 -// CHECK:STDOUT: call void @_CCallMethod.Main.805a971dc5455081(ptr @C.val.loc10_15.6), !dbg !8 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %.loc10_15.2.temp = alloca {}, align 1, !dbg !39 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_15.2.temp), !dbg !39 +// CHECK:STDOUT: call void @_CCallMethod.Main.805a971dc5455081(ptr @C.val.loc10_15.6), !dbg !43 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !39 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallMethod.Main.805a971dc5455081(ptr %t) #0 !dbg !17 { -// CHECK:STDOUT: call void @_CM.DefaultMethod.Main.805a971dc5455081(ptr %t), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @_CCallMethod.Main.805a971dc5455081(ptr %t) #0 !dbg !49 { +// CHECK:STDOUT: call void @_CM.DefaultMethod.Main.805a971dc5455081(ptr %t), !dbg !52 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CHello.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CM.DefaultMethod.Main.805a971dc5455081(ptr %self) #0 !dbg !23 { -// CHECK:STDOUT: call void @_CWorld.Main.9522ff908e97e267(ptr %self), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: define linkonce_odr void @_CM.DefaultMethod.Main.805a971dc5455081(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: call void @_CWorld.Main.9522ff908e97e267(ptr %self), !dbg !59 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CWorld.Main.9522ff908e97e267(ptr %t) #0 !dbg !28 { -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: define linkonce_odr void @_CWorld.Main.9522ff908e97e267(ptr %t) #0 !dbg !62 { +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!34} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "default_method.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 14, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 11, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 10, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 10, column: 14, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "CallMethod", linkageName: "_CCallMethod.Main.805a971dc5455081", scope: null, file: !18, line: 20, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !18 = !DIFile(filename: "default_interfaces.carbon", directory: "") -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) -// CHECK:STDOUT: !21 = !DILocation(line: 21, column: 3, scope: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 1, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "M", linkageName: "_CM.DefaultMethod.Main.805a971dc5455081", scope: null, file: !18, line: 13, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !13) -// CHECK:STDOUT: !26 = !DILocation(line: 13, column: 24, scope: !23) -// CHECK:STDOUT: !27 = !DILocation(line: 13, column: 3, scope: !23) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "World", linkageName: "_CWorld.Main.9522ff908e97e267", scope: null, file: !18, line: 10, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !13) -// CHECK:STDOUT: !31 = !DILocation(line: 10, column: 1, scope: !28) +// CHECK:STDOUT: !14 = !DIFile(filename: "default_interfaces.carbon", directory: "") +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !33 = !DIFile(filename: "default_method.carbon", directory: "") +// CHECK:STDOUT: !34 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !33, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{null, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !33, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !39 = !DILocation(line: 10, column: 14, scope: !38) +// CHECK:STDOUT: !43 = !DILocation(line: 11, column: 3, scope: !38) +// CHECK:STDOUT: !44 = !DILocation(line: 9, column: 1, scope: !38) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !33, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !35) +// CHECK:STDOUT: !47 = !DILocation(line: 10, column: 14, scope: !45) +// CHECK:STDOUT: !48 = !{!46} +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "CallMethod", linkageName: "_CCallMethod.Main.805a971dc5455081", scope: null, file: !14, line: 20, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !54) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !35) +// CHECK:STDOUT: !52 = !DILocation(line: 21, column: 3, scope: !49) +// CHECK:STDOUT: !53 = !DILocation(line: 20, column: 1, scope: !49) +// CHECK:STDOUT: !54 = !{!50} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "M", linkageName: "_CM.DefaultMethod.Main.805a971dc5455081", scope: null, file: !14, line: 13, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !61) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !35) +// CHECK:STDOUT: !59 = !DILocation(line: 13, column: 24, scope: !55) +// CHECK:STDOUT: !60 = !DILocation(line: 13, column: 3, scope: !55) +// CHECK:STDOUT: !61 = !{!56} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "World", linkageName: "_CWorld.Main.9522ff908e97e267", scope: null, file: !14, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !66) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !35) +// CHECK:STDOUT: !65 = !DILocation(line: 10, column: 1, scope: !62) +// CHECK:STDOUT: !66 = !{!63} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'default_function_overridden.carbon' @@ -318,41 +318,41 @@ fn F() { // CHECK:STDOUT: @C.val.loc9_23.6 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CClone.C.Main(ptr %other) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CClone.C.Main(ptr %other) #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:DefaultFn.Main"() #0 !dbg !11 { +// CHECK:STDOUT: define void @"_CF.C.Main:DefaultFn.Main"() #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_23.2.temp = alloca {}, align 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_23.2.temp), !dbg !14 -// CHECK:STDOUT: call void @_CClone.C.Main(ptr @C.val.loc9_23.6), !dbg !15 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %.loc9_23.2.temp = alloca {}, align 1, !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_23.2.temp), !dbg !75 +// CHECK:STDOUT: call void @_CClone.C.Main(ptr @C.val.loc9_23.6), !dbg !76 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !75 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !21 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallFn.Main.794e85173e977a8b(), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: call void @_CCallFn.Main.794e85173e977a8b(), !dbg !83 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallFn.Main.794e85173e977a8b() #0 !dbg !24 { -// CHECK:STDOUT: call void @"_CF.C.Main:DefaultFn.Main"(), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: define linkonce_odr void @_CCallFn.Main.794e85173e977a8b() #0 !dbg !85 { +// CHECK:STDOUT: call void @"_CF.C.Main:DefaultFn.Main"(), !dbg !86 +// CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CHello.Main() @@ -360,37 +360,37 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!68} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "default_function_overridden.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Clone", linkageName: "_CClone.C.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:DefaultFn.Main", scope: null, file: !1, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 9, column: 22, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 14, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 5, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 22, scope: !17) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !22 = !DILocation(line: 14, column: 3, scope: !21) -// CHECK:STDOUT: !23 = !DILocation(line: 13, column: 1, scope: !21) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "CallFn", linkageName: "_CCallFn.Main.794e85173e977a8b", scope: null, file: !25, line: 16, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !25 = !DIFile(filename: "default_interfaces.carbon", directory: "") -// CHECK:STDOUT: !26 = !DILocation(line: 17, column: 3, scope: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 16, column: 1, scope: !24) +// CHECK:STDOUT: !14 = !DIFile(filename: "default_interfaces.carbon", directory: "") +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{null, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !67 = !DIFile(filename: "default_function_overridden.carbon", directory: "") +// CHECK:STDOUT: !68 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !67, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Clone", linkageName: "_CClone.C.Main", scope: null, file: !67, line: 6, type: !37, spFlags: DISPFlagDefinition, unit: !68, retainedNodes: !73) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !35) +// CHECK:STDOUT: !72 = !DILocation(line: 6, column: 3, scope: !69) +// CHECK:STDOUT: !73 = !{!70} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:DefaultFn.Main", scope: null, file: !67, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !68) +// CHECK:STDOUT: !75 = !DILocation(line: 9, column: 22, scope: !74) +// CHECK:STDOUT: !76 = !DILocation(line: 9, column: 14, scope: !74) +// CHECK:STDOUT: !77 = !DILocation(line: 9, column: 5, scope: !74) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !67, line: 9, type: !37, spFlags: DISPFlagDefinition, unit: !68, retainedNodes: !81) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !35) +// CHECK:STDOUT: !80 = !DILocation(line: 9, column: 22, scope: !78) +// CHECK:STDOUT: !81 = !{!79} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !67, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !68) +// CHECK:STDOUT: !83 = !DILocation(line: 14, column: 3, scope: !82) +// CHECK:STDOUT: !84 = !DILocation(line: 13, column: 1, scope: !82) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "CallFn", linkageName: "_CCallFn.Main.794e85173e977a8b", scope: null, file: !14, line: 16, type: !17, spFlags: DISPFlagDefinition, unit: !68) +// CHECK:STDOUT: !86 = !DILocation(line: 17, column: 3, scope: !85) +// CHECK:STDOUT: !87 = !DILocation(line: 16, column: 1, scope: !85) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'default_method_overridden.carbon' @@ -400,41 +400,41 @@ fn F() { // CHECK:STDOUT: @C.val.loc14_15.6 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCopy.C.Main(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCopy.C.Main(ptr %self) #0 !dbg !90 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CM.C.Main:DefaultMethod.Main"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define void @"_CM.C.Main:DefaultMethod.Main"(ptr %self) #0 !dbg !95 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCopy.C.Main(ptr %self), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: call void @_CCopy.C.Main(ptr %self), !dbg !98 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !16 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !101 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_15.2.temp = alloca {}, align 1, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_15.2.temp), !dbg !19 -// CHECK:STDOUT: call void @_CCallMethod.Main.805a971dc5455081(ptr @C.val.loc14_15.6), !dbg !20 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %.loc14_15.2.temp = alloca {}, align 1, !dbg !102 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_15.2.temp), !dbg !102 +// CHECK:STDOUT: call void @_CCallMethod.Main.805a971dc5455081(ptr @C.val.loc14_15.6), !dbg !106 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !102 +// CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !108 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallMethod.Main.805a971dc5455081(ptr %t) #0 !dbg !26 { -// CHECK:STDOUT: call void @"_CM.C.Main:DefaultMethod.Main"(ptr %t), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: define linkonce_odr void @_CCallMethod.Main.805a971dc5455081(ptr %t) #0 !dbg !112 { +// CHECK:STDOUT: call void @"_CM.C.Main:DefaultMethod.Main"(ptr %t), !dbg !115 +// CHECK:STDOUT: ret void, !dbg !116 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CHello.Main() @@ -442,84 +442,84 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!89} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "default_method_overridden.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.C.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "M", linkageName: "_CM.C.Main:DefaultMethod.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 9, column: 18, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 5, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null} -// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 14, scope: !16) -// CHECK:STDOUT: !20 = !DILocation(line: 15, column: 3, scope: !16) -// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 1, scope: !16) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !7) -// CHECK:STDOUT: !25 = !DILocation(line: 14, column: 14, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "CallMethod", linkageName: "_CCallMethod.Main.805a971dc5455081", scope: null, file: !27, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !27 = !DIFile(filename: "default_interfaces.carbon", directory: "") -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !26, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 21, column: 3, scope: !26) -// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 1, scope: !26) +// CHECK:STDOUT: !14 = !DIFile(filename: "default_interfaces.carbon", directory: "") +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{null, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !88 = !DIFile(filename: "default_method_overridden.carbon", directory: "") +// CHECK:STDOUT: !89 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !88, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.C.Main", scope: null, file: !88, line: 6, type: !37, spFlags: DISPFlagDefinition, unit: !89, retainedNodes: !94) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !35) +// CHECK:STDOUT: !93 = !DILocation(line: 6, column: 3, scope: !90) +// CHECK:STDOUT: !94 = !{!91} +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "M", linkageName: "_CM.C.Main:DefaultMethod.Main", scope: null, file: !88, line: 9, type: !37, spFlags: DISPFlagDefinition, unit: !89, retainedNodes: !100) +// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !95, type: !35) +// CHECK:STDOUT: !98 = !DILocation(line: 9, column: 18, scope: !95) +// CHECK:STDOUT: !99 = !DILocation(line: 9, column: 5, scope: !95) +// CHECK:STDOUT: !100 = !{!96} +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !88, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !89) +// CHECK:STDOUT: !102 = !DILocation(line: 14, column: 14, scope: !101) +// CHECK:STDOUT: !106 = !DILocation(line: 15, column: 3, scope: !101) +// CHECK:STDOUT: !107 = !DILocation(line: 13, column: 1, scope: !101) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !88, line: 14, type: !37, spFlags: DISPFlagDefinition, unit: !89, retainedNodes: !111) +// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !35) +// CHECK:STDOUT: !110 = !DILocation(line: 14, column: 14, scope: !108) +// CHECK:STDOUT: !111 = !{!109} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "CallMethod", linkageName: "_CCallMethod.Main.805a971dc5455081", scope: null, file: !14, line: 20, type: !37, spFlags: DISPFlagDefinition, unit: !89, retainedNodes: !117) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !35) +// CHECK:STDOUT: !115 = !DILocation(line: 21, column: 3, scope: !112) +// CHECK:STDOUT: !116 = !DILocation(line: 20, column: 1, scope: !112) +// CHECK:STDOUT: !117 = !{!113} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'final_function.carbon' // CHECK:STDOUT: source_filename = "final_function.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !120 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallFn.Main.e342d6e8ff5d87ae(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CCallFn.Main.e342d6e8ff5d87ae(), !dbg !121 +// CHECK:STDOUT: ret void, !dbg !122 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallFn.Main.e342d6e8ff5d87ae() #0 !dbg !9 { -// CHECK:STDOUT: call void @_CF.FinalFn.Main.e342d6e8ff5d87ae(), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: define linkonce_odr void @_CCallFn.Main.e342d6e8ff5d87ae() #0 !dbg !123 { +// CHECK:STDOUT: call void @_CF.FinalFn.Main.e342d6e8ff5d87ae(), !dbg !124 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.FinalFn.Main.e342d6e8ff5d87ae() #0 !dbg !13 { -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: define linkonce_odr void @_CF.FinalFn.Main.e342d6e8ff5d87ae() #0 !dbg !126 { +// CHECK:STDOUT: ret void, !dbg !127 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!119} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "final_function.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "CallFn", linkageName: "_CCallFn.Main.e342d6e8ff5d87ae", scope: null, file: !10, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DIFile(filename: "final_interfaces.carbon", directory: "") -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 3, scope: !9) -// CHECK:STDOUT: !12 = !DILocation(line: 12, column: 1, scope: !9) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "F", linkageName: "_CF.FinalFn.Main.e342d6e8ff5d87ae", scope: null, file: !10, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 5, column: 3, scope: !13) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !20 = !DIFile(filename: "final_interfaces.carbon", directory: "") +// CHECK:STDOUT: !118 = !DIFile(filename: "final_function.carbon", directory: "") +// CHECK:STDOUT: !119 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !118, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !118, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !119) +// CHECK:STDOUT: !121 = !DILocation(line: 10, column: 3, scope: !120) +// CHECK:STDOUT: !122 = !DILocation(line: 9, column: 1, scope: !120) +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "CallFn", linkageName: "_CCallFn.Main.e342d6e8ff5d87ae", scope: null, file: !20, line: 12, type: !17, spFlags: DISPFlagDefinition, unit: !119) +// CHECK:STDOUT: !124 = !DILocation(line: 13, column: 3, scope: !123) +// CHECK:STDOUT: !125 = !DILocation(line: 12, column: 1, scope: !123) +// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "F", linkageName: "_CF.FinalFn.Main.e342d6e8ff5d87ae", scope: null, file: !20, line: 5, type: !17, spFlags: DISPFlagDefinition, unit: !119) +// CHECK:STDOUT: !127 = !DILocation(line: 5, column: 3, scope: !126) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'final_method.carbon' @@ -529,66 +529,66 @@ fn F() { // CHECK:STDOUT: @C.val.loc10_15.6 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !130 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_15.2.temp = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_15.2.temp), !dbg !7 -// CHECK:STDOUT: call void @_CCallMethod.Main.96e0ef8a617a6362(ptr @C.val.loc10_15.6), !dbg !8 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %.loc10_15.2.temp = alloca {}, align 1, !dbg !131 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_15.2.temp), !dbg !131 +// CHECK:STDOUT: call void @_CCallMethod.Main.96e0ef8a617a6362(ptr @C.val.loc10_15.6), !dbg !135 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !131 +// CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !137 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallMethod.Main.96e0ef8a617a6362(ptr %t) #0 !dbg !17 { -// CHECK:STDOUT: call void @_CM.FinalMethod.Main.96e0ef8a617a6362(ptr %t), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @_CCallMethod.Main.96e0ef8a617a6362(ptr %t) #0 !dbg !141 { +// CHECK:STDOUT: call void @_CM.FinalMethod.Main.96e0ef8a617a6362(ptr %t), !dbg !144 +// CHECK:STDOUT: ret void, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CM.FinalMethod.Main.96e0ef8a617a6362(ptr %self) #0 !dbg !23 { -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: define linkonce_odr void @_CM.FinalMethod.Main.96e0ef8a617a6362(ptr %self) #0 !dbg !147 { +// CHECK:STDOUT: ret void, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!129} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "final_method.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 14, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 11, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 10, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 10, column: 14, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "CallMethod", linkageName: "_CCallMethod.Main.96e0ef8a617a6362", scope: null, file: !18, line: 16, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !18 = !DIFile(filename: "final_interfaces.carbon", directory: "") -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) -// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 3, scope: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 16, column: 1, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "M", linkageName: "_CM.FinalMethod.Main.96e0ef8a617a6362", scope: null, file: !18, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !13) -// CHECK:STDOUT: !26 = !DILocation(line: 9, column: 3, scope: !23) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !20 = !DIFile(filename: "final_interfaces.carbon", directory: "") +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{null, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !128 = !DIFile(filename: "final_method.carbon", directory: "") +// CHECK:STDOUT: !129 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !128, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !130 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !128, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !129) +// CHECK:STDOUT: !131 = !DILocation(line: 10, column: 14, scope: !130) +// CHECK:STDOUT: !135 = !DILocation(line: 11, column: 3, scope: !130) +// CHECK:STDOUT: !136 = !DILocation(line: 9, column: 1, scope: !130) +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !128, line: 10, type: !37, spFlags: DISPFlagDefinition, unit: !129, retainedNodes: !140) +// CHECK:STDOUT: !138 = !DILocalVariable(arg: 1, scope: !137, type: !35) +// CHECK:STDOUT: !139 = !DILocation(line: 10, column: 14, scope: !137) +// CHECK:STDOUT: !140 = !{!138} +// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "CallMethod", linkageName: "_CCallMethod.Main.96e0ef8a617a6362", scope: null, file: !20, line: 16, type: !37, spFlags: DISPFlagDefinition, unit: !129, retainedNodes: !146) +// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !141, type: !35) +// CHECK:STDOUT: !144 = !DILocation(line: 17, column: 3, scope: !141) +// CHECK:STDOUT: !145 = !DILocation(line: 16, column: 1, scope: !141) +// CHECK:STDOUT: !146 = !{!142} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "M", linkageName: "_CM.FinalMethod.Main.96e0ef8a617a6362", scope: null, file: !20, line: 9, type: !37, spFlags: DISPFlagDefinition, unit: !129, retainedNodes: !151) +// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !35) +// CHECK:STDOUT: !150 = !DILocation(line: 9, column: 3, scope: !147) +// CHECK:STDOUT: !151 = !{!148} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interface/where.carbon b/toolchain/lower/testdata/interface/where.carbon index fb7153585989..6748db634311 100644 --- a/toolchain/lower/testdata/interface/where.carbon +++ b/toolchain/lower/testdata/interface/where.carbon @@ -60,71 +60,71 @@ fn G() { // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:I.Main"() #0 !dbg !4 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: attributes #0 = { nounwind } -// CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} -// CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.Main", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: -// CHECK:STDOUT: ; --- -// CHECK:STDOUT: ; ModuleID = 'no_period_self_dependence.carbon' -// CHECK:STDOUT: source_filename = "no_period_self_dependence.carbon" -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %a) #0 !dbg !4 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.C.Main:I.5d7343568c0b5715.Main.c8e85d84fc558684"(ptr %a), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !12 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !15 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.C.Main:I.5d7343568c0b5715.Main.c8e85d84fc558684"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define void @"_CF.C.Main:I.Main"() #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_period_self_dependence.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.5d7343568c0b5715.Main.c8e85d84fc558684", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !16, type: !7) -// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !16) +// CHECK:STDOUT: !14 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.Main", scope: null, file: !14, line: 12, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 12, column: 3, scope: !18) +// CHECK:STDOUT: +// CHECK:STDOUT: ; --- +// CHECK:STDOUT: ; ModuleID = 'no_period_self_dependence.carbon' +// CHECK:STDOUT: source_filename = "no_period_self_dependence.carbon" +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CF.Main(ptr %a) #0 !dbg !25 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @"_CF.C.Main:I.5d7343568c0b5715.Main.c8e85d84fc558684"(ptr %a), !dbg !28 +// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !31 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CF.C.Main:I.5d7343568c0b5715.Main.c8e85d84fc558684"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: attributes #0 = { nounwind } +// CHECK:STDOUT: +// CHECK:STDOUT: !llvm.dbg.cu = !{!21} +// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !20 = !DIFile(filename: "no_period_self_dependence.carbon", directory: "") +// CHECK:STDOUT: !21 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !20, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !23 = !{null, !22} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !20, line: 19, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !30) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !22) +// CHECK:STDOUT: !28 = !DILocation(line: 20, column: 3, scope: !25) +// CHECK:STDOUT: !29 = !DILocation(line: 19, column: 1, scope: !25) +// CHECK:STDOUT: !30 = !{!26} +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !20, line: 23, type: !17, spFlags: DISPFlagDefinition, unit: !21) +// CHECK:STDOUT: !34 = !DILocation(line: 23, column: 1, scope: !31) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.5d7343568c0b5715.Main.c8e85d84fc558684", scope: null, file: !20, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !39) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !22) +// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !35) +// CHECK:STDOUT: !39 = !{!36} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/array.carbon b/toolchain/lower/testdata/interop/cpp/array.carbon index 2ba9d3f0c251..36303151cae2 100644 --- a/toolchain/lower/testdata/interop/cpp/array.carbon +++ b/toolchain/lower/testdata/interop/cpp/array.carbon @@ -54,8 +54,8 @@ int H() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %retval = alloca i32, align 4 // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !12, !nonnull !15, !align !16 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !46 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !46, !nonnull !47, !align !48 // CHECK:STDOUT: call void @_CF__carbon_thunk.Main(ptr noundef nonnull align 4 dereferenceable(20) %1, ptr noundef nonnull align 4 dereferenceable(4) %retval) // CHECK:STDOUT: %2 = load i32, ptr %retval, align 4 // CHECK:STDOUT: ret i32 %2 @@ -69,7 +69,7 @@ int H() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %ref.tmp = alloca [5 x i32], align 4 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ref.tmp) #3 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %ref.tmp, ptr align 4 @constinit, i64 20, i1 false), !tbaa.struct !17 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %ref.tmp, ptr align 4 @constinit, i64 20, i1 false), !tbaa.struct !3 // CHECK:STDOUT: %call = call noundef i32 @_ZN6CarbonL1FERA5_Ki(ptr noundef nonnull align 4 dereferenceable(20) %ref.tmp) // CHECK:STDOUT: call void @llvm.lifetime.end.p0(ptr %ref.tmp) #3 // CHECK:STDOUT: ret i32 %call @@ -79,19 +79,19 @@ int H() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main(ptr %a) #3 !dbg !19 { +// CHECK:STDOUT: define i32 @_CF.Main(ptr %a) #3 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc5_43.2.array.index = getelementptr inbounds [5 x i32], ptr %a, i32 0, i32 2, !dbg !26 -// CHECK:STDOUT: %.loc5_43.3 = load i32, ptr %.loc5_43.2.array.index, align 4, !dbg !26 -// CHECK:STDOUT: ret i32 %.loc5_43.3, !dbg !27 +// CHECK:STDOUT: %.loc5_43.2.array.index = getelementptr inbounds [5 x i32], ptr %a, i32 0, i32 2, !dbg !35 +// CHECK:STDOUT: %.loc5_43.3 = load i32, ptr %.loc5_43.2.array.index, align 4, !dbg !35 +// CHECK:STDOUT: ret i32 %.loc5_43.3, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.Main(ptr %_, ptr %_1) #3 !dbg !28 { +// CHECK:STDOUT: define void @_CF__carbon_thunk.Main(ptr %_, ptr %_1) #3 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr %_), !dbg !34 -// CHECK:STDOUT: store i32 %F.call, ptr %_1, align 4, !dbg !34 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr %_), !dbg !41 +// CHECK:STDOUT: store i32 %F.call, ptr %_1, align 4, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -99,43 +99,43 @@ int H() { // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} +// CHECK:STDOUT: !llvm.module.flags = !{!49, !50, !51, !6, !7} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!53} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "array_value_param.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 int", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{} -// CHECK:STDOUT: !16 = !{i64 4} -// CHECK:STDOUT: !17 = !{i64 0, i64 20, !18} -// CHECK:STDOUT: !18 = !{!10, !10, i64 0} -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{!22, !23} -// CHECK:STDOUT: !22 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !19, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 5, column: 40, scope: !19) -// CHECK:STDOUT: !27 = !DILocation(line: 5, column: 33, scope: !19) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Main", scope: null, file: !1, line: 5, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !23, !22} -// CHECK:STDOUT: !31 = !{!32, !33} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !23) -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !28, type: !22) -// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 1, scope: !28) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!1, !1, i64 0} +// CHECK:STDOUT: !3 = !{i64 0, i64 20, !2} +// CHECK:STDOUT: !6 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !7 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !22 = !DIFile(filename: "array_value_param.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{!24, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !25, !24} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !22, line: 5, type: !27, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !37) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !25) +// CHECK:STDOUT: !35 = !DILocation(line: 5, column: 40, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 5, column: 33, scope: !30) +// CHECK:STDOUT: !37 = !{!31} +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Main", scope: null, file: !22, line: 5, type: !29, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !42) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !25) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !38, type: !24) +// CHECK:STDOUT: !41 = !DILocation(line: 5, column: 1, scope: !38) +// CHECK:STDOUT: !42 = !{!39, !40} +// CHECK:STDOUT: !43 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !44 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !45 = !{!"p1 int", !44, i64 0} +// CHECK:STDOUT: !46 = !{!45, !45, i64 0} +// CHECK:STDOUT: !47 = !{} +// CHECK:STDOUT: !48 = !{i64 4} +// CHECK:STDOUT: !49 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !50 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !51 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !52 = !{!"__libc_errno", !43, i64 0} +// CHECK:STDOUT: !53 = !{!52, !43, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/clang_code_generator_callbacks.carbon b/toolchain/lower/testdata/interop/cpp/clang_code_generator_callbacks.carbon index efdaca435cd7..5ac4126ae9f9 100644 --- a/toolchain/lower/testdata/interop/cpp/clang_code_generator_callbacks.carbon +++ b/toolchain/lower/testdata/interop/cpp/clang_code_generator_callbacks.carbon @@ -93,7 +93,7 @@ void f2() { // CHECK:STDOUT: define dso_local void @_ZN2t12f1Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !4 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -101,7 +101,7 @@ void f2() { // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define dso_local noundef i32 @_Z1fv() #0 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %0 = load i32, ptr getelementptr inbounds nuw (i8, ptr @a, i64 12), align 4, !tbaa !15 +// CHECK:STDOUT: %0 = load i32, ptr getelementptr inbounds nuw (i8, ptr @a, i64 12), align 4, !tbaa !7 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -109,7 +109,7 @@ void f2() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN2t24funcEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !9 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -117,7 +117,7 @@ void f2() { // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define dso_local void @_Z2f2v() #0 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 42, ptr @_ZN2t3IiE1iE, align 4, !tbaa !19 +// CHECK:STDOUT: store i32 42, ptr @_ZN2t3IiE1iE, align 4, !tbaa !10 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -126,28 +126,28 @@ void f2() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!16} +// CHECK:STDOUT: !llvm.module.flags = !{!17, !18, !19, !13, !14} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!21} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "clang_code_generator_callbacks.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTS2t1", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!16, !9, i64 0} -// CHECK:STDOUT: !16 = !{!"_ZTS1S", !9, i64 0} -// CHECK:STDOUT: !17 = !{!18, !18, i64 0} -// CHECK:STDOUT: !18 = !{!"p1 _ZTS2t2", !14, i64 0} -// CHECK:STDOUT: !19 = !{!9, !9, i64 0} +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"p1 _ZTS2t1", !2, i64 0} +// CHECK:STDOUT: !4 = !{!3, !3, i64 0} +// CHECK:STDOUT: !5 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !6 = !{!"_ZTS1S", !5, i64 0} +// CHECK:STDOUT: !7 = !{!6, !5, i64 0} +// CHECK:STDOUT: !8 = !{!"p1 _ZTS2t2", !2, i64 0} +// CHECK:STDOUT: !9 = !{!8, !8, i64 0} +// CHECK:STDOUT: !10 = !{!5, !5, i64 0} +// CHECK:STDOUT: !13 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !14 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !15 = !DIFile(filename: "clang_code_generator_callbacks.carbon", directory: "") +// CHECK:STDOUT: !16 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !15, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !17 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !18 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !19 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !20 = !{!"__libc_errno", !5, i64 0} +// CHECK:STDOUT: !21 = !{!20, !5, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/export/class.carbon b/toolchain/lower/testdata/interop/cpp/class/export/class.carbon index 80c1ea6e5ce7..891746239800 100644 --- a/toolchain/lower/testdata/interop/cpp/class/export/class.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/export/class.carbon @@ -104,8 +104,8 @@ fn G() { // CHECK:STDOUT: define dso_local noundef ptr @_Z4passPN6Carbon1AE(ptr noundef %p) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %p.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %p, ptr %p.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %p.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %p, ptr %p.addr, align 8, !tbaa !4 +// CHECK:STDOUT: %0 = load ptr, ptr %p.addr, align 8, !tbaa !4 // CHECK:STDOUT: ret ptr %0 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -117,39 +117,39 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDoIt.Main() #1 !dbg !15 { +// CHECK:STDOUT: define void @_CDoIt.Main() #1 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z4callv(), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z4callv(), !dbg !41 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!36} +// CHECK:STDOUT: !llvm.module.flags = !{!43, !44, !45, !19, !20} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pointer.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon1AE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "DoIt", linkageName: "_CDoIt.Main", scope: null, file: !1, line: 15, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null} -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 13, scope: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 1, scope: !15) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"p1 _ZTSN6Carbon1AE", !2, i64 0} +// CHECK:STDOUT: !4 = !{!3, !3, i64 0} +// CHECK:STDOUT: !5 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !19 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !20 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !35 = !DIFile(filename: "pointer.carbon", directory: "") +// CHECK:STDOUT: !36 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !35, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = !{null} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "DoIt", linkageName: "_CDoIt.Main", scope: null, file: !35, line: 15, type: !39, spFlags: DISPFlagDefinition, unit: !36) +// CHECK:STDOUT: !41 = !DILocation(line: 15, column: 13, scope: !40) +// CHECK:STDOUT: !42 = !DILocation(line: 15, column: 1, scope: !40) +// CHECK:STDOUT: !43 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !44 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !45 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !5, i64 0} +// CHECK:STDOUT: !47 = !{!46, !5, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'layout.carbon' @@ -185,7 +185,7 @@ fn G() { // CHECK:STDOUT: define internal void @_ZN6CarbonL11CallLayoutAEPNS_7LayoutAE(ptr noundef %0) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !108 // CHECK:STDOUT: call void @_CCallLayoutA__carbon_thunk.Main(ptr noundef nonnull align 8 dereferenceable(8) %.addr) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -194,7 +194,7 @@ fn G() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon7LayoutAD2Ev(ptr noundef nonnull align 8 dead_on_return(12) dereferenceable(12) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !108 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.LayoutA.Main"(ptr noundef nonnull align 8 dereferenceable(12) %this1) // CHECK:STDOUT: ret void @@ -218,7 +218,7 @@ fn G() { // CHECK:STDOUT: define internal void @_ZN6CarbonL11CallLayoutBEPNS_7LayoutBE(ptr noundef %0) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !110 // CHECK:STDOUT: call void @_CCallLayoutB__carbon_thunk.Main(ptr noundef nonnull align 8 dereferenceable(8) %.addr) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -227,7 +227,7 @@ fn G() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon7LayoutBD2Ev(ptr noundef nonnull align 8 dead_on_return(16) dereferenceable(16) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !110 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.LayoutB.Main"(ptr noundef nonnull align 8 dereferenceable(16) %this1) // CHECK:STDOUT: %a = getelementptr inbounds nuw %"class.Carbon::LayoutB", ptr %this1, i32 0, i32 0 @@ -251,7 +251,7 @@ fn G() { // CHECK:STDOUT: define internal void @_ZN6CarbonL11CallLayoutCEPNS_7LayoutCE(ptr noundef %0) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !112 // CHECK:STDOUT: call void @_CCallLayoutC__carbon_thunk.Main(ptr noundef nonnull align 8 dereferenceable(8) %.addr) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -260,7 +260,7 @@ fn G() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon7LayoutCD2Ev(ptr noundef nonnull align 8 dead_on_return(16) dereferenceable(16) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !112 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.LayoutC.Main"(ptr noundef nonnull align 8 dereferenceable(16) %this1) // CHECK:STDOUT: call void @_ZN6Carbon7LayoutAD2Ev(ptr noundef nonnull align 8 dead_on_return(12) dereferenceable(12) %this1) #5 @@ -274,90 +274,90 @@ fn G() { // CHECK:STDOUT: declare void @_CCallLayoutC.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutA.Main"(ptr %self) #4 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutA.Main"(ptr %self) #4 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.576418bb54cb7290:core.Destroy.Core"(ptr %self), !dbg !25 -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: call void @"_COp.576418bb54cb7290:core.Destroy.Core"(ptr %self), !dbg !57 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #5 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #5 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.21390e61793948a2:core.Destroy.Core"(ptr %self) #5 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.21390e61793948a2:core.Destroy.Core"(ptr %self) #5 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.576418bb54cb7290:core.Destroy.Core"(ptr %self) #5 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.576418bb54cb7290:core.Destroy.Core"(ptr %self) #5 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallLayoutA__carbon_thunk.Main(ptr %_) #5 !dbg !41 { +// CHECK:STDOUT: define void @_CCallLayoutA__carbon_thunk.Main(ptr %_) #5 !dbg !71 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc21 = load ptr, ptr %_, align 8, !dbg !44 -// CHECK:STDOUT: call void @_CCallLayoutA.Main(ptr %.loc21), !dbg !44 -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: %.loc21 = load ptr, ptr %_, align 8, !dbg !73 +// CHECK:STDOUT: call void @_CCallLayoutA.Main(ptr %.loc21), !dbg !73 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutB.Main"(ptr %self) #4 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutB.Main"(ptr %self) #4 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.1e05456dbecd0195:core.Destroy.Core"(ptr %self), !dbg !48 -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: call void @"_COp.1e05456dbecd0195:core.Destroy.Core"(ptr %self), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ed90af642ee14836:core.Destroy.Core"(ptr %self) #5 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.ed90af642ee14836:core.Destroy.Core"(ptr %self) #5 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e05456dbecd0195:core.Destroy.Core"(ptr %self) #5 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.1e05456dbecd0195:core.Destroy.Core"(ptr %self) #5 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallLayoutB__carbon_thunk.Main(ptr %_) #5 !dbg !57 { +// CHECK:STDOUT: define void @_CCallLayoutB__carbon_thunk.Main(ptr %_) #5 !dbg !87 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22 = load ptr, ptr %_, align 8, !dbg !60 -// CHECK:STDOUT: call void @_CCallLayoutB.Main(ptr %.loc22), !dbg !60 -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: %.loc22 = load ptr, ptr %_, align 8, !dbg !89 +// CHECK:STDOUT: call void @_CCallLayoutB.Main(ptr %.loc22), !dbg !89 +// CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutC.Main"(ptr %self) #4 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.LayoutC.Main"(ptr %self) #4 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.51e6fd9285cd1110:core.Destroy.Core"(ptr %self), !dbg !64 -// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: call void @"_COp.51e6fd9285cd1110:core.Destroy.Core"(ptr %self), !dbg !93 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.16bee2ebebabb5ed:core.Destroy.Core"(ptr %self) #5 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.16bee2ebebabb5ed:core.Destroy.Core"(ptr %self) #5 !dbg !95 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.51e6fd9285cd1110:core.Destroy.Core"(ptr %self) #5 !dbg !69 { +// CHECK:STDOUT: define weak_odr void @"_COp.51e6fd9285cd1110:core.Destroy.Core"(ptr %self) #5 !dbg !99 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !72 +// CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallLayoutC__carbon_thunk.Main(ptr %_) #5 !dbg !73 { +// CHECK:STDOUT: define void @_CCallLayoutC__carbon_thunk.Main(ptr %_) #5 !dbg !103 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc23 = load ptr, ptr %_, align 8, !dbg !76 -// CHECK:STDOUT: call void @_CCallLayoutC.Main(ptr %.loc23), !dbg !76 -// CHECK:STDOUT: ret void, !dbg !76 +// CHECK:STDOUT: %.loc23 = load ptr, ptr %_, align 8, !dbg !105 +// CHECK:STDOUT: call void @_CCallLayoutC.Main(ptr %.loc23), !dbg !105 +// CHECK:STDOUT: ret void, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -370,87 +370,87 @@ fn G() { // CHECK:STDOUT: attributes #4 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #5 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!49} +// CHECK:STDOUT: !llvm.module.flags = !{!43, !44, !45, !19, !20} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "layout.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon7LayoutAE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!16, !16, i64 0} -// CHECK:STDOUT: !16 = !{!"p1 _ZTSN6Carbon7LayoutBE", !14, i64 0} -// CHECK:STDOUT: !17 = !{!18, !18, i64 0} -// CHECK:STDOUT: !18 = !{!"p1 _ZTSN6Carbon7LayoutCE", !14, i64 0} -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.LayoutA.Main", scope: null, file: !1, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 6, column: 1, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 6, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !29} -// CHECK:STDOUT: !29 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) -// CHECK:STDOUT: !32 = !DILocation(line: 6, column: 1, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.21390e61793948a2:core.Destroy.Core", scope: null, file: !1, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !22) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 1, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.576418bb54cb7290:core.Destroy.Core", scope: null, file: !1, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !22) -// CHECK:STDOUT: !40 = !DILocation(line: 6, column: 1, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "CallLayoutA__carbon_thunk", linkageName: "_CCallLayoutA__carbon_thunk.Main", scope: null, file: !1, line: 21, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !22) -// CHECK:STDOUT: !44 = !DILocation(line: 21, column: 1, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.LayoutB.Main", scope: null, file: !1, line: 11, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !22) -// CHECK:STDOUT: !48 = !DILocation(line: 11, column: 1, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ed90af642ee14836:core.Destroy.Core", scope: null, file: !1, line: 11, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !22) -// CHECK:STDOUT: !52 = !DILocation(line: 11, column: 1, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e05456dbecd0195:core.Destroy.Core", scope: null, file: !1, line: 11, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !22) -// CHECK:STDOUT: !56 = !DILocation(line: 11, column: 1, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "CallLayoutB__carbon_thunk", linkageName: "_CCallLayoutB__carbon_thunk.Main", scope: null, file: !1, line: 22, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !22) -// CHECK:STDOUT: !60 = !DILocation(line: 22, column: 1, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.LayoutC.Main", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !22) -// CHECK:STDOUT: !64 = !DILocation(line: 16, column: 1, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.16bee2ebebabb5ed:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !66) -// CHECK:STDOUT: !66 = !{!67} -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !22) -// CHECK:STDOUT: !68 = !DILocation(line: 16, column: 1, scope: !65) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51e6fd9285cd1110:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !70) -// CHECK:STDOUT: !70 = !{!71} -// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !69, type: !22) -// CHECK:STDOUT: !72 = !DILocation(line: 16, column: 1, scope: !69) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "CallLayoutC__carbon_thunk", linkageName: "_CCallLayoutC__carbon_thunk.Main", scope: null, file: !1, line: 23, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !22) -// CHECK:STDOUT: !76 = !DILocation(line: 23, column: 1, scope: !73) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !5 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !19 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !20 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !37 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !43 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !44 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !45 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !5, i64 0} +// CHECK:STDOUT: !47 = !{!46, !5, i64 0} +// CHECK:STDOUT: !48 = !DIFile(filename: "layout.carbon", directory: "") +// CHECK:STDOUT: !49 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !48, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !50 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !51 = !{null, !50} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = !{null, !37} +// CHECK:STDOUT: !54 = !DISubroutineType(types: !53) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.LayoutA.Main", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !50) +// CHECK:STDOUT: !57 = !DILocation(line: 6, column: 1, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !48, line: 6, type: !54, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !62) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !37) +// CHECK:STDOUT: !61 = !DILocation(line: 6, column: 1, scope: !59) +// CHECK:STDOUT: !62 = !{!60} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.21390e61793948a2:core.Destroy.Core", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !66) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !50) +// CHECK:STDOUT: !65 = !DILocation(line: 6, column: 1, scope: !63) +// CHECK:STDOUT: !66 = !{!64} +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Op", linkageName: "_COp.576418bb54cb7290:core.Destroy.Core", scope: null, file: !48, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !70) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !50) +// CHECK:STDOUT: !69 = !DILocation(line: 6, column: 1, scope: !67) +// CHECK:STDOUT: !70 = !{!68} +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "CallLayoutA__carbon_thunk", linkageName: "_CCallLayoutA__carbon_thunk.Main", scope: null, file: !48, line: 21, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !74) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !50) +// CHECK:STDOUT: !73 = !DILocation(line: 21, column: 1, scope: !71) +// CHECK:STDOUT: !74 = !{!72} +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.LayoutB.Main", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !78) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !75, type: !50) +// CHECK:STDOUT: !77 = !DILocation(line: 11, column: 1, scope: !75) +// CHECK:STDOUT: !78 = !{!76} +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ed90af642ee14836:core.Destroy.Core", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !82) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !50) +// CHECK:STDOUT: !81 = !DILocation(line: 11, column: 1, scope: !79) +// CHECK:STDOUT: !82 = !{!80} +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e05456dbecd0195:core.Destroy.Core", scope: null, file: !48, line: 11, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !86) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !50) +// CHECK:STDOUT: !85 = !DILocation(line: 11, column: 1, scope: !83) +// CHECK:STDOUT: !86 = !{!84} +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "CallLayoutB__carbon_thunk", linkageName: "_CCallLayoutB__carbon_thunk.Main", scope: null, file: !48, line: 22, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !90) +// CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !87, type: !50) +// CHECK:STDOUT: !89 = !DILocation(line: 22, column: 1, scope: !87) +// CHECK:STDOUT: !90 = !{!88} +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.LayoutC.Main", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !94) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !50) +// CHECK:STDOUT: !93 = !DILocation(line: 16, column: 1, scope: !91) +// CHECK:STDOUT: !94 = !{!92} +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Op", linkageName: "_COp.16bee2ebebabb5ed:core.Destroy.Core", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !98) +// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !95, type: !50) +// CHECK:STDOUT: !97 = !DILocation(line: 16, column: 1, scope: !95) +// CHECK:STDOUT: !98 = !{!96} +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51e6fd9285cd1110:core.Destroy.Core", scope: null, file: !48, line: 16, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !102) +// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !99, type: !50) +// CHECK:STDOUT: !101 = !DILocation(line: 16, column: 1, scope: !99) +// CHECK:STDOUT: !102 = !{!100} +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "CallLayoutC__carbon_thunk", linkageName: "_CCallLayoutC__carbon_thunk.Main", scope: null, file: !48, line: 23, type: !52, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !106) +// CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !103, type: !50) +// CHECK:STDOUT: !105 = !DILocation(line: 23, column: 1, scope: !103) +// CHECK:STDOUT: !106 = !{!104} +// CHECK:STDOUT: !107 = !{!"p1 _ZTSN6Carbon7LayoutAE", !2, i64 0} +// CHECK:STDOUT: !108 = !{!107, !107, i64 0} +// CHECK:STDOUT: !109 = !{!"p1 _ZTSN6Carbon7LayoutBE", !2, i64 0} +// CHECK:STDOUT: !110 = !{!109, !109, i64 0} +// CHECK:STDOUT: !111 = !{!"p1 _ZTSN6Carbon7LayoutCE", !2, i64 0} +// CHECK:STDOUT: !112 = !{!111, !111, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'field.carbon' @@ -466,52 +466,52 @@ fn G() { // CHECK:STDOUT: define dso_local void @_Z1FRN6Carbon6FieldCE(ptr noundef nonnull align 4 dereferenceable(8) %c) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %c.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %c, ptr %c.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %c.addr, align 8, !tbaa !12, !nonnull !15, !align !16 +// CHECK:STDOUT: store ptr %c, ptr %c.addr, align 8, !tbaa !11 +// CHECK:STDOUT: %0 = load ptr, ptr %c.addr, align 8, !tbaa !11, !nonnull !13, !align !14 // CHECK:STDOUT: %a = getelementptr inbounds nuw %"class.Carbon::FieldC", ptr %0, i32 0, i32 0 -// CHECK:STDOUT: store i32 12, ptr %a, align 4, !tbaa !17 -// CHECK:STDOUT: %1 = load ptr, ptr %c.addr, align 8, !tbaa !12, !nonnull !15, !align !16 +// CHECK:STDOUT: store i32 12, ptr %a, align 4, !tbaa !15 +// CHECK:STDOUT: %1 = load ptr, ptr %c.addr, align 8, !tbaa !11, !nonnull !13, !align !14 // CHECK:STDOUT: %b = getelementptr inbounds nuw %"class.Carbon::FieldC", ptr %1, i32 0, i32 1 -// CHECK:STDOUT: store i32 34, ptr %b, align 4, !tbaa !19 +// CHECK:STDOUT: store i32 34, ptr %b, align 4, !tbaa !16 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.FieldC.Main"(ptr %self) #1 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.FieldC.Main"(ptr %self) #1 !dbg !115 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %self), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: call void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %self), !dbg !117 +// CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #2 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #2 !dbg !119 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #2 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #2 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %self) #2 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %self) #2 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #2 !dbg !42 { +// CHECK:STDOUT: define void @_CG.Main() #2 !dbg !131 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca { i32, i32 }, align 4, !dbg !45 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !45 -// CHECK:STDOUT: %.loc19_34.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %c.var, i32 0, i32 0, !dbg !46 -// CHECK:STDOUT: %.loc19_34.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %c.var, i32 0, i32 1, !dbg !46 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @FieldC.val.loc19_3, i64 8, i1 false), !dbg !45 -// CHECK:STDOUT: call void @_Z1FRN6Carbon6FieldCE(ptr %c.var), !dbg !47 -// CHECK:STDOUT: call void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %c.var), !dbg !45 -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: %c.var = alloca { i32, i32 }, align 4, !dbg !132 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !132 +// CHECK:STDOUT: %.loc19_34.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %c.var, i32 0, i32 0, !dbg !133 +// CHECK:STDOUT: %.loc19_34.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %c.var, i32 0, i32 1, !dbg !133 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @FieldC.val.loc19_3, i64 8, i1 false), !dbg !132 +// CHECK:STDOUT: call void @_Z1FRN6Carbon6FieldCE(ptr %c.var), !dbg !137 +// CHECK:STDOUT: call void @"_COp.a5500aaf922cc288:core.Destroy.Core"(ptr %c.var), !dbg !132 +// CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -525,57 +525,57 @@ fn G() { // CHECK:STDOUT: attributes #2 = { nounwind } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!114} +// CHECK:STDOUT: !llvm.module.flags = !{!43, !44, !45, !19, !20} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "field.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon6FieldCE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{} -// CHECK:STDOUT: !16 = !{i64 4} -// CHECK:STDOUT: !17 = !{!18, !9, i64 0} -// CHECK:STDOUT: !18 = !{!"_ZTSN6Carbon6FieldCE", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !19 = !{!18, !9, i64 4} -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.FieldC.Main", scope: null, file: !1, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 6, column: 1, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 6, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !30} -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 6, column: 1, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !1, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !23) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 1, scope: !34) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a5500aaf922cc288:core.Destroy.Core", scope: null, file: !1, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !23) -// CHECK:STDOUT: !41 = !DILocation(line: 6, column: 1, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 18, type: !43, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !43 = !DISubroutineType(types: !44) -// CHECK:STDOUT: !44 = !{null} -// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 3, scope: !42) -// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 19, scope: !42) -// CHECK:STDOUT: !47 = !DILocation(line: 20, column: 3, scope: !42) -// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 1, scope: !42) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !5 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !10 = !{!"p1 _ZTSN6Carbon6FieldCE", !2, i64 0} +// CHECK:STDOUT: !11 = !{!10, !10, i64 0} +// CHECK:STDOUT: !12 = !{!"_ZTSN6Carbon6FieldCE", !5, i64 0, !5, i64 4} +// CHECK:STDOUT: !13 = !{} +// CHECK:STDOUT: !14 = !{i64 4} +// CHECK:STDOUT: !15 = !{!12, !5, i64 0} +// CHECK:STDOUT: !16 = !{!12, !5, i64 4} +// CHECK:STDOUT: !19 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !20 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !37 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !38 = !{null} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !43 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !44 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !45 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !5, i64 0} +// CHECK:STDOUT: !47 = !{!46, !5, i64 0} +// CHECK:STDOUT: !50 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !51 = !{null, !50} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = !{null, !37} +// CHECK:STDOUT: !54 = !DISubroutineType(types: !53) +// CHECK:STDOUT: !113 = !DIFile(filename: "field.carbon", directory: "") +// CHECK:STDOUT: !114 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !113, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.FieldC.Main", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !118) +// CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !50) +// CHECK:STDOUT: !117 = !DILocation(line: 6, column: 1, scope: !115) +// CHECK:STDOUT: !118 = !{!116} +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !113, line: 6, type: !54, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !122) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !37) +// CHECK:STDOUT: !121 = !DILocation(line: 6, column: 1, scope: !119) +// CHECK:STDOUT: !122 = !{!120} +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !126) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !50) +// CHECK:STDOUT: !125 = !DILocation(line: 6, column: 1, scope: !123) +// CHECK:STDOUT: !126 = !{!124} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a5500aaf922cc288:core.Destroy.Core", scope: null, file: !113, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !114, retainedNodes: !130) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !50) +// CHECK:STDOUT: !129 = !DILocation(line: 6, column: 1, scope: !127) +// CHECK:STDOUT: !130 = !{!128} +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !113, line: 18, type: !39, spFlags: DISPFlagDefinition, unit: !114) +// CHECK:STDOUT: !132 = !DILocation(line: 19, column: 3, scope: !131) +// CHECK:STDOUT: !133 = !DILocation(line: 19, column: 19, scope: !131) +// CHECK:STDOUT: !137 = !DILocation(line: 20, column: 3, scope: !131) +// CHECK:STDOUT: !138 = !DILocation(line: 18, column: 1, scope: !131) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/export/generic.carbon b/toolchain/lower/testdata/interop/cpp/class/export/generic.carbon index 8e454ad6b062..7d96bd9f90f4 100644 --- a/toolchain/lower/testdata/interop/cpp/class/export/generic.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/export/generic.carbon @@ -70,10 +70,10 @@ fn Run() { // CHECK:STDOUT: declare void @llvm.lifetime.end.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #2 !dbg !12 { +// CHECK:STDOUT: define i32 @main() #2 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z1Fv(), !dbg !16 -// CHECK:STDOUT: ret i32 0, !dbg !17 +// CHECK:STDOUT: call void @_Z1Fv(), !dbg !30 +// CHECK:STDOUT: ret i32 0, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -84,26 +84,26 @@ fn Run() { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !6, !7} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_class.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 21, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 20, column: 1, scope: !12) +// CHECK:STDOUT: !6 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !7 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !22 = !DIFile(filename: "generic_class.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !25 = !{!24} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !22, line: 20, type: !26, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 21, column: 3, scope: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 1, scope: !29) +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !36 = !{!"omnipotent char", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"int", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !37, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/export/mangle.carbon b/toolchain/lower/testdata/interop/cpp/class/export/mangle.carbon index 19fb4e53419e..fcaaed995599 100644 --- a/toolchain/lower/testdata/interop/cpp/class/export/mangle.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/export/mangle.carbon @@ -30,13 +30,13 @@ void f1(Carbon::Other::Class1*) { // CHECK:STDOUT: ; ModuleID = 'other.carbon' // CHECK:STDOUT: source_filename = "other.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3} +// CHECK:STDOUT: !llvm.dbg.cu = !{!10} +// CHECK:STDOUT: !llvm.module.flags = !{!7, !8} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "other.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !9 = !DIFile(filename: "other.carbon", directory: "") +// CHECK:STDOUT: !10 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !9, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'namespace.carbon' @@ -48,29 +48,29 @@ void f1(Carbon::Other::Class1*) { // CHECK:STDOUT: define dso_local void @_Z2f1PN6Carbon5Other6Class1E(ptr noundef %0) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !4 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!12} +// CHECK:STDOUT: !llvm.module.flags = !{!13, !14, !15, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!18} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "namespace.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon5Other6Class1E", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"p1 _ZTSN6Carbon5Other6Class1E", !2, i64 0} +// CHECK:STDOUT: !4 = !{!3, !3, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !11 = !DIFile(filename: "namespace.carbon", directory: "") +// CHECK:STDOUT: !12 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !11, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !13 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !14 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !15 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !16 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !17 = !{!"__libc_errno", !16, i64 0} +// CHECK:STDOUT: !18 = !{!17, !16, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/export/method.carbon b/toolchain/lower/testdata/interop/cpp/class/export/method.carbon index 0bc1b00c0be0..a2baf91320c5 100644 --- a/toolchain/lower/testdata/interop/cpp/class/export/method.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/export/method.carbon @@ -91,7 +91,7 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: define internal void @_ZNK6Carbon1A1FEv(ptr noundef nonnull align 1 %this) #2 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !47 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_CF__carbon_thunk.A.Main(ptr noundef nonnull align 1 %this1) // CHECK:STDOUT: ret void @@ -101,7 +101,7 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon1AD2Ev(ptr noundef nonnull align 1 %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !47 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.A.Main"(ptr noundef nonnull align 1 %this1) // CHECK:STDOUT: ret void @@ -111,31 +111,31 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: declare void @llvm.lifetime.end.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.A.Main(ptr %self) #4 !dbg !15 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !22 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !25 -// CHECK:STDOUT: ret void, !dbg !25 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #4 !dbg !26 { +// CHECK:STDOUT: define void @_CF.A.Main(ptr %self) #4 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.A.Main(ptr %self) #4 !dbg !30 { +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.A.Main(ptr %self), !dbg !33 +// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !33 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #4 !dbg !35 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CF__carbon_thunk.A.Main(ptr %self) #4 !dbg !39 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_CF.A.Main(ptr %self), !dbg !41 +// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -143,44 +143,44 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: attributes #4 = { nounwind } // CHECK:STDOUT: attributes #5 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!21} +// CHECK:STDOUT: !llvm.module.flags = !{!48, !49, !50, !4, !5} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!53} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "method.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon1AE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main", scope: null, file: !1, line: 6, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.A.Main", scope: null, file: !1, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !18) -// CHECK:STDOUT: !25 = !DILocation(line: 5, column: 1, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !1, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !18) -// CHECK:STDOUT: !29 = !DILocation(line: 5, column: 1, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.A.Main", scope: null, file: !1, line: 6, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !18) -// CHECK:STDOUT: !33 = !DILocation(line: 6, column: 3, scope: !30) +// CHECK:STDOUT: !4 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !5 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIFile(filename: "method.carbon", directory: "") +// CHECK:STDOUT: !21 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !20, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !23 = !{null, !22} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.A.Main", scope: null, file: !20, line: 6, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !30) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !25, type: !22) +// CHECK:STDOUT: !29 = !DILocation(line: 6, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !{!26} +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.A.Main", scope: null, file: !20, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !34) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !22) +// CHECK:STDOUT: !33 = !DILocation(line: 5, column: 1, scope: !31) +// CHECK:STDOUT: !34 = !{!32} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !20, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !38) +// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !35, type: !22) +// CHECK:STDOUT: !37 = !DILocation(line: 5, column: 1, scope: !35) +// CHECK:STDOUT: !38 = !{!36} +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.A.Main", scope: null, file: !20, line: 6, type: !24, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !42) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !22) +// CHECK:STDOUT: !41 = !DILocation(line: 6, column: 3, scope: !39) +// CHECK:STDOUT: !42 = !{!40} +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"any pointer", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"p1 _ZTSN6Carbon1AE", !45, i64 0} +// CHECK:STDOUT: !47 = !{!46, !46, i64 0} +// CHECK:STDOUT: !48 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !49 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !50 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !51 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !52 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !53 = !{!52, !51, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'method_with_args_and_return.carbon' @@ -212,8 +212,8 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: %retval = alloca i32, align 4 // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr = alloca i32, align 4 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !15 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !94 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !95 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_CF__carbon_thunk.ArgsA.Main(ptr noundef nonnull align 1 %this1, ptr noundef nonnull align 4 dereferenceable(4) %.addr, ptr noundef nonnull align 4 dereferenceable(4) %retval) // CHECK:STDOUT: %1 = load i32, ptr %retval, align 4 @@ -224,7 +224,7 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon5ArgsAD2Ev(ptr noundef nonnull align 1 %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !94 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.ArgsA.Main"(ptr noundef nonnull align 1 %this1) // CHECK:STDOUT: ret void @@ -234,38 +234,38 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: declare void @llvm.lifetime.end.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.ArgsA.Main(ptr %self, i32 %a) #4 !dbg !16 { +// CHECK:STDOUT: define i32 @_CF.ArgsA.Main(ptr %self, i32 %a) #4 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %a, !dbg !24 +// CHECK:STDOUT: ret i32 %a, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.ArgsA.Main"(ptr %self) #5 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.ArgsA.Main"(ptr %self) #5 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.433c867dbc0ac54b:core.Destroy.Core"(ptr %self), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: call void @"_COp.433c867dbc0ac54b:core.Destroy.Core"(ptr %self), !dbg !76 +// CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.433c867dbc0ac54b:core.Destroy.Core"(ptr %self) #4 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.433c867dbc0ac54b:core.Destroy.Core"(ptr %self) #4 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.ArgsA.Main(ptr %self, ptr %_, ptr %_1) #4 !dbg !35 { +// CHECK:STDOUT: define void @_CF__carbon_thunk.ArgsA.Main(ptr %self, ptr %_, ptr %_1) #4 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc6_29.2 = load i32, ptr %_, align 4, !dbg !42 -// CHECK:STDOUT: %ArgsA.F.call = call i32 @_CF.ArgsA.Main(ptr %self, i32 %.loc6_29.2), !dbg !42 -// CHECK:STDOUT: store i32 %ArgsA.F.call, ptr %_1, align 4, !dbg !42 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: %.loc6_29.2 = load i32, ptr %_, align 4, !dbg !86 +// CHECK:STDOUT: %ArgsA.F.call = call i32 @_CF.ArgsA.Main(ptr %self, i32 %.loc6_29.2), !dbg !86 +// CHECK:STDOUT: store i32 %ArgsA.F.call, ptr %_1, align 4, !dbg !86 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallCallF.Main() #4 !dbg !43 { +// CHECK:STDOUT: define i32 @_CCallCallF.Main() #4 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CallArgsF.call = call i32 @_Z9CallArgsFv(), !dbg !46 -// CHECK:STDOUT: ret i32 %CallArgsF.call, !dbg !47 +// CHECK:STDOUT: %CallArgsF.call = call i32 @_Z9CallArgsFv(), !dbg !91 +// CHECK:STDOUT: ret i32 %CallArgsF.call, !dbg !92 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -275,58 +275,58 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: attributes #4 = { nounwind } // CHECK:STDOUT: attributes #5 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!55} +// CHECK:STDOUT: !llvm.module.flags = !{!48, !49, !50, !4, !5} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!53} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "method_with_args_and_return.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon5ArgsAE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!9, !9, i64 0} -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "F", linkageName: "_CF.ArgsA.Main", scope: null, file: !1, line: 6, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{!19, !20, !19} -// CHECK:STDOUT: !19 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !21 = !{!22, !23} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !16, type: !20) -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !16, type: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 8, column: 5, scope: !16) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.ArgsA.Main", scope: null, file: !1, line: 5, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{null, !20} -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !25, type: !20) -// CHECK:STDOUT: !30 = !DILocation(line: 5, column: 1, scope: !25) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.433c867dbc0ac54b:core.Destroy.Core", scope: null, file: !1, line: 5, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !20) -// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 1, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.ArgsA.Main", scope: null, file: !1, line: 6, type: !36, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !36 = !DISubroutineType(types: !37) -// CHECK:STDOUT: !37 = !{null, !20, !19, !19} -// CHECK:STDOUT: !38 = !{!39, !40, !41} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !35, type: !20) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !35, type: !19) -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 3, scope: !35, type: !19) -// CHECK:STDOUT: !42 = !DILocation(line: 6, column: 3, scope: !35) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !1, line: 18, type: !44, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !44 = !DISubroutineType(types: !45) -// CHECK:STDOUT: !45 = !{!19} -// CHECK:STDOUT: !46 = !DILocation(line: 18, column: 32, scope: !43) -// CHECK:STDOUT: !47 = !DILocation(line: 18, column: 25, scope: !43) +// CHECK:STDOUT: !4 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !5 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !23 = !{null, !22} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"any pointer", !44, i64 0} +// CHECK:STDOUT: !48 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !49 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !50 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !51 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !52 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !53 = !{!52, !51, i64 0} +// CHECK:STDOUT: !54 = !DIFile(filename: "method_with_args_and_return.carbon", directory: "") +// CHECK:STDOUT: !55 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !54, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !56 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !57 = !{!56, !22, !56} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !59 = !{null, !22, !56, !56} +// CHECK:STDOUT: !60 = !DISubroutineType(types: !59) +// CHECK:STDOUT: !61 = !{!56} +// CHECK:STDOUT: !62 = !DISubroutineType(types: !61) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "F", linkageName: "_CF.ArgsA.Main", scope: null, file: !54, line: 6, type: !58, spFlags: DISPFlagDefinition, unit: !55, retainedNodes: !73) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !22) +// CHECK:STDOUT: !65 = !DILocalVariable(arg: 2, scope: !63, type: !56) +// CHECK:STDOUT: !72 = !DILocation(line: 8, column: 5, scope: !63) +// CHECK:STDOUT: !73 = !{!64, !65} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.ArgsA.Main", scope: null, file: !54, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !55, retainedNodes: !77) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !22) +// CHECK:STDOUT: !76 = !DILocation(line: 5, column: 1, scope: !74) +// CHECK:STDOUT: !77 = !{!75} +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.433c867dbc0ac54b:core.Destroy.Core", scope: null, file: !54, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !55, retainedNodes: !81) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !22) +// CHECK:STDOUT: !80 = !DILocation(line: 5, column: 1, scope: !78) +// CHECK:STDOUT: !81 = !{!79} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.ArgsA.Main", scope: null, file: !54, line: 6, type: !60, spFlags: DISPFlagDefinition, unit: !55, retainedNodes: !87) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !22) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 2, scope: !82, type: !56) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 3, scope: !82, type: !56) +// CHECK:STDOUT: !86 = !DILocation(line: 6, column: 3, scope: !82) +// CHECK:STDOUT: !87 = !{!83, !84, !85} +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !54, line: 18, type: !62, spFlags: DISPFlagDefinition, unit: !55) +// CHECK:STDOUT: !91 = !DILocation(line: 18, column: 32, scope: !88) +// CHECK:STDOUT: !92 = !DILocation(line: 18, column: 25, scope: !88) +// CHECK:STDOUT: !93 = !{!"p1 _ZTSN6Carbon5ArgsAE", !45, i64 0} +// CHECK:STDOUT: !94 = !{!93, !93, i64 0} +// CHECK:STDOUT: !95 = !{!51, !51, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'static.carbon' @@ -349,36 +349,36 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.StaticA.Main() #2 !dbg !12 { +// CHECK:STDOUT: define void @_CF.StaticA.Main() #2 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.StaticA.Main"(ptr %self) #3 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.StaticA.Main"(ptr %self) #3 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.f6473606999de44c:core.Destroy.Core"(ptr %self), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @"_COp.f6473606999de44c:core.Destroy.Core"(ptr %self), !dbg !104 +// CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f6473606999de44c:core.Destroy.Core"(ptr %self) #2 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.f6473606999de44c:core.Destroy.Core"(ptr %self) #2 !dbg !106 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.StaticA.Main() #2 !dbg !27 { +// CHECK:STDOUT: define void @_CF__carbon_thunk.StaticA.Main() #2 !dbg !110 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.StaticA.Main(), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: call void @_CF.StaticA.Main(), !dbg !111 +// CHECK:STDOUT: ret void, !dbg !111 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCallF.Main() #2 !dbg !29 { +// CHECK:STDOUT: define void @_CCallCallF.Main() #2 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z11CallStaticFv(), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: call void @_Z11CallStaticFv(), !dbg !113 +// CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -386,40 +386,40 @@ fn CallCallF() { Cpp.CallStaticF(); } // CHECK:STDOUT: attributes #2 = { nounwind } // CHECK:STDOUT: attributes #3 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!97} +// CHECK:STDOUT: !llvm.module.flags = !{!48, !49, !50, !4, !5} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!53} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "static.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.StaticA.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 6, column: 3, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.StaticA.Main", scope: null, file: !1, line: 5, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null, !19} -// CHECK:STDOUT: !19 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 5, column: 1, scope: !16) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f6473606999de44c:core.Destroy.Core", scope: null, file: !1, line: 5, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 5, column: 1, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.StaticA.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !28 = !DILocation(line: 6, column: 3, scope: !27) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 18, scope: !29) -// CHECK:STDOUT: !31 = !DILocation(line: 15, column: 1, scope: !29) +// CHECK:STDOUT: !4 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !5 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !23 = !{null, !22} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !48 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !49 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !50 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !51 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !52 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !53 = !{!52, !51, i64 0} +// CHECK:STDOUT: !96 = !DIFile(filename: "static.carbon", directory: "") +// CHECK:STDOUT: !97 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !96, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !98 = !{null} +// CHECK:STDOUT: !99 = !DISubroutineType(types: !98) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "F", linkageName: "_CF.StaticA.Main", scope: null, file: !96, line: 6, type: !99, spFlags: DISPFlagDefinition, unit: !97) +// CHECK:STDOUT: !101 = !DILocation(line: 6, column: 3, scope: !100) +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.StaticA.Main", scope: null, file: !96, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !97, retainedNodes: !105) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !22) +// CHECK:STDOUT: !104 = !DILocation(line: 5, column: 1, scope: !102) +// CHECK:STDOUT: !105 = !{!103} +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f6473606999de44c:core.Destroy.Core", scope: null, file: !96, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !97, retainedNodes: !109) +// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !22) +// CHECK:STDOUT: !108 = !DILocation(line: 5, column: 1, scope: !106) +// CHECK:STDOUT: !109 = !{!107} +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.StaticA.Main", scope: null, file: !96, line: 6, type: !99, spFlags: DISPFlagDefinition, unit: !97) +// CHECK:STDOUT: !111 = !DILocation(line: 6, column: 3, scope: !110) +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !96, line: 15, type: !99, spFlags: DISPFlagDefinition, unit: !97) +// CHECK:STDOUT: !113 = !DILocation(line: 15, column: 18, scope: !112) +// CHECK:STDOUT: !114 = !DILocation(line: 15, column: 1, scope: !112) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon b/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon index ff4383875517..445691f29763 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon @@ -63,91 +63,91 @@ fn Packed(n: i32) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CNaturallyAligned.Main(i32 %n) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CNaturallyAligned.Main(i32 %n) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [4 x i8], align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619"(ptr %a.var), !dbg !18 -// CHECK:STDOUT: %.loc25.n = getelementptr inbounds nuw [4 x i8], ptr %a.var, i32 0, i32 0, !dbg !19 -// CHECK:STDOUT: store i32 %n, ptr %.loc25.n, align 4, !dbg !19 -// CHECK:STDOUT: call void @_Z4TakeI16NaturallyAlignedEvRT_(ptr %a.var), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %a.var = alloca [4 x i8], align 4, !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !45 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619"(ptr %a.var), !dbg !45 +// CHECK:STDOUT: %.loc25.n = getelementptr inbounds nuw [4 x i8], ptr %a.var, i32 0, i32 0, !dbg !47 +// CHECK:STDOUT: store i32 %n, ptr %.loc25.n, align 4, !dbg !47 +// CHECK:STDOUT: call void @_Z4TakeI16NaturallyAlignedEvRT_(ptr %a.var), !dbg !51 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN16NaturallyAlignedC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !22 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !22 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !106 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !106 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN16NaturallyAlignedC1Ev.carbon_thunk.(ptr %return), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: call void @_ZN16NaturallyAlignedC1Ev.carbon_thunk.(ptr %return), !dbg !56 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z4TakeI16NaturallyAlignedEvRT_(ptr noundef nonnull align 4 dereferenceable(4)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CExtraAlignment.Main(i32 %n) #0 !dbg !30 { +// CHECK:STDOUT: define void @_CExtraAlignment.Main(i32 %n) #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [16 x i8], align 16, !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !33 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645"(ptr %a.var), !dbg !33 -// CHECK:STDOUT: %.loc33.n = getelementptr inbounds nuw [16 x i8], ptr %a.var, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: store i32 %n, ptr %.loc33.n, align 4, !dbg !34 -// CHECK:STDOUT: call void @_Z4TakeI14ExtraAlignmentEvRT_(ptr %a.var), !dbg !35 -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: %a.var = alloca [16 x i8], align 16, !dbg !60 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !60 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645"(ptr %a.var), !dbg !60 +// CHECK:STDOUT: %.loc33.n = getelementptr inbounds nuw [16 x i8], ptr %a.var, i32 0, i32 0, !dbg !62 +// CHECK:STDOUT: store i32 %n, ptr %.loc33.n, align 4, !dbg !62 +// CHECK:STDOUT: call void @_Z4TakeI14ExtraAlignmentEvRT_(ptr %a.var), !dbg !66 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN14ExtraAlignmentC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !37 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !37 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !108 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !108 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp"(ptr sret([16 x i8]) %return) #2 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp"(ptr sret([16 x i8]) %return) #2 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN14ExtraAlignmentC1Ev.carbon_thunk.(ptr %return), !dbg !40 -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: call void @_ZN14ExtraAlignmentC1Ev.carbon_thunk.(ptr %return), !dbg !71 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z4TakeI14ExtraAlignmentEvRT_(ptr noundef nonnull align 16 dereferenceable(16)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPacked.Main(i32 %n) #0 !dbg !41 { +// CHECK:STDOUT: define void @_CPacked.Main(i32 %n) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [4 x i8], align 1, !dbg !44 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !44 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a"(ptr %a.var), !dbg !44 -// CHECK:STDOUT: %.loc42.n = getelementptr inbounds nuw [4 x i8], ptr %a.var, i32 0, i32 0, !dbg !45 -// CHECK:STDOUT: store i32 %n, ptr %.loc42.n, align 4, !dbg !45 -// CHECK:STDOUT: call void @_Z4TakeI6PackedEvRT_(ptr %a.var), !dbg !46 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: %a.var = alloca [4 x i8], align 1, !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !75 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a"(ptr %a.var), !dbg !75 +// CHECK:STDOUT: %.loc42.n = getelementptr inbounds nuw [4 x i8], ptr %a.var, i32 0, i32 0, !dbg !77 +// CHECK:STDOUT: store i32 %n, ptr %.loc42.n, align 4, !dbg !77 +// CHECK:STDOUT: call void @_Z4TakeI6PackedEvRT_(ptr %a.var), !dbg !81 +// CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN6PackedC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !48 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !48 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !110 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !110 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN6PackedC1Ev.carbon_thunk.(ptr %return), !dbg !51 -// CHECK:STDOUT: ret void, !dbg !51 +// CHECK:STDOUT: call void @_ZN6PackedC1Ev.carbon_thunk.(ptr %return), !dbg !86 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z4TakeI6PackedEvRT_(ptr noundef nonnull align 1 dereferenceable(4)) #3 @@ -156,21 +156,21 @@ fn Packed(n: i32) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619"(ptr sret([4 x i8]) %return) #0 !dbg !52 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp"(ptr %return), !dbg !54 -// CHECK:STDOUT: ret void, !dbg !55 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619"(ptr sret([4 x i8]) %return) #0 !dbg !87 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp"(ptr %return), !dbg !90 +// CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645"(ptr sret([16 x i8]) %return) #0 !dbg !56 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp"(ptr %return), !dbg !57 -// CHECK:STDOUT: ret void, !dbg !58 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645"(ptr sret([16 x i8]) %return) #0 !dbg !92 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp"(ptr %return), !dbg !95 +// CHECK:STDOUT: ret void, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a"(ptr sret([4 x i8]) %return) #0 !dbg !59 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp"(ptr %return), !dbg !60 -// CHECK:STDOUT: ret void, !dbg !61 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a"(ptr sret([4 x i8]) %return) #0 !dbg !97 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp"(ptr %return), !dbg !100 +// CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -182,70 +182,70 @@ fn Packed(n: i32) { // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} +// CHECK:STDOUT: !llvm.module.flags = !{!111, !112, !113, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!116} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "alignment.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "NaturallyAligned", linkageName: "_CNaturallyAligned.Main", scope: null, file: !1, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 24, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 25, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 26, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 23, column: 1, scope: !12) -// CHECK:STDOUT: !22 = !{!23, !23, i64 0} -// CHECK:STDOUT: !23 = !{!"p1 _ZTS16NaturallyAligned", !24, i64 0} -// CHECK:STDOUT: !24 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp", scope: null, file: !1, line: 7, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !29 = !DILocation(line: 7, column: 8, scope: !25) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "ExtraAlignment", linkageName: "_CExtraAlignment.Main", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !15) -// CHECK:STDOUT: !33 = !DILocation(line: 30, column: 3, scope: !30) -// CHECK:STDOUT: !34 = !DILocation(line: 33, column: 3, scope: !30) -// CHECK:STDOUT: !35 = !DILocation(line: 34, column: 3, scope: !30) -// CHECK:STDOUT: !36 = !DILocation(line: 29, column: 1, scope: !30) -// CHECK:STDOUT: !37 = !{!38, !38, i64 0} -// CHECK:STDOUT: !38 = !{!"p1 _ZTS14ExtraAlignment", !24, i64 0} -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp", scope: null, file: !1, line: 11, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !40 = !DILocation(line: 11, column: 20, scope: !39) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Packed", linkageName: "_CPacked.Main", scope: null, file: !1, line: 37, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !15) -// CHECK:STDOUT: !44 = !DILocation(line: 38, column: 3, scope: !41) -// CHECK:STDOUT: !45 = !DILocation(line: 42, column: 3, scope: !41) -// CHECK:STDOUT: !46 = !DILocation(line: 43, column: 3, scope: !41) -// CHECK:STDOUT: !47 = !DILocation(line: 37, column: 1, scope: !41) -// CHECK:STDOUT: !48 = !{!49, !49, i64 0} -// CHECK:STDOUT: !49 = !{!"p1 _ZTS6Packed", !24, i64 0} -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp", scope: null, file: !1, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !51 = !DILocation(line: 15, column: 32, scope: !50) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619", scope: null, file: !53, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !53 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") -// CHECK:STDOUT: !54 = !DILocation(line: 9, column: 28, scope: !52) -// CHECK:STDOUT: !55 = !DILocation(line: 9, column: 21, scope: !52) -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645", scope: null, file: !53, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !57 = !DILocation(line: 9, column: 28, scope: !56) -// CHECK:STDOUT: !58 = !DILocation(line: 9, column: 21, scope: !56) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a", scope: null, file: !53, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !60 = !DILocation(line: 9, column: 28, scope: !59) -// CHECK:STDOUT: !61 = !DILocation(line: 9, column: 21, scope: !59) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !26 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") +// CHECK:STDOUT: !32 = !DIFile(filename: "alignment.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{!37} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "NaturallyAligned", linkageName: "_CNaturallyAligned.Main", scope: null, file: !32, line: 23, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !34) +// CHECK:STDOUT: !45 = !DILocation(line: 24, column: 3, scope: !42) +// CHECK:STDOUT: !47 = !DILocation(line: 25, column: 3, scope: !42) +// CHECK:STDOUT: !51 = !DILocation(line: 26, column: 3, scope: !42) +// CHECK:STDOUT: !52 = !DILocation(line: 23, column: 1, scope: !42) +// CHECK:STDOUT: !53 = !{!43} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp", scope: null, file: !32, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !56 = !DILocation(line: 7, column: 8, scope: !54) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "ExtraAlignment", linkageName: "_CExtraAlignment.Main", scope: null, file: !32, line: 29, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !68) +// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !34) +// CHECK:STDOUT: !60 = !DILocation(line: 30, column: 3, scope: !57) +// CHECK:STDOUT: !62 = !DILocation(line: 33, column: 3, scope: !57) +// CHECK:STDOUT: !66 = !DILocation(line: 34, column: 3, scope: !57) +// CHECK:STDOUT: !67 = !DILocation(line: 29, column: 1, scope: !57) +// CHECK:STDOUT: !68 = !{!58} +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp", scope: null, file: !32, line: 11, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !71 = !DILocation(line: 11, column: 20, scope: !69) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Packed", linkageName: "_CPacked.Main", scope: null, file: !32, line: 37, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !83) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !34) +// CHECK:STDOUT: !75 = !DILocation(line: 38, column: 3, scope: !72) +// CHECK:STDOUT: !77 = !DILocation(line: 42, column: 3, scope: !72) +// CHECK:STDOUT: !81 = !DILocation(line: 43, column: 3, scope: !72) +// CHECK:STDOUT: !82 = !DILocation(line: 37, column: 1, scope: !72) +// CHECK:STDOUT: !83 = !{!73} +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp", scope: null, file: !32, line: 15, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !86 = !DILocation(line: 15, column: 32, scope: !84) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619", scope: null, file: !26, line: 9, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !90 = !DILocation(line: 9, column: 28, scope: !87) +// CHECK:STDOUT: !91 = !DILocation(line: 9, column: 21, scope: !87) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645", scope: null, file: !26, line: 9, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !95 = !DILocation(line: 9, column: 28, scope: !92) +// CHECK:STDOUT: !96 = !DILocation(line: 9, column: 21, scope: !92) +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a", scope: null, file: !26, line: 9, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !100 = !DILocation(line: 9, column: 28, scope: !97) +// CHECK:STDOUT: !101 = !DILocation(line: 9, column: 21, scope: !97) +// CHECK:STDOUT: !102 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !103 = !{!"omnipotent char", !102, i64 0} +// CHECK:STDOUT: !104 = !{!"any pointer", !103, i64 0} +// CHECK:STDOUT: !105 = !{!"p1 _ZTS16NaturallyAligned", !104, i64 0} +// CHECK:STDOUT: !106 = !{!105, !105, i64 0} +// CHECK:STDOUT: !107 = !{!"p1 _ZTS14ExtraAlignment", !104, i64 0} +// CHECK:STDOUT: !108 = !{!107, !107, i64 0} +// CHECK:STDOUT: !109 = !{!"p1 _ZTS6Packed", !104, i64 0} +// CHECK:STDOUT: !110 = !{!109, !109, i64 0} +// CHECK:STDOUT: !111 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !112 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !113 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !114 = !{!"int", !103, i64 0} +// CHECK:STDOUT: !115 = !{!"__libc_errno", !114, i64 0} +// CHECK:STDOUT: !116 = !{!115, !114, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/base.carbon b/toolchain/lower/testdata/interop/cpp/class/import/base.carbon index e08ed140f3ee..edf50ff5d4e2 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/base.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/base.carbon @@ -65,55 +65,55 @@ fn Call(b: Cpp.B*) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CConvertPtr.Main(ptr %p) #0 !dbg !12 { +// CHECK:STDOUT: define ptr @_CConvertPtr.Main(ptr %p) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_11.2.base = getelementptr inbounds nuw [8 x i8], ptr %p, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: ret ptr %.loc7_11.2.base, !dbg !18 +// CHECK:STDOUT: %.loc7_11.2.base = getelementptr inbounds nuw [8 x i8], ptr %p, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: ret ptr %.loc7_11.2.base, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CAcceptVal.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertVal.Main(ptr %b) #0 !dbg !19 { +// CHECK:STDOUT: define void @_CConvertVal.Main(ptr %b) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc13_13.2.a = getelementptr inbounds nuw [4 x i8], ptr %b, i32 0, i32 0, !dbg !24 -// CHECK:STDOUT: call void @_CAcceptVal.Main(ptr %.loc13_13.2.a), !dbg !25 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: %.loc13_13.2.a = getelementptr inbounds nuw [4 x i8], ptr %b, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: call void @_CAcceptVal.Main(ptr %.loc13_13.2.a), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!41, !42, !43, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!48} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ConvertPtr", linkageName: "_CConvertPtr.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "ConvertVal", linkageName: "_CConvertVal.Main", scope: null, file: !1, line: 12, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !15} -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 13, scope: !19) -// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 3, scope: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 12, column: 1, scope: !19) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "ConvertPtr", linkageName: "_CConvertPtr.Main", scope: null, file: !18, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !32 = !DILocation(line: 7, column: 3, scope: !26) +// CHECK:STDOUT: !33 = !{!27} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "ConvertVal", linkageName: "_CConvertVal.Main", scope: null, file: !18, line: 12, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 13, column: 13, scope: !34) +// CHECK:STDOUT: !38 = !DILocation(line: 13, column: 3, scope: !34) +// CHECK:STDOUT: !39 = !DILocation(line: 12, column: 1, scope: !34) +// CHECK:STDOUT: !40 = !{!35} +// CHECK:STDOUT: !41 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !43 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !44 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !45 = !{!"omnipotent char", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"int", !45, i64 0} +// CHECK:STDOUT: !47 = !{!"__libc_errno", !46, i64 0} +// CHECK:STDOUT: !48 = !{!47, !46, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'access_field.carbon' @@ -122,41 +122,41 @@ fn Call(b: Cpp.B*) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessVal.Main(ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CAccessVal.Main(ptr %b) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_11.2.a = getelementptr inbounds nuw [4 x i8], ptr %b, i32 0, i32 0, !dbg !19 -// CHECK:STDOUT: %.loc7_11.4.a = getelementptr inbounds nuw [4 x i8], ptr %.loc7_11.2.a, i32 0, i32 0, !dbg !19 -// CHECK:STDOUT: %.loc7_11.5 = load i32, ptr %.loc7_11.4.a, align 4, !dbg !19 -// CHECK:STDOUT: ret i32 %.loc7_11.5, !dbg !20 +// CHECK:STDOUT: %.loc7_11.2.a = getelementptr inbounds nuw [4 x i8], ptr %b, i32 0, i32 0, !dbg !58 +// CHECK:STDOUT: %.loc7_11.4.a = getelementptr inbounds nuw [4 x i8], ptr %.loc7_11.2.a, i32 0, i32 0, !dbg !58 +// CHECK:STDOUT: %.loc7_11.5 = load i32, ptr %.loc7_11.4.a, align 4, !dbg !58 +// CHECK:STDOUT: ret i32 %.loc7_11.5, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!50} +// CHECK:STDOUT: !llvm.module.flags = !{!41, !42, !43, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!48} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "access_field.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "AccessVal", linkageName: "_CAccessVal.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !41 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !43 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !44 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !45 = !{!"omnipotent char", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"int", !45, i64 0} +// CHECK:STDOUT: !47 = !{!"__libc_errno", !46, i64 0} +// CHECK:STDOUT: !48 = !{!47, !46, i64 0} +// CHECK:STDOUT: !49 = !DIFile(filename: "access_field.carbon", directory: "") +// CHECK:STDOUT: !50 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !49, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !51 = !{!20, !21} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "AccessVal", linkageName: "_CAccessVal.Main", scope: null, file: !49, line: 6, type: !52, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !60) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !21) +// CHECK:STDOUT: !58 = !DILocation(line: 7, column: 10, scope: !53) +// CHECK:STDOUT: !59 = !DILocation(line: 7, column: 3, scope: !53) +// CHECK:STDOUT: !60 = !{!54} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_method.carbon' @@ -167,18 +167,18 @@ fn Call(b: Cpp.B*) { // CHECK:STDOUT: $_ZN1A1fEv = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall.Main(ptr %b) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_4.3.a = getelementptr inbounds nuw [4 x i8], ptr %b, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: call void @_ZN1A1fEv(ptr %.loc7_4.3.a), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc7_4.3.a = getelementptr inbounds nuw [4 x i8], ptr %b, i32 0, i32 0, !dbg !66 +// CHECK:STDOUT: call void @_ZN1A1fEv(ptr %.loc7_4.3.a), !dbg !66 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN1A1fEv(ptr noundef nonnull align 4 dereferenceable(4) %this) #1 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !71 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -186,31 +186,31 @@ fn Call(b: Cpp.B*) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!62} +// CHECK:STDOUT: !llvm.module.flags = !{!41, !42, !43, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!48} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_method.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS1A", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !41 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !43 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !44 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !45 = !{!"omnipotent char", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"int", !45, i64 0} +// CHECK:STDOUT: !47 = !{!"__libc_errno", !46, i64 0} +// CHECK:STDOUT: !48 = !{!47, !46, i64 0} +// CHECK:STDOUT: !61 = !DIFile(filename: "call_method.carbon", directory: "") +// CHECK:STDOUT: !62 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !61, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !61, line: 6, type: !25, spFlags: DISPFlagDefinition, unit: !62, retainedNodes: !68) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !21) +// CHECK:STDOUT: !66 = !DILocation(line: 7, column: 3, scope: !63) +// CHECK:STDOUT: !67 = !DILocation(line: 6, column: 1, scope: !63) +// CHECK:STDOUT: !68 = !{!64} +// CHECK:STDOUT: !69 = !{!"any pointer", !45, i64 0} +// CHECK:STDOUT: !70 = !{!"p1 _ZTS1A", !69, i64 0} +// CHECK:STDOUT: !71 = !{!70, !70, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/constructor.carbon b/toolchain/lower/testdata/interop/cpp/class/import/constructor.carbon index a3de2842c93e..3415c54ffcee 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/constructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/constructor.carbon @@ -178,39 +178,39 @@ fn Four() { // CHECK:STDOUT: $_ZN1CC2Ev = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_26.1.temp = alloca [8 x i8], align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_26.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %.loc7_26.1.temp), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %.loc7_26.1.temp = alloca [8 x i8], align 4, !dbg !27 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_26.1.temp), !dbg !27 +// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %.loc7_26.1.temp), !dbg !27 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN1CC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !17 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !40 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !40 // CHECK:STDOUT: call void @_ZN1CC2Ev(ptr noundef nonnull align 4 dereferenceable(8) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !20 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_19.2.temp = alloca [8 x i8], align 4, !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_19.2.temp), !dbg !21 -// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk_tuple.(ptr %.loc11_19.2.temp), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: %.loc11_19.2.temp = alloca [8 x i8], align 4, !dbg !32 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_19.2.temp), !dbg !32 +// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk_tuple.(ptr %.loc11_19.2.temp), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN1CC1Ev.carbon_thunk_tuple.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !17 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !40 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !40 // CHECK:STDOUT: call void @_ZN1CC2Ev(ptr noundef nonnull align 4 dereferenceable(8) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -222,12 +222,12 @@ fn Four() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN1CC2Ev(ptr noundef nonnull align 4 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !40 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %x_ = getelementptr inbounds nuw %class.C, ptr %this1, i32 0, i32 0 -// CHECK:STDOUT: store i32 8, ptr %x_, align 4, !tbaa !23 +// CHECK:STDOUT: store i32 8, ptr %x_, align 4, !tbaa !43 // CHECK:STDOUT: %y_ = getelementptr inbounds nuw %class.C, ptr %this1, i32 0, i32 1 -// CHECK:STDOUT: store i32 9, ptr %y_, align 4, !tbaa !25 +// CHECK:STDOUT: store i32 9, ptr %y_, align 4, !tbaa !44 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,36 +239,36 @@ fn Four() { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_default.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 18, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !17 = !{!18, !18, i64 0} -// CHECK:STDOUT: !18 = !{!"p1 _ZTS1C", !19, i64 0} -// CHECK:STDOUT: !19 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DILocation(line: 11, column: 18, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 10, column: 1, scope: !20) -// CHECK:STDOUT: !23 = !{!24, !9, i64 0} -// CHECK:STDOUT: !24 = !{!"_ZTS1C", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !25 = !{!24, !9, i64 4} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "import_default.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !27 = !DILocation(line: 7, column: 18, scope: !26) +// CHECK:STDOUT: !30 = !DILocation(line: 6, column: 1, scope: !26) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 10, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !32 = !DILocation(line: 11, column: 18, scope: !31) +// CHECK:STDOUT: !35 = !DILocation(line: 10, column: 1, scope: !31) +// CHECK:STDOUT: !36 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !37 = !{!"omnipotent char", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"any pointer", !37, i64 0} +// CHECK:STDOUT: !39 = !{!"p1 _ZTS1C", !38, i64 0} +// CHECK:STDOUT: !40 = !{!39, !39, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !37, i64 0} +// CHECK:STDOUT: !42 = !{!"_ZTS1C", !41, i64 0, !41, i64 4} +// CHECK:STDOUT: !43 = !{!42, !41, i64 0} +// CHECK:STDOUT: !44 = !{!42, !41, i64 4} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !49 = !{!48, !41, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'implicit_default.carbon' @@ -281,50 +281,50 @@ fn Four() { // CHECK:STDOUT: $_ZN1CC2Ev = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [8 x i8], align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %_.var), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %_.var = alloca [8 x i8], align 4, !dbg !55 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !55 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %_.var), !dbg !55 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN1CC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !17 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !40 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !40 // CHECK:STDOUT: call void @_ZN1CC2Ev(ptr noundef nonnull align 4 dereferenceable(8) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret([8 x i8]) %return) #2 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret([8 x i8]) %return) #2 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !25 -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !60 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret([8 x i8]) %return) #0 !dbg !26 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret([8 x i8]) %return) #0 !dbg !61 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !64 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN1CC2Ev(ptr noundef nonnull align 4 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !40 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %x_ = getelementptr inbounds nuw %class.C.18, ptr %this1, i32 0, i32 0 -// CHECK:STDOUT: store i32 8, ptr %x_, align 4, !tbaa !30 +// CHECK:STDOUT: store i32 8, ptr %x_, align 4, !tbaa !43 // CHECK:STDOUT: %y_ = getelementptr inbounds nuw %class.C.18, ptr %this1, i32 0, i32 1 -// CHECK:STDOUT: store i32 9, ptr %y_, align 4, !tbaa !32 +// CHECK:STDOUT: store i32 9, ptr %y_, align 4, !tbaa !44 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -334,43 +334,43 @@ fn Four() { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!51} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "implicit_default.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !17 = !{!18, !18, i64 0} -// CHECK:STDOUT: !18 = !{!"p1 _ZTS1C", !19, i64 0} -// CHECK:STDOUT: !19 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !21, line: 4, type: !22, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DIFile(filename: "./default.h", directory: "") -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !25 = !DILocation(line: 4, column: 3, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !27, line: 9, type: !22, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !27 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") -// CHECK:STDOUT: !28 = !DILocation(line: 9, column: 28, scope: !26) -// CHECK:STDOUT: !29 = !DILocation(line: 9, column: 21, scope: !26) -// CHECK:STDOUT: !30 = !{!31, !9, i64 0} -// CHECK:STDOUT: !31 = !{!"_ZTS1C", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !32 = !{!31, !9, i64 4} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !12 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !37 = !{!"omnipotent char", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"any pointer", !37, i64 0} +// CHECK:STDOUT: !39 = !{!"p1 _ZTS1C", !38, i64 0} +// CHECK:STDOUT: !40 = !{!39, !39, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !37, i64 0} +// CHECK:STDOUT: !42 = !{!"_ZTS1C", !41, i64 0, !41, i64 4} +// CHECK:STDOUT: !43 = !{!42, !41, i64 0} +// CHECK:STDOUT: !44 = !{!42, !41, i64 4} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !49 = !{!48, !41, i64 0} +// CHECK:STDOUT: !50 = !DIFile(filename: "implicit_default.carbon", directory: "") +// CHECK:STDOUT: !51 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !50, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !52 = !{!23} +// CHECK:STDOUT: !53 = !DISubroutineType(types: !52) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !50, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !51) +// CHECK:STDOUT: !55 = !DILocation(line: 7, column: 3, scope: !54) +// CHECK:STDOUT: !57 = !DILocation(line: 6, column: 1, scope: !54) +// CHECK:STDOUT: !58 = !DIFile(filename: "./default.h", directory: "") +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !58, line: 4, type: !53, spFlags: DISPFlagDefinition, unit: !51) +// CHECK:STDOUT: !60 = !DILocation(line: 4, column: 3, scope: !59) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !12, line: 9, type: !53, spFlags: DISPFlagDefinition, unit: !51) +// CHECK:STDOUT: !64 = !DILocation(line: 9, column: 28, scope: !61) +// CHECK:STDOUT: !65 = !DILocation(line: 9, column: 21, scope: !61) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'defaulted_default.carbon' @@ -386,80 +386,80 @@ fn Four() { // CHECK:STDOUT: $_ZN26ExplicitlyDefaultedDefaultC2Ev = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc8_65.1.temp = alloca [4 x i8], align 4, !dbg !15 -// CHECK:STDOUT: %_.var.loc9 = alloca [4 x i8], align 4, !dbg !16 -// CHECK:STDOUT: %.loc12_65.1.temp = alloca [4 x i8], align 4, !dbg !17 -// CHECK:STDOUT: %_.var.loc13 = alloca [4 x i8], align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_65.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc8_65.1.temp), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !16 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9"(ptr %_.var.loc9), !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_65.1.temp), !dbg !17 -// CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc12_65.1.temp), !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !18 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271"(ptr %_.var.loc13), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc8_65.1.temp = alloca [4 x i8], align 4, !dbg !69 +// CHECK:STDOUT: %_.var.loc9 = alloca [4 x i8], align 4, !dbg !72 +// CHECK:STDOUT: %.loc12_65.1.temp = alloca [4 x i8], align 4, !dbg !74 +// CHECK:STDOUT: %_.var.loc13 = alloca [4 x i8], align 4, !dbg !77 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_65.1.temp), !dbg !69 +// CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc8_65.1.temp), !dbg !69 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !72 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9"(ptr %_.var.loc9), !dbg !72 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_65.1.temp), !dbg !74 +// CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc12_65.1.temp), !dbg !74 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !77 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271"(ptr %_.var.loc13), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !96 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !96 // CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %0) #0 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !82 +// CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !29 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !29 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !100 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !100 // CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %0) #0 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !32 -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !84 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9"(ptr sret([4 x i8]) %return) #0 !dbg !33 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !35 -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9"(ptr sret([4 x i8]) %return) #0 !dbg !85 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !88 +// CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271"(ptr sret([4 x i8]) %return) #0 !dbg !37 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !38 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271"(ptr sret([4 x i8]) %return) #0 !dbg !90 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !93 +// CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: inlinehint mustprogress nounwind uwtable // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN26ImplicitlyDefaultedDefaultC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %this) unnamed_addr #4 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !96 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %x_ = getelementptr inbounds nuw %struct.ImplicitlyDefaultedDefault, ptr %this1, i32 0, i32 0 -// CHECK:STDOUT: store i32 1, ptr %x_, align 4, !tbaa !40 +// CHECK:STDOUT: store i32 1, ptr %x_, align 4, !tbaa !98 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -467,10 +467,10 @@ fn Four() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN26ExplicitlyDefaultedDefaultC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %this) unnamed_addr #5 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !29 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !100 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %x_ = getelementptr inbounds nuw %struct.ExplicitlyDefaultedDefault, ptr %this1, i32 0, i32 0 -// CHECK:STDOUT: store i32 1, ptr %x_, align 4, !tbaa !42 +// CHECK:STDOUT: store i32 1, ptr %x_, align 4, !tbaa !102 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -484,54 +484,54 @@ fn Four() { // CHECK:STDOUT: attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!67} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "defaulted_default.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 8, column: 7, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 7, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS26ImplicitlyDefaultedDefault", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp", scope: null, file: !24, line: 2, type: !25, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !24 = !DIFile(filename: "./defaulted_default.h", directory: "") -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !28 = !DILocation(line: 2, column: 8, scope: !23) -// CHECK:STDOUT: !29 = !{!30, !30, i64 0} -// CHECK:STDOUT: !30 = !{!"p1 _ZTS26ExplicitlyDefaultedDefault", !22, i64 0} -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp", scope: null, file: !24, line: 7, type: !25, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !32 = !DILocation(line: 7, column: 3, scope: !31) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9", scope: null, file: !34, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !34 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") -// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 28, scope: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 9, column: 21, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271", scope: null, file: !34, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !38 = !DILocation(line: 9, column: 28, scope: !37) -// CHECK:STDOUT: !39 = !DILocation(line: 9, column: 21, scope: !37) -// CHECK:STDOUT: !40 = !{!41, !9, i64 0} -// CHECK:STDOUT: !41 = !{!"_ZTS26ImplicitlyDefaultedDefault", !9, i64 0} -// CHECK:STDOUT: !42 = !{!43, !9, i64 0} -// CHECK:STDOUT: !43 = !{!"_ZTS26ExplicitlyDefaultedDefault", !9, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !12 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !37 = !{!"omnipotent char", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"any pointer", !37, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !37, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !49 = !{!48, !41, i64 0} +// CHECK:STDOUT: !52 = !{!23} +// CHECK:STDOUT: !53 = !DISubroutineType(types: !52) +// CHECK:STDOUT: !66 = !DIFile(filename: "defaulted_default.carbon", directory: "") +// CHECK:STDOUT: !67 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !66, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !66, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !69 = !DILocation(line: 8, column: 7, scope: !68) +// CHECK:STDOUT: !72 = !DILocation(line: 9, column: 3, scope: !68) +// CHECK:STDOUT: !74 = !DILocation(line: 12, column: 7, scope: !68) +// CHECK:STDOUT: !77 = !DILocation(line: 13, column: 3, scope: !68) +// CHECK:STDOUT: !79 = !DILocation(line: 6, column: 1, scope: !68) +// CHECK:STDOUT: !80 = !DIFile(filename: "./defaulted_default.h", directory: "") +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp", scope: null, file: !80, line: 2, type: !53, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !82 = !DILocation(line: 2, column: 8, scope: !81) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp", scope: null, file: !80, line: 7, type: !53, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !84 = !DILocation(line: 7, column: 3, scope: !83) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9", scope: null, file: !12, line: 9, type: !53, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !88 = !DILocation(line: 9, column: 28, scope: !85) +// CHECK:STDOUT: !89 = !DILocation(line: 9, column: 21, scope: !85) +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271", scope: null, file: !12, line: 9, type: !53, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !93 = !DILocation(line: 9, column: 28, scope: !90) +// CHECK:STDOUT: !94 = !DILocation(line: 9, column: 21, scope: !90) +// CHECK:STDOUT: !95 = !{!"p1 _ZTS26ImplicitlyDefaultedDefault", !38, i64 0} +// CHECK:STDOUT: !96 = !{!95, !95, i64 0} +// CHECK:STDOUT: !97 = !{!"_ZTS26ImplicitlyDefaultedDefault", !41, i64 0} +// CHECK:STDOUT: !98 = !{!97, !41, i64 0} +// CHECK:STDOUT: !99 = !{!"p1 _ZTS26ExplicitlyDefaultedDefault", !38, i64 0} +// CHECK:STDOUT: !100 = !{!99, !99, i64 0} +// CHECK:STDOUT: !101 = !{!"_ZTS26ExplicitlyDefaultedDefault", !41, i64 0} +// CHECK:STDOUT: !102 = !{!101, !41, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_copy.carbon' @@ -540,12 +540,12 @@ fn Four() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCopy.Main(ptr sret([4 x i8]) %return, ptr %c) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCopy.Main(ptr sret([4 x i8]) %return, ptr %c) #0 !dbg !109 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_10.1.temp = alloca [4 x i8], align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_10.1.temp), !dbg !18 -// CHECK:STDOUT: call void @_ZN4CopyC1ERKS_.carbon_thunk._(ptr %c, ptr %return), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc7_10.1.temp = alloca [4 x i8], align 4, !dbg !114 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_10.1.temp), !dbg !114 +// CHECK:STDOUT: call void @_ZN4CopyC1ERKS_.carbon_thunk._(ptr %c, ptr %return), !dbg !114 +// CHECK:STDOUT: ret void, !dbg !115 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -553,19 +553,19 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !20 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !123 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !123 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !123 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !123 // CHECK:STDOUT: call void @_ZN4CopyC1ERKS_(ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.58fe21e3ef78b0d7.Core:Copy.Cpp"(ptr sret([4 x i8]) %return, ptr %self) #2 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.58fe21e3ef78b0d7.Core:Copy.Cpp"(ptr sret([4 x i8]) %return, ptr %self) #2 !dbg !118 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN4CopyC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !27 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: call void @_ZN4CopyC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !120 +// CHECK:STDOUT: ret void, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -579,38 +579,38 @@ fn Four() { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!104} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_copy.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS4Copy", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.58fe21e3ef78b0d7.Core:Copy.Cpp", scope: null, file: !24, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !24 = !DIFile(filename: "./copy.h", directory: "") -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !23, type: !15) -// CHECK:STDOUT: !27 = !DILocation(line: 5, column: 3, scope: !23) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !37 = !{!"omnipotent char", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"any pointer", !37, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !37, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !49 = !{!48, !41, i64 0} +// CHECK:STDOUT: !103 = !DIFile(filename: "call_copy.carbon", directory: "") +// CHECK:STDOUT: !104 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !103, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !105 = !{!23, !23} +// CHECK:STDOUT: !106 = !DISubroutineType(types: !105) +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !103, line: 6, type: !106, spFlags: DISPFlagDefinition, unit: !104, retainedNodes: !116) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !23) +// CHECK:STDOUT: !114 = !DILocation(line: 7, column: 10, scope: !109) +// CHECK:STDOUT: !115 = !DILocation(line: 7, column: 3, scope: !109) +// CHECK:STDOUT: !116 = !{!110} +// CHECK:STDOUT: !117 = !DIFile(filename: "./copy.h", directory: "") +// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.58fe21e3ef78b0d7.Core:Copy.Cpp", scope: null, file: !117, line: 5, type: !106, spFlags: DISPFlagDefinition, unit: !104, retainedNodes: !121) +// CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !118, type: !23) +// CHECK:STDOUT: !120 = !DILocation(line: 5, column: 3, scope: !118) +// CHECK:STDOUT: !121 = !{!119} +// CHECK:STDOUT: !122 = !{!"p1 _ZTS4Copy", !38, i64 0} +// CHECK:STDOUT: !123 = !{!122, !122, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_c1_in_thunk.carbon' @@ -642,20 +642,20 @@ fn Four() { // CHECK:STDOUT: @_ZTS4Base = linkonce_odr dso_local constant [6 x i8] c"4Base\00", comdat, align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_44.1.temp = alloca [8 x i8], align 8, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_44.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_ZN7DerivedC1Ev.carbon_thunk.(ptr %.loc7_44.1.temp), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: %.loc7_44.1.temp = alloca [8 x i8], align 8, !dbg !128 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_44.1.temp), !dbg !128 +// CHECK:STDOUT: call void @_ZN7DerivedC1Ev.carbon_thunk.(ptr %.loc7_44.1.temp), !dbg !128 +// CHECK:STDOUT: ret void, !dbg !131 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN7DerivedC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !17 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !133 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !133 // CHECK:STDOUT: call void @_ZN7DerivedC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #0 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -667,9 +667,9 @@ fn Four() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN7DerivedC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !133 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr] }, ptr @_ZTV7Derived, i32 0, i32 0, i32 3), ptr %this1, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr] }, ptr @_ZTV7Derived, i32 0, i32 0, i32 3), ptr %this1, align 8, !tbaa !135 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -678,32 +678,32 @@ fn Four() { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!126} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_c1_in_thunk.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 24, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !17 = !{!18, !18, i64 0} -// CHECK:STDOUT: !18 = !{!"p1 _ZTS7Derived", !19, i64 0} -// CHECK:STDOUT: !19 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"vtable pointer", !11, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !36 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !37 = !{!"omnipotent char", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"any pointer", !37, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !37, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !49 = !{!48, !41, i64 0} +// CHECK:STDOUT: !125 = !DIFile(filename: "call_c1_in_thunk.carbon", directory: "") +// CHECK:STDOUT: !126 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !125, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !125, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !126) +// CHECK:STDOUT: !128 = !DILocation(line: 7, column: 24, scope: !127) +// CHECK:STDOUT: !131 = !DILocation(line: 6, column: 1, scope: !127) +// CHECK:STDOUT: !132 = !{!"p1 _ZTS7Derived", !38, i64 0} +// CHECK:STDOUT: !133 = !{!132, !132, i64 0} +// CHECK:STDOUT: !134 = !{!"vtable pointer", !36, i64 0} +// CHECK:STDOUT: !135 = !{!134, !134, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_multi_argument.carbon' @@ -720,23 +720,23 @@ fn Four() { // CHECK:STDOUT: $_ZN9MultiArgCC2Eiiii = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CZero.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CZero.Main() #0 !dbg !146 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_50.1.temp = alloca [1 x i8], align 1, !dbg !15 -// CHECK:STDOUT: %.loc8_27.2.temp = alloca [1 x i8], align 1, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_50.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ev.carbon_thunk.(ptr %.loc7_50.1.temp), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_27.2.temp), !dbg !16 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ev.carbon_thunk_tuple.(ptr %.loc8_27.2.temp), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %.loc7_50.1.temp = alloca [1 x i8], align 1, !dbg !147 +// CHECK:STDOUT: %.loc8_27.2.temp = alloca [1 x i8], align 1, !dbg !150 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_50.1.temp), !dbg !147 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ev.carbon_thunk.(ptr %.loc7_50.1.temp), !dbg !147 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_27.2.temp), !dbg !150 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ev.carbon_thunk_tuple.(ptr %.loc8_27.2.temp), !dbg !150 +// CHECK:STDOUT: ret void, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN9MultiArgCC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !190 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -745,25 +745,25 @@ fn Four() { // CHECK:STDOUT: define internal void @_ZN9MultiArgCC1Ev.carbon_thunk_tuple.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !190 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_COne.Main() #0 !dbg !21 { +// CHECK:STDOUT: define void @_COne.Main() #0 !dbg !154 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_51.1.temp = alloca [1 x i8], align 1, !dbg !22 -// CHECK:STDOUT: %.loc13_26.1.temp = alloca [1 x i8], align 1, !dbg !23 -// CHECK:STDOUT: %.loc14_29.2.temp = alloca [1 x i8], align 1, !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_51.1.temp), !dbg !22 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ei.carbon_thunk._(i32 1, ptr %.loc12_51.1.temp), !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_26.1.temp), !dbg !23 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ei.carbon_thunk._(i32 2, ptr %.loc13_26.1.temp), !dbg !23 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_29.2.temp), !dbg !24 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ei.carbon_thunk_tuple._(i32 3, ptr %.loc14_29.2.temp), !dbg !24 -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: %.loc12_51.1.temp = alloca [1 x i8], align 1, !dbg !155 +// CHECK:STDOUT: %.loc13_26.1.temp = alloca [1 x i8], align 1, !dbg !158 +// CHECK:STDOUT: %.loc14_29.2.temp = alloca [1 x i8], align 1, !dbg !161 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_51.1.temp), !dbg !155 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ei.carbon_thunk._(i32 1, ptr %.loc12_51.1.temp), !dbg !155 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_26.1.temp), !dbg !158 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ei.carbon_thunk._(i32 2, ptr %.loc13_26.1.temp), !dbg !158 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_29.2.temp), !dbg !161 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Ei.carbon_thunk_tuple._(i32 3, ptr %.loc14_29.2.temp), !dbg !161 +// CHECK:STDOUT: ret void, !dbg !164 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -771,10 +771,10 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %2 = load i32, ptr %.addr, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %2 = load i32, ptr %.addr, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Ei(ptr noundef nonnull align 1 dereferenceable(1) %1, i32 noundef %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -784,24 +784,24 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %2 = load i32, ptr %.addr, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %2 = load i32, ptr %.addr, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Ei(ptr noundef nonnull align 1 dereferenceable(1) %1, i32 noundef %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTwo.Main() #0 !dbg !27 { +// CHECK:STDOUT: define void @_CTwo.Main() #0 !dbg !165 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_54.1.temp = alloca [1 x i8], align 1, !dbg !28 -// CHECK:STDOUT: %.loc19_31.2.temp = alloca [1 x i8], align 1, !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_54.1.temp), !dbg !28 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eii.carbon_thunk.__(i32 1, i32 2, ptr %.loc18_54.1.temp), !dbg !28 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_31.2.temp), !dbg !29 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eii.carbon_thunk_tuple.__(i32 3, i32 4, ptr %.loc19_31.2.temp), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %.loc18_54.1.temp = alloca [1 x i8], align 1, !dbg !166 +// CHECK:STDOUT: %.loc19_31.2.temp = alloca [1 x i8], align 1, !dbg !169 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_54.1.temp), !dbg !166 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eii.carbon_thunk.__(i32 1, i32 2, ptr %.loc18_54.1.temp), !dbg !166 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_31.2.temp), !dbg !169 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eii.carbon_thunk_tuple.__(i32 3, i32 4, ptr %.loc19_31.2.temp), !dbg !169 +// CHECK:STDOUT: ret void, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -810,12 +810,12 @@ fn Four() { // CHECK:STDOUT: %.addr = alloca i32, align 4 // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %2 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %3 = load i32, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: %4 = load i32, ptr %.addr1, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %2 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %3 = load i32, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: %4 = load i32, ptr %.addr1, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Eii(ptr noundef nonnull align 1 dereferenceable(1) %2, i32 noundef %3, i32 noundef %4) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -826,26 +826,26 @@ fn Four() { // CHECK:STDOUT: %.addr = alloca i32, align 4 // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %2 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %3 = load i32, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: %4 = load i32, ptr %.addr1, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %2 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %3 = load i32, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: %4 = load i32, ptr %.addr1, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Eii(ptr noundef nonnull align 1 dereferenceable(1) %2, i32 noundef %3, i32 noundef %4) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CThree.Main() #0 !dbg !31 { +// CHECK:STDOUT: define void @_CThree.Main() #0 !dbg !173 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc23_57.1.temp = alloca [1 x i8], align 1, !dbg !32 -// CHECK:STDOUT: %.loc24_34.2.temp = alloca [1 x i8], align 1, !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc23_57.1.temp), !dbg !32 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk.___(i32 1, i32 2, i32 3, ptr %.loc23_57.1.temp), !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_34.2.temp), !dbg !33 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk_tuple.___(i32 4, i32 5, i32 6, ptr %.loc24_34.2.temp), !dbg !33 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: %.loc23_57.1.temp = alloca [1 x i8], align 1, !dbg !174 +// CHECK:STDOUT: %.loc24_34.2.temp = alloca [1 x i8], align 1, !dbg !177 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc23_57.1.temp), !dbg !174 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk.___(i32 1, i32 2, i32 3, ptr %.loc23_57.1.temp), !dbg !174 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_34.2.temp), !dbg !177 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk_tuple.___(i32 4, i32 5, i32 6, ptr %.loc24_34.2.temp), !dbg !177 +// CHECK:STDOUT: ret void, !dbg !180 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -855,14 +855,14 @@ fn Four() { // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %3 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %4 = load i32, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: %5 = load i32, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: %6 = load i32, ptr %.addr2, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %3 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %4 = load i32, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: %5 = load i32, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: %6 = load i32, ptr %.addr2, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Eiiii(ptr noundef nonnull align 1 dereferenceable(1) %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef 0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -874,28 +874,28 @@ fn Four() { // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %3 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %4 = load i32, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: %5 = load i32, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: %6 = load i32, ptr %.addr2, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %3 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %4 = load i32, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: %5 = load i32, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: %6 = load i32, ptr %.addr2, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Eiiii(ptr noundef nonnull align 1 dereferenceable(1) %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef 0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFour.Main() #0 !dbg !35 { +// CHECK:STDOUT: define void @_CFour.Main() #0 !dbg !181 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc28_60.1.temp = alloca [1 x i8], align 1, !dbg !36 -// CHECK:STDOUT: %.loc29_37.2.temp = alloca [1 x i8], align 1, !dbg !37 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc28_60.1.temp), !dbg !36 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk.____(i32 1, i32 2, i32 3, i32 4, ptr %.loc28_60.1.temp), !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_37.2.temp), !dbg !37 -// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk_tuple.____(i32 5, i32 6, i32 7, i32 8, ptr %.loc29_37.2.temp), !dbg !37 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: %.loc28_60.1.temp = alloca [1 x i8], align 1, !dbg !182 +// CHECK:STDOUT: %.loc29_37.2.temp = alloca [1 x i8], align 1, !dbg !185 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc28_60.1.temp), !dbg !182 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk.____(i32 1, i32 2, i32 3, i32 4, ptr %.loc28_60.1.temp), !dbg !182 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_37.2.temp), !dbg !185 +// CHECK:STDOUT: call void @_ZN9MultiArgCC1Eiiii.carbon_thunk_tuple.____(i32 5, i32 6, i32 7, i32 8, ptr %.loc29_37.2.temp), !dbg !185 +// CHECK:STDOUT: ret void, !dbg !188 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -906,16 +906,16 @@ fn Four() { // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %.addr3 = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %3, ptr %.addr3, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %4 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %5 = load i32, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: %6 = load i32, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: %7 = load i32, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: %8 = load i32, ptr %.addr3, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %3, ptr %.addr3, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %4 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %5 = load i32, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: %6 = load i32, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: %7 = load i32, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: %8 = load i32, ptr %.addr3, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Eiiii(ptr noundef nonnull align 1 dereferenceable(1) %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -928,16 +928,16 @@ fn Four() { // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %.addr3 = alloca i32, align 4 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %3, ptr %.addr3, align 4, !tbaa !26 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %4 = load ptr, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %5 = load i32, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: %6 = load i32, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: %7 = load i32, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: %8 = load i32, ptr %.addr3, align 4, !tbaa !26 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %3, ptr %.addr3, align 4, !tbaa !191 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %4 = load ptr, ptr %return.addr, align 8, !tbaa !190 +// CHECK:STDOUT: %5 = load i32, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: %6 = load i32, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: %7 = load i32, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: %8 = load i32, ptr %.addr3, align 4, !tbaa !191 // CHECK:STDOUT: call void @_ZN9MultiArgCC2Eiiii(ptr noundef nonnull align 1 dereferenceable(1) %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -949,7 +949,7 @@ fn Four() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN9MultiArgCC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !190 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -959,8 +959,8 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr = alloca i32, align 4 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !18 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !190 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -971,9 +971,9 @@ fn Four() { // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr = alloca i32, align 4 // CHECK:STDOUT: %.addr1 = alloca i32, align 4 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !18 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !190 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 // CHECK:STDOUT: %this2 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -986,11 +986,11 @@ fn Four() { // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %.addr3 = alloca i32, align 4 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !18 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !26 -// CHECK:STDOUT: store i32 %3, ptr %.addr3, align 4, !tbaa !26 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !190 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !191 +// CHECK:STDOUT: store i32 %3, ptr %.addr3, align 4, !tbaa !191 // CHECK:STDOUT: %this4 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -1004,47 +1004,47 @@ fn Four() { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!137} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_multi_argument.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Zero", linkageName: "_CZero.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 26, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 26, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !18 = !{!19, !19, i64 0} -// CHECK:STDOUT: !19 = !{!"p1 _ZTS9MultiArgC", !20, i64 0} -// CHECK:STDOUT: !20 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "One", linkageName: "_COne.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !22 = !DILocation(line: 12, column: 26, scope: !21) -// CHECK:STDOUT: !23 = !DILocation(line: 13, column: 26, scope: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 14, column: 26, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 1, scope: !21) -// CHECK:STDOUT: !26 = !{!9, !9, i64 0} -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Two", linkageName: "_CTwo.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !28 = !DILocation(line: 18, column: 26, scope: !27) -// CHECK:STDOUT: !29 = !DILocation(line: 19, column: 26, scope: !27) -// CHECK:STDOUT: !30 = !DILocation(line: 17, column: 1, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Three", linkageName: "_CThree.Main", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !32 = !DILocation(line: 23, column: 26, scope: !31) -// CHECK:STDOUT: !33 = !DILocation(line: 24, column: 26, scope: !31) -// CHECK:STDOUT: !34 = !DILocation(line: 22, column: 1, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Four", linkageName: "_CFour.Main", scope: null, file: !1, line: 27, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !36 = !DILocation(line: 28, column: 26, scope: !35) -// CHECK:STDOUT: !37 = !DILocation(line: 29, column: 26, scope: !35) -// CHECK:STDOUT: !38 = !DILocation(line: 27, column: 1, scope: !35) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !36 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !37 = !{!"omnipotent char", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"any pointer", !37, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !37, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !49 = !{!48, !41, i64 0} +// CHECK:STDOUT: !136 = !DIFile(filename: "call_multi_argument.carbon", directory: "") +// CHECK:STDOUT: !137 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !136, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !146 = distinct !DISubprogram(name: "Zero", linkageName: "_CZero.Main", scope: null, file: !136, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !137) +// CHECK:STDOUT: !147 = !DILocation(line: 7, column: 26, scope: !146) +// CHECK:STDOUT: !150 = !DILocation(line: 8, column: 26, scope: !146) +// CHECK:STDOUT: !153 = !DILocation(line: 6, column: 1, scope: !146) +// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "One", linkageName: "_COne.Main", scope: null, file: !136, line: 11, type: !22, spFlags: DISPFlagDefinition, unit: !137) +// CHECK:STDOUT: !155 = !DILocation(line: 12, column: 26, scope: !154) +// CHECK:STDOUT: !158 = !DILocation(line: 13, column: 26, scope: !154) +// CHECK:STDOUT: !161 = !DILocation(line: 14, column: 26, scope: !154) +// CHECK:STDOUT: !164 = !DILocation(line: 11, column: 1, scope: !154) +// CHECK:STDOUT: !165 = distinct !DISubprogram(name: "Two", linkageName: "_CTwo.Main", scope: null, file: !136, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !137) +// CHECK:STDOUT: !166 = !DILocation(line: 18, column: 26, scope: !165) +// CHECK:STDOUT: !169 = !DILocation(line: 19, column: 26, scope: !165) +// CHECK:STDOUT: !172 = !DILocation(line: 17, column: 1, scope: !165) +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Three", linkageName: "_CThree.Main", scope: null, file: !136, line: 22, type: !22, spFlags: DISPFlagDefinition, unit: !137) +// CHECK:STDOUT: !174 = !DILocation(line: 23, column: 26, scope: !173) +// CHECK:STDOUT: !177 = !DILocation(line: 24, column: 26, scope: !173) +// CHECK:STDOUT: !180 = !DILocation(line: 22, column: 1, scope: !173) +// CHECK:STDOUT: !181 = distinct !DISubprogram(name: "Four", linkageName: "_CFour.Main", scope: null, file: !136, line: 27, type: !22, spFlags: DISPFlagDefinition, unit: !137) +// CHECK:STDOUT: !182 = !DILocation(line: 28, column: 26, scope: !181) +// CHECK:STDOUT: !185 = !DILocation(line: 29, column: 26, scope: !181) +// CHECK:STDOUT: !188 = !DILocation(line: 27, column: 1, scope: !181) +// CHECK:STDOUT: !189 = !{!"p1 _ZTS9MultiArgC", !38, i64 0} +// CHECK:STDOUT: !190 = !{!189, !189, i64 0} +// CHECK:STDOUT: !191 = !{!41, !41, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon b/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon index 656c0c6e5127..66da4fd968bf 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/conversion.carbon @@ -85,13 +85,13 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: %struct.A = type { i32 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertToVar.Main(ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CConvertToVar.Main(ptr %b) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [4 x i8], align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !18 -// CHECK:STDOUT: call void @_ZNK1Bcv1AEv.carbon_thunk._(ptr %b, ptr %a.var), !dbg !18 -// CHECK:STDOUT: call void @_ZN1AD1Ev(ptr %a.var), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %a.var = alloca [4 x i8], align 4, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !29 +// CHECK:STDOUT: call void @_ZNK1Bcv1AEv.carbon_thunk._(ptr %b, ptr %a.var), !dbg !29 +// CHECK:STDOUT: call void @_ZN1AD1Ev(ptr %a.var), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -99,10 +99,10 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !20 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !23 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !23 -// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !20, !nonnull !25 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !46 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !48 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !48 +// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !46, !nonnull !50 // CHECK:STDOUT: call void @_ZNK1Bcv1AEv(ptr dead_on_unwind writable sret(%struct.A) align 4 %0, ptr noundef nonnull align 1 dereferenceable(1) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -111,13 +111,13 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: declare void @_ZN1AD1Ev(ptr noundef nonnull align 4 dead_on_return(4) dereferenceable(4)) unnamed_addr #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertToValue.Main(ptr %b) #0 !dbg !26 { +// CHECK:STDOUT: define void @_CConvertToValue.Main(ptr %b) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_25.1.temp = alloca [4 x i8], align 4, !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_25.1.temp), !dbg !29 -// CHECK:STDOUT: call void @_ZNK1Bcv1AEv.carbon_thunk._(ptr %b, ptr %.loc20_25.1.temp), !dbg !29 -// CHECK:STDOUT: call void @_ZN1AD1Ev(ptr %.loc20_25.1.temp), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %.loc20_25.1.temp = alloca [4 x i8], align 4, !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_25.1.temp), !dbg !37 +// CHECK:STDOUT: call void @_ZNK1Bcv1AEv.carbon_thunk._(ptr %b, ptr %.loc20_25.1.temp), !dbg !37 +// CHECK:STDOUT: call void @_ZN1AD1Ev(ptr %.loc20_25.1.temp), !dbg !37 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -134,41 +134,41 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!53, !54, !55, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!57} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "class_to_class.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ConvertToVar", linkageName: "_CConvertToVar.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 1, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS1B", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = !{!24, !24, i64 0} -// CHECK:STDOUT: !24 = !{!"p1 _ZTS1A", !22, i64 0} -// CHECK:STDOUT: !25 = !{} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "ConvertToValue", linkageName: "_CConvertToValue.Main", scope: null, file: !1, line: 19, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !15) -// CHECK:STDOUT: !29 = !DILocation(line: 20, column: 25, scope: !26) -// CHECK:STDOUT: !30 = !DILocation(line: 19, column: 1, scope: !26) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "class_to_class.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "ConvertToVar", linkageName: "_CConvertToVar.Main", scope: null, file: !18, line: 15, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) +// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 1, scope: !26) +// CHECK:STDOUT: !33 = !{!27} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "ConvertToValue", linkageName: "_CConvertToValue.Main", scope: null, file: !18, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 25, scope: !34) +// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 1, scope: !34) +// CHECK:STDOUT: !41 = !{!35} +// CHECK:STDOUT: !42 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !43 = !{!"omnipotent char", !42, i64 0} +// CHECK:STDOUT: !44 = !{!"any pointer", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"p1 _ZTS1B", !44, i64 0} +// CHECK:STDOUT: !46 = !{!45, !45, i64 0} +// CHECK:STDOUT: !47 = !{!"p1 _ZTS1A", !44, i64 0} +// CHECK:STDOUT: !48 = !{!47, !47, i64 0} +// CHECK:STDOUT: !50 = !{} +// CHECK:STDOUT: !51 = !{!"int", !43, i64 0} +// CHECK:STDOUT: !53 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !54 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !55 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !56 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !57 = !{!56, !51, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'class_to_enum.carbon' @@ -177,15 +177,15 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertToVar.Main(ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CConvertToVar.Main(ptr %b) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %s.var = alloca i16, align 2, !dbg !18 -// CHECK:STDOUT: %i.var = alloca i16, align 2, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %s.var), !dbg !18 -// CHECK:STDOUT: call void @_ZNK5EnumBcv1SEv.carbon_thunk._(ptr %b, ptr %s.var), !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %i.var), !dbg !19 -// CHECK:STDOUT: call void @_ZNK5EnumBcv1IEv.carbon_thunk._(ptr %b, ptr %i.var), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %s.var = alloca i16, align 2, !dbg !64 +// CHECK:STDOUT: %i.var = alloca i16, align 2, !dbg !67 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %s.var), !dbg !64 +// CHECK:STDOUT: call void @_ZNK5EnumBcv1SEv.carbon_thunk._(ptr %b, ptr %s.var), !dbg !64 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %i.var), !dbg !67 +// CHECK:STDOUT: call void @_ZNK5EnumBcv1IEv.carbon_thunk._(ptr %b, ptr %i.var), !dbg !67 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -193,12 +193,12 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !21, !nonnull !25 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !84 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !85 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !85 +// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !84, !nonnull !50 // CHECK:STDOUT: %call = call noundef signext i16 @_ZNK5EnumBcv1SEv(ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !26 +// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !88 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -207,27 +207,27 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !21, !nonnull !25 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !84 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !85 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !85 +// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !84, !nonnull !50 // CHECK:STDOUT: %call = call noundef signext i16 @_ZNK5EnumBcv1IEv(ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !28 +// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !90 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertToValue.Main(ptr %b) #0 !dbg !30 { +// CHECK:STDOUT: define void @_CConvertToValue.Main(ptr %b) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_25.1.temp = alloca i16, align 2, !dbg !33 -// CHECK:STDOUT: %.loc21_25.1.temp = alloca i16, align 2, !dbg !34 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_25.1.temp), !dbg !33 -// CHECK:STDOUT: call void @_ZNK5EnumBcv1SEv.carbon_thunk._(ptr %b, ptr %.loc20_25.1.temp), !dbg !33 -// CHECK:STDOUT: %.loc20_25.5 = load i16, ptr %.loc20_25.1.temp, align 2, !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_25.1.temp), !dbg !34 -// CHECK:STDOUT: call void @_ZNK5EnumBcv1IEv.carbon_thunk._(ptr %b, ptr %.loc21_25.1.temp), !dbg !34 -// CHECK:STDOUT: %.loc21_25.5 = load i16, ptr %.loc21_25.1.temp, align 2, !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: %.loc20_25.1.temp = alloca i16, align 2, !dbg !75 +// CHECK:STDOUT: %.loc21_25.1.temp = alloca i16, align 2, !dbg !78 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_25.1.temp), !dbg !75 +// CHECK:STDOUT: call void @_ZNK5EnumBcv1SEv.carbon_thunk._(ptr %b, ptr %.loc20_25.1.temp), !dbg !75 +// CHECK:STDOUT: %.loc20_25.5 = load i16, ptr %.loc20_25.1.temp, align 2, !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_25.1.temp), !dbg !78 +// CHECK:STDOUT: call void @_ZNK5EnumBcv1IEv.carbon_thunk._(ptr %b, ptr %.loc21_25.1.temp), !dbg !78 +// CHECK:STDOUT: %.loc21_25.5 = load i16, ptr %.loc21_25.1.temp, align 2, !dbg !78 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -245,46 +245,46 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!59} +// CHECK:STDOUT: !llvm.module.flags = !{!53, !54, !55, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!57} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "class_to_enum.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ConvertToVar", linkageName: "_CConvertToVar.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 14, column: 1, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS5EnumB", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = !{!23, !23, i64 0} -// CHECK:STDOUT: !25 = !{} -// CHECK:STDOUT: !26 = !{!27, !27, i64 0} -// CHECK:STDOUT: !27 = !{!"_ZTS1S", !10, i64 0} -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"_ZTS1I", !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "ConvertToValue", linkageName: "_CConvertToValue.Main", scope: null, file: !1, line: 19, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !15) -// CHECK:STDOUT: !33 = !DILocation(line: 20, column: 25, scope: !30) -// CHECK:STDOUT: !34 = !DILocation(line: 21, column: 25, scope: !30) -// CHECK:STDOUT: !35 = !DILocation(line: 19, column: 1, scope: !30) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !42 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !43 = !{!"omnipotent char", !42, i64 0} +// CHECK:STDOUT: !44 = !{!"any pointer", !43, i64 0} +// CHECK:STDOUT: !50 = !{} +// CHECK:STDOUT: !51 = !{!"int", !43, i64 0} +// CHECK:STDOUT: !53 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !54 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !55 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !56 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !57 = !{!56, !51, i64 0} +// CHECK:STDOUT: !58 = !DIFile(filename: "class_to_enum.carbon", directory: "") +// CHECK:STDOUT: !59 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !58, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "ConvertToVar", linkageName: "_CConvertToVar.Main", scope: null, file: !58, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !59, retainedNodes: !71) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !21) +// CHECK:STDOUT: !64 = !DILocation(line: 15, column: 3, scope: !61) +// CHECK:STDOUT: !67 = !DILocation(line: 16, column: 3, scope: !61) +// CHECK:STDOUT: !70 = !DILocation(line: 14, column: 1, scope: !61) +// CHECK:STDOUT: !71 = !{!62} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "ConvertToValue", linkageName: "_CConvertToValue.Main", scope: null, file: !58, line: 19, type: !23, spFlags: DISPFlagDefinition, unit: !59, retainedNodes: !82) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !21) +// CHECK:STDOUT: !75 = !DILocation(line: 20, column: 25, scope: !72) +// CHECK:STDOUT: !78 = !DILocation(line: 21, column: 25, scope: !72) +// CHECK:STDOUT: !81 = !DILocation(line: 19, column: 1, scope: !72) +// CHECK:STDOUT: !82 = !{!73} +// CHECK:STDOUT: !83 = !{!"p1 _ZTS5EnumB", !44, i64 0} +// CHECK:STDOUT: !84 = !{!83, !83, i64 0} +// CHECK:STDOUT: !85 = !{!44, !44, i64 0} +// CHECK:STDOUT: !86 = !{!"_ZTS1S", !43, i64 0} +// CHECK:STDOUT: !88 = !{!86, !86, i64 0} +// CHECK:STDOUT: !89 = !{!"_ZTS1I", !43, i64 0} +// CHECK:STDOUT: !90 = !{!89, !89, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'class_to_int.carbon' @@ -293,37 +293,37 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertToVar.Main(ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CConvertToVar.Main(ptr %b) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !18 -// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK4IntBcviEv.carbon_thunk._(ptr %b), !dbg !18 -// CHECK:STDOUT: store i32 %__carbon_thunk.call, ptr %a.var, align 4, !dbg !18 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !100 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !100 +// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK4IntBcviEv.carbon_thunk._(ptr %b), !dbg !100 +// CHECK:STDOUT: store i32 %__carbon_thunk.call, ptr %a.var, align 4, !dbg !100 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !100 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal noundef i32 @_ZNK4IntBcviEv.carbon_thunk._(ptr noundef nonnull align 1 dereferenceable(1) %this) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !20, !nonnull !23 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !118 +// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !118, !nonnull !50 // CHECK:STDOUT: %call = call noundef i32 @_ZNK4IntBcviEv(ptr noundef nonnull align 1 dereferenceable(1) %0) // CHECK:STDOUT: ret i32 %call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !105 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertToValue.Main(ptr %b) #0 !dbg !31 { +// CHECK:STDOUT: define void @_CConvertToValue.Main(ptr %b) #0 !dbg !109 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK4IntBcviEv.carbon_thunk._(ptr %b), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK4IntBcviEv.carbon_thunk._(ptr %b), !dbg !112 +// CHECK:STDOUT: ret void, !dbg !115 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -336,44 +336,44 @@ fn ConvertToValue(b: Cpp.IntB) { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!92} +// CHECK:STDOUT: !llvm.module.flags = !{!53, !54, !55, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!57} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "class_to_int.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ConvertToVar", linkageName: "_CConvertToVar.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 1, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS4IntB", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = !{} -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 12, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{null, !27} -// CHECK:STDOUT: !27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !24, type: !27) -// CHECK:STDOUT: !30 = !DILocation(line: 12, column: 3, scope: !24) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "ConvertToValue", linkageName: "_CConvertToValue.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !15) -// CHECK:STDOUT: !34 = !DILocation(line: 16, column: 27, scope: !31) -// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !31) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !42 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !43 = !{!"omnipotent char", !42, i64 0} +// CHECK:STDOUT: !44 = !{!"any pointer", !43, i64 0} +// CHECK:STDOUT: !50 = !{} +// CHECK:STDOUT: !51 = !{!"int", !43, i64 0} +// CHECK:STDOUT: !53 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !54 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !55 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !56 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !57 = !{!56, !51, i64 0} +// CHECK:STDOUT: !91 = !DIFile(filename: "class_to_int.carbon", directory: "") +// CHECK:STDOUT: !92 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !91, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !95 = !{null, !20} +// CHECK:STDOUT: !96 = !DISubroutineType(types: !95) +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "ConvertToVar", linkageName: "_CConvertToVar.Main", scope: null, file: !91, line: 11, type: !23, spFlags: DISPFlagDefinition, unit: !92, retainedNodes: !104) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !21) +// CHECK:STDOUT: !100 = !DILocation(line: 12, column: 3, scope: !97) +// CHECK:STDOUT: !103 = !DILocation(line: 11, column: 1, scope: !97) +// CHECK:STDOUT: !104 = !{!98} +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !91, line: 12, type: !96, spFlags: DISPFlagDefinition, unit: !92, retainedNodes: !108) +// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !105, type: !20) +// CHECK:STDOUT: !107 = !DILocation(line: 12, column: 3, scope: !105) +// CHECK:STDOUT: !108 = !{!106} +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "ConvertToValue", linkageName: "_CConvertToValue.Main", scope: null, file: !91, line: 15, type: !23, spFlags: DISPFlagDefinition, unit: !92, retainedNodes: !116) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !109, type: !21) +// CHECK:STDOUT: !112 = !DILocation(line: 16, column: 27, scope: !109) +// CHECK:STDOUT: !115 = !DILocation(line: 15, column: 1, scope: !109) +// CHECK:STDOUT: !116 = !{!110} +// CHECK:STDOUT: !117 = !{!"p1 _ZTS4IntB", !44, i64 0} +// CHECK:STDOUT: !118 = !{!117, !117, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/copy_vs_move.carbon b/toolchain/lower/testdata/interop/cpp/class/import/copy_vs_move.carbon index 7f605ece7e4a..d7818548b51c 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/copy_vs_move.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/copy_vs_move.carbon @@ -123,17 +123,17 @@ fn PassTemporary() { // CHECK:STDOUT: define internal void @_Z13make_copyablev.carbon_thunk.(ptr noundef %return) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !43 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !43 // CHECK:STDOUT: call void @_Z13make_copyablev(ptr dead_on_unwind writable sret(%struct.Copyable) align 1 %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassGlobal.Main() #1 !dbg !15 { +// CHECK:STDOUT: define void @_CPassGlobal.Main() #1 !dbg !13 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr @_Cc.Main), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr @_Cc.Main), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable @@ -141,55 +141,55 @@ fn PassTemporary() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.Copyable, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !43 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !43 // CHECK:STDOUT: call void @_ZN8CopyableC1ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp, ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable(ptr noundef align 1 %agg.tmp) +// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable(ptr nofreeobj noundef align 1 dereferenceable(1) %agg.tmp) // CHECK:STDOUT: call void @_ZN8CopyableD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp) #1 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassTemporary.Main() #1 !dbg !20 { +// CHECK:STDOUT: define void @_CPassTemporary.Main() #1 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc21_39.1.temp = alloca [1 x i8], align 1, !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_39.1.temp), !dbg !21 -// CHECK:STDOUT: call void @_Z13make_copyablev.carbon_thunk.(ptr %.loc21_39.1.temp), !dbg !21 -// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr %.loc21_39.1.temp), !dbg !22 -// CHECK:STDOUT: call void @_ZN8CopyableD1Ev(ptr %.loc21_39.1.temp), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: %.loc21_39.1.temp = alloca [1 x i8], align 1, !dbg !18 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_39.1.temp), !dbg !18 +// CHECK:STDOUT: call void @_Z13make_copyablev.carbon_thunk.(ptr %.loc21_39.1.temp), !dbg !18 +// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr %.loc21_39.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_ZN8CopyableD1Ev(ptr %.loc21_39.1.temp), !dbg !18 +// CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: declare void @_ZN8CopyableD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassValue.Main(ptr %c) #1 !dbg !24 { +// CHECK:STDOUT: define void @_CPassValue.Main(ptr %c) #1 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr %c), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr %c), !dbg !25 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassRef.Main(ptr %c) #1 !dbg !32 { +// CHECK:STDOUT: define void @_CPassRef.Main(ptr %c) #1 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr %c), !dbg !35 -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: call void @_Z13pass_copyable8Copyable.carbon_thunk._(ptr %c), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !37 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z13make_copyablev.carbon_thunk.(ptr @_Cc.Main), !dbg !38 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: call void @_Z13make_copyablev.carbon_thunk.(ptr @_Cc.Main), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z13make_copyablev(ptr dead_on_unwind writable sret(%struct.Copyable) align 1) #4 // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_Z13pass_copyable8Copyable(ptr noundef align 1) #4 +// CHECK:STDOUT: declare void @_Z13pass_copyable8Copyable(ptr nofreeobj noundef align 1 dereferenceable(1)) #4 // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN8CopyableC1ERKS_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 // CHECK:STDOUT: @@ -199,50 +199,50 @@ fn PassTemporary() { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!7} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!50} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "copyable.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTS8Copyable", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "PassGlobal", linkageName: "_CPassGlobal.Main", scope: null, file: !1, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null} -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 3, scope: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 1, scope: !15) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "PassTemporary", linkageName: "_CPassTemporary.Main", scope: null, file: !1, line: 20, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DILocation(line: 21, column: 21, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 21, column: 3, scope: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 20, column: 1, scope: !20) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "PassValue", linkageName: "_CPassValue.Main", scope: null, file: !1, line: 24, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{null, !27} -// CHECK:STDOUT: !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !24, type: !27) -// CHECK:STDOUT: !30 = !DILocation(line: 25, column: 3, scope: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 24, column: 1, scope: !24) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "PassRef", linkageName: "_CPassRef.Main", scope: null, file: !1, line: 28, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !27) -// CHECK:STDOUT: !35 = !DILocation(line: 29, column: 3, scope: !32) -// CHECK:STDOUT: !36 = !DILocation(line: 28, column: 1, scope: !32) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !38 = !DILocation(line: 14, column: 23, scope: !37) -// CHECK:STDOUT: !39 = !DILocation(line: 0, scope: !37) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIFile(filename: "copyable.carbon", directory: "") +// CHECK:STDOUT: !7 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !9 = !{null, !8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !{null} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "PassGlobal", linkageName: "_CPassGlobal.Main", scope: null, file: !6, line: 16, type: !12, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 3, scope: !13) +// CHECK:STDOUT: !16 = !DILocation(line: 16, column: 1, scope: !13) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "PassTemporary", linkageName: "_CPassTemporary.Main", scope: null, file: !6, line: 20, type: !12, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !18 = !DILocation(line: 21, column: 21, scope: !17) +// CHECK:STDOUT: !19 = !DILocation(line: 21, column: 3, scope: !17) +// CHECK:STDOUT: !20 = !DILocation(line: 20, column: 1, scope: !17) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "PassValue", linkageName: "_CPassValue.Main", scope: null, file: !6, line: 24, type: !10, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !27) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !8) +// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 3, scope: !21) +// CHECK:STDOUT: !26 = !DILocation(line: 24, column: 1, scope: !21) +// CHECK:STDOUT: !27 = !{!22} +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "PassRef", linkageName: "_CPassRef.Main", scope: null, file: !6, line: 28, type: !10, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !34) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !8) +// CHECK:STDOUT: !32 = !DILocation(line: 29, column: 3, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 28, column: 1, scope: !28) +// CHECK:STDOUT: !34 = !{!29} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !6, type: !12, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !36 = !DILocation(line: 14, column: 23, scope: !35) +// CHECK:STDOUT: !38 = !DILocation(line: 0, scope: !35) +// CHECK:STDOUT: !39 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !40 = !{!"omnipotent char", !39, i64 0} +// CHECK:STDOUT: !41 = !{!"any pointer", !40, i64 0} +// CHECK:STDOUT: !42 = !{!"p1 _ZTS8Copyable", !41, i64 0} +// CHECK:STDOUT: !43 = !{!42, !42, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"int", !40, i64 0} +// CHECK:STDOUT: !49 = !{!"__libc_errno", !48, i64 0} +// CHECK:STDOUT: !50 = !{!49, !48, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'copy_or_move.carbon' @@ -259,17 +259,17 @@ fn PassTemporary() { // CHECK:STDOUT: define internal void @_Z17make_copy_or_movev.carbon_thunk.(ptr noundef %return) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !81 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !81 // CHECK:STDOUT: call void @_Z17make_copy_or_movev(ptr dead_on_unwind writable sret(%struct.CopyOrMove) align 1 %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassGlobal.Main() #1 !dbg !15 { +// CHECK:STDOUT: define void @_CPassGlobal.Main() #1 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk._(ptr @_Cc.Main), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk._(ptr @_Cc.Main), !dbg !55 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable @@ -277,23 +277,23 @@ fn PassTemporary() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.CopyOrMove, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !81 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !81 // CHECK:STDOUT: call void @_ZN10CopyOrMoveC1ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp, ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove(ptr noundef align 1 %agg.tmp) +// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove(ptr nofreeobj noundef align 1 dereferenceable(1) %agg.tmp) // CHECK:STDOUT: call void @_ZN10CopyOrMoveD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp) #1 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassTemporary.Main() #1 !dbg !20 { +// CHECK:STDOUT: define void @_CPassTemporary.Main() #1 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !21 -// CHECK:STDOUT: call void @_Z17make_copy_or_movev.carbon_thunk.(ptr %_.var), !dbg !22 -// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk.v(ptr %_.var), !dbg !23 -// CHECK:STDOUT: call void @_ZN10CopyOrMoveD1Ev(ptr %_.var), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !58 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !58 +// CHECK:STDOUT: call void @_Z17make_copy_or_movev.carbon_thunk.(ptr %_.var), !dbg !59 +// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk.v(ptr %_.var), !dbg !60 +// CHECK:STDOUT: call void @_ZN10CopyOrMoveD1Ev(ptr %_.var), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable @@ -301,10 +301,10 @@ fn PassTemporary() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.CopyOrMove, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !81 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !81 // CHECK:STDOUT: call void @_ZN10CopyOrMoveC1EOS_(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp, ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove(ptr noundef align 1 %agg.tmp) +// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove(ptr nofreeobj noundef align 1 dereferenceable(1) %agg.tmp) // CHECK:STDOUT: call void @_ZN10CopyOrMoveD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp) #1 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -313,32 +313,32 @@ fn PassTemporary() { // CHECK:STDOUT: declare void @_ZN10CopyOrMoveD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassValue.Main(ptr %c) #1 !dbg !25 { +// CHECK:STDOUT: define void @_CPassValue.Main(ptr %c) #1 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk._(ptr %c), !dbg !31 -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk._(ptr %c), !dbg !66 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassRef.Main(ptr %c) #1 !dbg !33 { +// CHECK:STDOUT: define void @_CPassRef.Main(ptr %c) #1 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk._(ptr %c), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: call void @_Z17pass_copy_or_move10CopyOrMove.carbon_thunk._(ptr %c), !dbg !73 +// CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !38 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z17make_copy_or_movev.carbon_thunk.(ptr @_Cc.Main), !dbg !39 -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: call void @_Z17make_copy_or_movev.carbon_thunk.(ptr @_Cc.Main), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z17make_copy_or_movev(ptr dead_on_unwind writable sret(%struct.CopyOrMove) align 1) #4 // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_Z17pass_copy_or_move10CopyOrMove(ptr noundef align 1) #4 +// CHECK:STDOUT: declare void @_Z17pass_copy_or_move10CopyOrMove(ptr nofreeobj noundef align 1 dereferenceable(1)) #4 // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN10CopyOrMoveC1ERKS_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 // CHECK:STDOUT: @@ -354,51 +354,51 @@ fn PassTemporary() { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!52} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!50} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "copy_or_move.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTS10CopyOrMove", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "PassGlobal", linkageName: "_CPassGlobal.Main", scope: null, file: !1, line: 18, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null} -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 3, scope: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 18, column: 1, scope: !15) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "PassTemporary", linkageName: "_CPassTemporary.Main", scope: null, file: !1, line: 22, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 34, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 25, scope: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 23, column: 3, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 1, scope: !20) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "PassValue", linkageName: "_CPassValue.Main", scope: null, file: !1, line: 26, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{null, !28} -// CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !28) -// CHECK:STDOUT: !31 = !DILocation(line: 27, column: 3, scope: !25) -// CHECK:STDOUT: !32 = !DILocation(line: 26, column: 1, scope: !25) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "PassRef", linkageName: "_CPassRef.Main", scope: null, file: !1, line: 30, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !28) -// CHECK:STDOUT: !36 = !DILocation(line: 31, column: 3, scope: !33) -// CHECK:STDOUT: !37 = !DILocation(line: 30, column: 1, scope: !33) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 25, scope: !38) -// CHECK:STDOUT: !40 = !DILocation(line: 0, scope: !38) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !9 = !{null, !8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !{null} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !39 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !40 = !{!"omnipotent char", !39, i64 0} +// CHECK:STDOUT: !41 = !{!"any pointer", !40, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"int", !40, i64 0} +// CHECK:STDOUT: !49 = !{!"__libc_errno", !48, i64 0} +// CHECK:STDOUT: !50 = !{!49, !48, i64 0} +// CHECK:STDOUT: !51 = !DIFile(filename: "copy_or_move.carbon", directory: "") +// CHECK:STDOUT: !52 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !51, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "PassGlobal", linkageName: "_CPassGlobal.Main", scope: null, file: !51, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !55 = !DILocation(line: 19, column: 3, scope: !53) +// CHECK:STDOUT: !56 = !DILocation(line: 18, column: 1, scope: !53) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "PassTemporary", linkageName: "_CPassTemporary.Main", scope: null, file: !51, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !58 = !DILocation(line: 13, column: 34, scope: !57) +// CHECK:STDOUT: !59 = !DILocation(line: 23, column: 25, scope: !57) +// CHECK:STDOUT: !60 = !DILocation(line: 23, column: 3, scope: !57) +// CHECK:STDOUT: !61 = !DILocation(line: 22, column: 1, scope: !57) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "PassValue", linkageName: "_CPassValue.Main", scope: null, file: !51, line: 26, type: !10, spFlags: DISPFlagDefinition, unit: !52, retainedNodes: !68) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !8) +// CHECK:STDOUT: !66 = !DILocation(line: 27, column: 3, scope: !62) +// CHECK:STDOUT: !67 = !DILocation(line: 26, column: 1, scope: !62) +// CHECK:STDOUT: !68 = !{!63} +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "PassRef", linkageName: "_CPassRef.Main", scope: null, file: !51, line: 30, type: !10, spFlags: DISPFlagDefinition, unit: !52, retainedNodes: !75) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !8) +// CHECK:STDOUT: !73 = !DILocation(line: 31, column: 3, scope: !69) +// CHECK:STDOUT: !74 = !DILocation(line: 30, column: 1, scope: !69) +// CHECK:STDOUT: !75 = !{!70} +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !51, type: !12, spFlags: DISPFlagDefinition, unit: !52) +// CHECK:STDOUT: !77 = !DILocation(line: 16, column: 25, scope: !76) +// CHECK:STDOUT: !79 = !DILocation(line: 0, scope: !76) +// CHECK:STDOUT: !80 = !{!"p1 _ZTS10CopyOrMove", !41, i64 0} +// CHECK:STDOUT: !81 = !{!80, !80, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'move_only.carbon' @@ -415,27 +415,27 @@ fn PassTemporary() { // CHECK:STDOUT: define internal void @_Z14make_move_onlyv.carbon_thunk.(ptr noundef %return) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !97 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !97 // CHECK:STDOUT: call void @_Z14make_move_onlyv(ptr dead_on_unwind writable sret(%struct.MoveOnly) align 1 %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassGlobalByMove.Main() #1 !dbg !15 { +// CHECK:STDOUT: define void @_CPassGlobalByMove.Main() #1 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassTemporary.Main() #1 !dbg !19 { +// CHECK:STDOUT: define void @_CPassTemporary.Main() #1 !dbg !87 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !20 -// CHECK:STDOUT: call void @_Z14make_move_onlyv.carbon_thunk.(ptr %_.var), !dbg !21 -// CHECK:STDOUT: call void @_Z14pass_move_only8MoveOnly.carbon_thunk.v(ptr %_.var), !dbg !22 -// CHECK:STDOUT: call void @_ZN8MoveOnlyD1Ev(ptr %_.var), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !88 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !88 +// CHECK:STDOUT: call void @_Z14make_move_onlyv.carbon_thunk.(ptr %_.var), !dbg !89 +// CHECK:STDOUT: call void @_Z14pass_move_only8MoveOnly.carbon_thunk.v(ptr %_.var), !dbg !90 +// CHECK:STDOUT: call void @_ZN8MoveOnlyD1Ev(ptr %_.var), !dbg !88 +// CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable @@ -443,10 +443,10 @@ fn PassTemporary() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.MoveOnly, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !97 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !97 // CHECK:STDOUT: call void @_ZN8MoveOnlyC1EOS_(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp, ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: call void @_Z14pass_move_only8MoveOnly(ptr noundef align 1 %agg.tmp) +// CHECK:STDOUT: call void @_Z14pass_move_only8MoveOnly(ptr nofreeobj noundef align 1 dereferenceable(1) %agg.tmp) // CHECK:STDOUT: call void @_ZN8MoveOnlyD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp) #1 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -458,15 +458,15 @@ fn PassTemporary() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !24 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z14make_move_onlyv.carbon_thunk.(ptr @_Cc.Main), !dbg !25 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: call void @_Z14make_move_onlyv.carbon_thunk.(ptr @_Cc.Main), !dbg !93 +// CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z14make_move_onlyv(ptr dead_on_unwind writable sret(%struct.MoveOnly) align 1) #4 // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_Z14pass_move_only8MoveOnly(ptr noundef align 1) #4 +// CHECK:STDOUT: declare void @_Z14pass_move_only8MoveOnly(ptr nofreeobj noundef align 1 dereferenceable(1)) #4 // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN8MoveOnlyC1EOS_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 // CHECK:STDOUT: @@ -479,35 +479,35 @@ fn PassTemporary() { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!84} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!50} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "move_only.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTS8MoveOnly", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "PassGlobalByMove", linkageName: "_CPassGlobalByMove.Main", scope: null, file: !1, line: 22, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null} -// CHECK:STDOUT: !18 = !DILocation(line: 22, column: 1, scope: !15) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "PassTemporary", linkageName: "_CPassTemporary.Main", scope: null, file: !1, line: 27, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 29, scope: !19) -// CHECK:STDOUT: !21 = !DILocation(line: 28, column: 22, scope: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 28, column: 3, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 27, column: 1, scope: !19) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !25 = !DILocation(line: 20, column: 23, scope: !24) -// CHECK:STDOUT: !26 = !DILocation(line: 0, scope: !24) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !11 = !{null} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !39 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !40 = !{!"omnipotent char", !39, i64 0} +// CHECK:STDOUT: !41 = !{!"any pointer", !40, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"int", !40, i64 0} +// CHECK:STDOUT: !49 = !{!"__libc_errno", !48, i64 0} +// CHECK:STDOUT: !50 = !{!49, !48, i64 0} +// CHECK:STDOUT: !83 = !DIFile(filename: "move_only.carbon", directory: "") +// CHECK:STDOUT: !84 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !83, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "PassGlobalByMove", linkageName: "_CPassGlobalByMove.Main", scope: null, file: !83, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !84) +// CHECK:STDOUT: !86 = !DILocation(line: 22, column: 1, scope: !85) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "PassTemporary", linkageName: "_CPassTemporary.Main", scope: null, file: !83, line: 27, type: !12, spFlags: DISPFlagDefinition, unit: !84) +// CHECK:STDOUT: !88 = !DILocation(line: 17, column: 29, scope: !87) +// CHECK:STDOUT: !89 = !DILocation(line: 28, column: 22, scope: !87) +// CHECK:STDOUT: !90 = !DILocation(line: 28, column: 3, scope: !87) +// CHECK:STDOUT: !91 = !DILocation(line: 27, column: 1, scope: !87) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !83, type: !12, spFlags: DISPFlagDefinition, unit: !84) +// CHECK:STDOUT: !93 = !DILocation(line: 20, column: 23, scope: !92) +// CHECK:STDOUT: !95 = !DILocation(line: 0, scope: !92) +// CHECK:STDOUT: !96 = !{!"p1 _ZTS8MoveOnly", !41, i64 0} +// CHECK:STDOUT: !97 = !{!96, !96, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/destructor.carbon b/toolchain/lower/testdata/interop/cpp/class/import/destructor.carbon index 9f9034232221..8f2a057f3647 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/destructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/destructor.carbon @@ -68,102 +68,102 @@ fn DestroyAIndirectly() { // CHECK:STDOUT: @Constexpr.val.loc18_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDestroy.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CDestroy.Main() #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc16 = alloca {}, align 1, !dbg !15 -// CHECK:STDOUT: %_.var.loc17 = alloca {}, align 1, !dbg !16 -// CHECK:STDOUT: %_.var.loc18 = alloca {}, align 1, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !15 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @Trivial.val.loc16_3, i64 0, i1 false), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !16 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc17, ptr align 1 @Nontrivial.val.loc17_3, i64 0, i1 false), !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !17 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc18, ptr align 1 @Constexpr.val.loc18_3, i64 0, i1 false), !dbg !17 -// CHECK:STDOUT: call void @_ZN9ConstexprD2Ev(ptr %_.var.loc18), !dbg !17 -// CHECK:STDOUT: call void @_ZN10NontrivialD1Ev(ptr %_.var.loc17), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %_.var.loc16 = alloca {}, align 1, !dbg !42 +// CHECK:STDOUT: %_.var.loc17 = alloca {}, align 1, !dbg !44 +// CHECK:STDOUT: %_.var.loc18 = alloca {}, align 1, !dbg !46 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !42 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc16, ptr align 1 @Trivial.val.loc16_3, i64 0, i1 false), !dbg !42 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !44 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc17, ptr align 1 @Nontrivial.val.loc17_3, i64 0, i1 false), !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !46 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.loc18, ptr align 1 @Constexpr.val.loc18_3, i64 0, i1 false), !dbg !46 +// CHECK:STDOUT: call void @_ZN9ConstexprD2Ev(ptr %_.var.loc18), !dbg !46 +// CHECK:STDOUT: call void @_ZN10NontrivialD1Ev(ptr %_.var.loc17), !dbg !44 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN9ConstexprD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #1 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !19 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !98 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.74d6bfd440841f14.Core:Constexpr.Cpp"(ptr %self) #2 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.74d6bfd440841f14.Core:Constexpr.Cpp"(ptr %self) #2 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN9ConstexprD2Ev(ptr %self), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: call void @_ZN9ConstexprD2Ev(ptr %self), !dbg !52 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: declare void @_ZN10NontrivialD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.470f41253d102356.Core:Trivial.Cpp"(ptr %self) #2 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.470f41253d102356.Core:Trivial.Cpp"(ptr %self) #2 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CMake.Trivial.Cpp:Make.Main"(ptr sret({}) %return) #0 !dbg !33 { +// CHECK:STDOUT: define void @"_CMake.Trivial.Cpp:Make.Main"(ptr sret({}) %return) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN7TrivialC1Ev.carbon_thunk.(ptr %return), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: call void @_ZN7TrivialC1Ev.carbon_thunk.(ptr %return), !dbg !62 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN7TrivialC1Ev.carbon_thunk.(ptr noundef %return) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !38 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !38 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !100 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !100 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CMake.Nontrivial.Cpp:Make.Main"(ptr sret({}) %return) #0 !dbg !40 { +// CHECK:STDOUT: define void @"_CMake.Nontrivial.Cpp:Make.Main"(ptr sret({}) %return) #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN10NontrivialC1Ev.carbon_thunk.(ptr %return), !dbg !41 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: call void @_ZN10NontrivialC1Ev.carbon_thunk.(ptr %return), !dbg !67 +// CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN10NontrivialC1Ev.carbon_thunk.(ptr noundef %return) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !43 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !43 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !102 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !102 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CMake.Constexpr.Cpp:Make.Main"(ptr sret({}) %return) #0 !dbg !45 { +// CHECK:STDOUT: define void @"_CMake.Constexpr.Cpp:Make.Main"(ptr sret({}) %return) #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN9ConstexprC1Ev.carbon_thunk.(ptr %return), !dbg !46 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: call void @_ZN9ConstexprC1Ev.carbon_thunk.(ptr %return), !dbg !72 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN9ConstexprC1Ev.carbon_thunk.(ptr noundef %return) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !19 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !19 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !98 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !98 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDestroyAIndirectly.Main() #0 !dbg !48 { +// CHECK:STDOUT: define void @_CDestroyAIndirectly.Main() #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDestroyIndirectly.Main.2a28a415478a31f5(), !dbg !49 -// CHECK:STDOUT: call void @_CDestroyIndirectly.Main.a0f524e76111d8a1(), !dbg !50 -// CHECK:STDOUT: call void @_CDestroyIndirectly.Main.bf648cc7ac7f04db(), !dbg !51 -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: call void @_CDestroyIndirectly.Main.2a28a415478a31f5(), !dbg !75 +// CHECK:STDOUT: call void @_CDestroyIndirectly.Main.a0f524e76111d8a1(), !dbg !76 +// CHECK:STDOUT: call void @_CDestroyIndirectly.Main.bf648cc7ac7f04db(), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -173,33 +173,33 @@ fn DestroyAIndirectly() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #5 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDestroyIndirectly.Main.2a28a415478a31f5() #0 !dbg !53 { +// CHECK:STDOUT: define linkonce_odr void @_CDestroyIndirectly.Main.2a28a415478a31f5() #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !54 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !54 -// CHECK:STDOUT: call void @"_CMake.Trivial.Cpp:Make.Main"(ptr %a.var), !dbg !55 -// CHECK:STDOUT: call void @"_COp:thunk:Destroy.470f41253d102356.Core:Trivial.Cpp"(ptr %a.var), !dbg !54 -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !80 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !80 +// CHECK:STDOUT: call void @"_CMake.Trivial.Cpp:Make.Main"(ptr %a.var), !dbg !81 +// CHECK:STDOUT: call void @"_COp:thunk:Destroy.470f41253d102356.Core:Trivial.Cpp"(ptr %a.var), !dbg !80 +// CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDestroyIndirectly.Main.a0f524e76111d8a1() #0 !dbg !57 { +// CHECK:STDOUT: define linkonce_odr void @_CDestroyIndirectly.Main.a0f524e76111d8a1() #0 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !58 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !58 -// CHECK:STDOUT: call void @"_CMake.Nontrivial.Cpp:Make.Main"(ptr %a.var), !dbg !59 -// CHECK:STDOUT: call void @_ZN10NontrivialD1Ev(ptr %a.var), !dbg !58 -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !85 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !85 +// CHECK:STDOUT: call void @"_CMake.Nontrivial.Cpp:Make.Main"(ptr %a.var), !dbg !86 +// CHECK:STDOUT: call void @_ZN10NontrivialD1Ev(ptr %a.var), !dbg !85 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDestroyIndirectly.Main.bf648cc7ac7f04db() #0 !dbg !61 { +// CHECK:STDOUT: define linkonce_odr void @_CDestroyIndirectly.Main.bf648cc7ac7f04db() #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !62 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !62 -// CHECK:STDOUT: call void @"_CMake.Constexpr.Cpp:Make.Main"(ptr %a.var), !dbg !63 -// CHECK:STDOUT: call void @"_COp:thunk:Destroy.74d6bfd440841f14.Core:Constexpr.Cpp"(ptr %a.var), !dbg !62 -// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !90 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !90 +// CHECK:STDOUT: call void @"_CMake.Constexpr.Cpp:Make.Main"(ptr %a.var), !dbg !91 +// CHECK:STDOUT: call void @"_COp:thunk:Destroy.74d6bfd440841f14.Core:Constexpr.Cpp"(ptr %a.var), !dbg !90 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -214,73 +214,73 @@ fn DestroyAIndirectly() { // CHECK:STDOUT: attributes #4 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} +// CHECK:STDOUT: !llvm.module.flags = !{!103, !104, !105, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!108} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_destructor.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Destroy", linkageName: "_CDestroy.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 1, scope: !12) -// CHECK:STDOUT: !19 = !{!20, !20, i64 0} -// CHECK:STDOUT: !20 = !{!"p1 _ZTS9Constexpr", !21, i64 0} -// CHECK:STDOUT: !21 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.74d6bfd440841f14.Core:Constexpr.Cpp", scope: null, file: !1, line: 11, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 11, column: 13, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.470f41253d102356.Core:Trivial.Cpp", scope: null, file: !1, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !25) -// CHECK:STDOUT: !32 = !DILocation(line: 6, column: 8, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Trivial.Cpp:Make.Main", scope: null, file: !1, line: 25, type: !34, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !34 = !DISubroutineType(types: !35) -// CHECK:STDOUT: !35 = !{!25} -// CHECK:STDOUT: !36 = !DILocation(line: 25, column: 30, scope: !33) -// CHECK:STDOUT: !37 = !DILocation(line: 25, column: 23, scope: !33) -// CHECK:STDOUT: !38 = !{!39, !39, i64 0} -// CHECK:STDOUT: !39 = !{!"p1 _ZTS7Trivial", !21, i64 0} -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Nontrivial.Cpp:Make.Main", scope: null, file: !1, line: 28, type: !34, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !41 = !DILocation(line: 28, column: 30, scope: !40) -// CHECK:STDOUT: !42 = !DILocation(line: 28, column: 23, scope: !40) -// CHECK:STDOUT: !43 = !{!44, !44, i64 0} -// CHECK:STDOUT: !44 = !{!"p1 _ZTS10Nontrivial", !21, i64 0} -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Constexpr.Cpp:Make.Main", scope: null, file: !1, line: 31, type: !34, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !46 = !DILocation(line: 31, column: 30, scope: !45) -// CHECK:STDOUT: !47 = !DILocation(line: 31, column: 23, scope: !45) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "DestroyAIndirectly", linkageName: "_CDestroyAIndirectly.Main", scope: null, file: !1, line: 38, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !49 = !DILocation(line: 39, column: 3, scope: !48) -// CHECK:STDOUT: !50 = !DILocation(line: 40, column: 3, scope: !48) -// CHECK:STDOUT: !51 = !DILocation(line: 41, column: 3, scope: !48) -// CHECK:STDOUT: !52 = !DILocation(line: 38, column: 1, scope: !48) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "DestroyIndirectly", linkageName: "_CDestroyIndirectly.Main.2a28a415478a31f5", scope: null, file: !1, line: 34, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !54 = !DILocation(line: 35, column: 3, scope: !53) -// CHECK:STDOUT: !55 = !DILocation(line: 35, column: 21, scope: !53) -// CHECK:STDOUT: !56 = !DILocation(line: 34, column: 1, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "DestroyIndirectly", linkageName: "_CDestroyIndirectly.Main.a0f524e76111d8a1", scope: null, file: !1, line: 34, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !58 = !DILocation(line: 35, column: 3, scope: !57) -// CHECK:STDOUT: !59 = !DILocation(line: 35, column: 21, scope: !57) -// CHECK:STDOUT: !60 = !DILocation(line: 34, column: 1, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "DestroyIndirectly", linkageName: "_CDestroyIndirectly.Main.bf648cc7ac7f04db", scope: null, file: !1, line: 34, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !62 = !DILocation(line: 35, column: 3, scope: !61) -// CHECK:STDOUT: !63 = !DILocation(line: 35, column: 21, scope: !61) -// CHECK:STDOUT: !64 = !DILocation(line: 34, column: 1, scope: !61) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !DIFile(filename: "call_destructor.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !{null} +// CHECK:STDOUT: !35 = !DISubroutineType(types: !34) +// CHECK:STDOUT: !36 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !37 = !{null, !36} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !{!36} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Destroy", linkageName: "_CDestroy.Main", scope: null, file: !32, line: 15, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !42 = !DILocation(line: 16, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !DILocation(line: 17, column: 3, scope: !41) +// CHECK:STDOUT: !46 = !DILocation(line: 18, column: 3, scope: !41) +// CHECK:STDOUT: !48 = !DILocation(line: 15, column: 1, scope: !41) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.74d6bfd440841f14.Core:Constexpr.Cpp", scope: null, file: !32, line: 11, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !36) +// CHECK:STDOUT: !52 = !DILocation(line: 11, column: 13, scope: !49) +// CHECK:STDOUT: !53 = !{!50} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.470f41253d102356.Core:Trivial.Cpp", scope: null, file: !32, line: 6, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !36) +// CHECK:STDOUT: !57 = !DILocation(line: 6, column: 8, scope: !54) +// CHECK:STDOUT: !58 = !{!55} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Trivial.Cpp:Make.Main", scope: null, file: !32, line: 25, type: !40, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !62 = !DILocation(line: 25, column: 30, scope: !59) +// CHECK:STDOUT: !63 = !DILocation(line: 25, column: 23, scope: !59) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Nontrivial.Cpp:Make.Main", scope: null, file: !32, line: 28, type: !40, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !67 = !DILocation(line: 28, column: 30, scope: !64) +// CHECK:STDOUT: !68 = !DILocation(line: 28, column: 23, scope: !64) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Constexpr.Cpp:Make.Main", scope: null, file: !32, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !72 = !DILocation(line: 31, column: 30, scope: !69) +// CHECK:STDOUT: !73 = !DILocation(line: 31, column: 23, scope: !69) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "DestroyAIndirectly", linkageName: "_CDestroyAIndirectly.Main", scope: null, file: !32, line: 38, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !75 = !DILocation(line: 39, column: 3, scope: !74) +// CHECK:STDOUT: !76 = !DILocation(line: 40, column: 3, scope: !74) +// CHECK:STDOUT: !77 = !DILocation(line: 41, column: 3, scope: !74) +// CHECK:STDOUT: !78 = !DILocation(line: 38, column: 1, scope: !74) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "DestroyIndirectly", linkageName: "_CDestroyIndirectly.Main.2a28a415478a31f5", scope: null, file: !32, line: 34, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !80 = !DILocation(line: 35, column: 3, scope: !79) +// CHECK:STDOUT: !81 = !DILocation(line: 35, column: 21, scope: !79) +// CHECK:STDOUT: !83 = !DILocation(line: 34, column: 1, scope: !79) +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "DestroyIndirectly", linkageName: "_CDestroyIndirectly.Main.a0f524e76111d8a1", scope: null, file: !32, line: 34, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !85 = !DILocation(line: 35, column: 3, scope: !84) +// CHECK:STDOUT: !86 = !DILocation(line: 35, column: 21, scope: !84) +// CHECK:STDOUT: !88 = !DILocation(line: 34, column: 1, scope: !84) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "DestroyIndirectly", linkageName: "_CDestroyIndirectly.Main.bf648cc7ac7f04db", scope: null, file: !32, line: 34, type: !35, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !90 = !DILocation(line: 35, column: 3, scope: !89) +// CHECK:STDOUT: !91 = !DILocation(line: 35, column: 21, scope: !89) +// CHECK:STDOUT: !93 = !DILocation(line: 34, column: 1, scope: !89) +// CHECK:STDOUT: !94 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !95 = !{!"omnipotent char", !94, i64 0} +// CHECK:STDOUT: !96 = !{!"any pointer", !95, i64 0} +// CHECK:STDOUT: !97 = !{!"p1 _ZTS9Constexpr", !96, i64 0} +// CHECK:STDOUT: !98 = !{!97, !97, i64 0} +// CHECK:STDOUT: !99 = !{!"p1 _ZTS7Trivial", !96, i64 0} +// CHECK:STDOUT: !100 = !{!99, !99, i64 0} +// CHECK:STDOUT: !101 = !{!"p1 _ZTS10Nontrivial", !96, i64 0} +// CHECK:STDOUT: !102 = !{!101, !101, i64 0} +// CHECK:STDOUT: !103 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !104 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !105 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !106 = !{!"int", !95, i64 0} +// CHECK:STDOUT: !107 = !{!"__libc_errno", !106, i64 0} +// CHECK:STDOUT: !108 = !{!107, !106, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon index 000bdf794211..f7436efc69e5 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon @@ -74,7 +74,7 @@ fn DoThing() { // CHECK:STDOUT: define dso_local void @_Z3UseR4Base(ptr noundef nonnull align 8 dereferenceable(12) %b) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %b.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %b, ptr %b.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %b, ptr %b.addr, align 8, !tbaa !4 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -83,84 +83,84 @@ fn DoThing() { // CHECK:STDOUT: declare void @_ZNR4Base4funcEv(ptr noundef nonnull align 8 dereferenceable(12)) unnamed_addr #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_Cother_func.Derived.Main(ptr %self) #2 !dbg !15 { +// CHECK:STDOUT: define void @_Cother_func.Derived.Main(ptr %self) #2 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_Cfunc.Derived.Main(ptr %self) #2 !dbg !22 { +// CHECK:STDOUT: define void @_Cfunc.Derived.Main(ptr %self) #2 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_Cfunc:thunk:Base.Cpp:Derived.Main"(ptr %self) #3 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_Cfunc:thunk:Base.Cpp:Derived.Main"(ptr %self) #3 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Cfunc.Derived.Main(ptr %self), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: call void @_Cfunc.Derived.Main(ptr %self), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDoThing.Main() #2 !dbg !30 { +// CHECK:STDOUT: define void @_CDoThing.Main() #2 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %d.var = alloca { [16 x i8] }, align 8, !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !33 -// CHECK:STDOUT: %.loc31_44.1.base = getelementptr inbounds nuw { [16 x i8] }, ptr %d.var, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: call void @_ZN4BaseC1Ev.carbon_thunk.(ptr %.loc31_44.1.base), !dbg !35 -// CHECK:STDOUT: %.loc31_44.7.base = getelementptr inbounds nuw { [16 x i8] }, ptr %d.var, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: %.loc31_44.8.base = getelementptr inbounds nuw [16 x i8], ptr %.loc31_44.7.base, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: %.loc31_44.9.vptr = getelementptr inbounds nuw [8 x i8], ptr %.loc31_44.8.base, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon7DerivedE, i32 0, i32 0, i32 2), ptr %.loc31_44.9.vptr, align 8, !dbg !34 -// CHECK:STDOUT: %.loc32_11.3.base = getelementptr inbounds nuw [16 x i8], ptr %d.var, i32 0, i32 0, !dbg !36 -// CHECK:STDOUT: call void @_Z3UseR4Base(ptr %.loc32_11.3.base), !dbg !37 -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %d.var), !dbg !33 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: %d.var = alloca { [16 x i8] }, align 8, !dbg !61 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !61 +// CHECK:STDOUT: %.loc31_44.1.base = getelementptr inbounds nuw { [16 x i8] }, ptr %d.var, i32 0, i32 0, !dbg !62 +// CHECK:STDOUT: call void @_ZN4BaseC1Ev.carbon_thunk.(ptr %.loc31_44.1.base), !dbg !63 +// CHECK:STDOUT: %.loc31_44.7.base = getelementptr inbounds nuw { [16 x i8] }, ptr %d.var, i32 0, i32 0, !dbg !62 +// CHECK:STDOUT: %.loc31_44.8.base = getelementptr inbounds nuw [16 x i8], ptr %.loc31_44.7.base, i32 0, i32 0, !dbg !62 +// CHECK:STDOUT: %.loc31_44.9.vptr = getelementptr inbounds nuw [8 x i8], ptr %.loc31_44.8.base, i32 0, i32 0, !dbg !62 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon7DerivedE, i32 0, i32 0, i32 2), ptr %.loc31_44.9.vptr, align 8, !dbg !62 +// CHECK:STDOUT: %.loc32_11.3.base = getelementptr inbounds nuw [16 x i8], ptr %d.var, i32 0, i32 0, !dbg !66 +// CHECK:STDOUT: call void @_Z3UseR4Base(ptr %.loc32_11.3.base), !dbg !67 +// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %d.var), !dbg !61 +// CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN4BaseC1Ev.carbon_thunk.(ptr noundef %return) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !4 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !4 // CHECK:STDOUT: call void @_ZN4BaseC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %0) #2 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Derived.Main"(ptr %self) #3 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Derived.Main"(ptr %self) #3 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self), !dbg !42 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: call void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self), !dbg !71 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a4cea16271ab4a06:core.Destroy.Core"(ptr %self) #2 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.a4cea16271ab4a06:core.Destroy.Core"(ptr %self) #2 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #2 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8aa8f8dee0ff18e:core.Destroy.Core"(ptr %self) #2 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_Cfunc__carbon_thunk.Derived.Main(ptr %self) #2 !dbg !51 { +// CHECK:STDOUT: define void @_Cfunc__carbon_thunk.Derived.Main(ptr %self) #2 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Cfunc.Derived.Main(ptr %self), !dbg !54 -// CHECK:STDOUT: ret void, !dbg !54 +// CHECK:STDOUT: call void @_Cfunc.Derived.Main(ptr %self), !dbg !83 +// CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_Cother_func__carbon_thunk.Derived.Main(ptr %self) #2 !dbg !55 { +// CHECK:STDOUT: define void @_Cother_func__carbon_thunk.Derived.Main(ptr %self) #2 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Derived.other_func.call.vtable = load ptr, ptr %self, align 8, !dbg !58 -// CHECK:STDOUT: %Derived.other_func.call = call ptr @llvm.load.relative.i32(ptr %Derived.other_func.call.vtable, i32 8), !dbg !58 -// CHECK:STDOUT: call void %Derived.other_func.call(ptr %self), !dbg !58 -// CHECK:STDOUT: ret void, !dbg !58 +// CHECK:STDOUT: %Derived.other_func.call.vtable = load ptr, ptr %self, align 8, !dbg !87 +// CHECK:STDOUT: %Derived.other_func.call = call ptr @llvm.load.relative.i32(ptr %Derived.other_func.call.vtable, i32 8), !dbg !87 +// CHECK:STDOUT: call void %Derived.other_func.call(ptr %self), !dbg !87 +// CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -173,7 +173,7 @@ fn DoThing() { // CHECK:STDOUT: define internal void @_ZNR6Carbon7Derived4funcEv(ptr noundef nonnull align 8 dereferenceable(12) %this) unnamed_addr #4 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !59 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !94 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_Cfunc__carbon_thunk.Derived.Main(ptr noundef nonnull align 8 dereferenceable(12) %this1) // CHECK:STDOUT: ret void @@ -183,7 +183,7 @@ fn DoThing() { // CHECK:STDOUT: define internal void @_ZNK6Carbon7Derived10other_funcEv(ptr noundef nonnull align 8 dereferenceable(12) %this) unnamed_addr #4 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !59 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !94 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_Cother_func__carbon_thunk.Derived.Main(ptr noundef nonnull align 8 dereferenceable(12) %this1) // CHECK:STDOUT: ret void @@ -193,10 +193,10 @@ fn DoThing() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN4BaseC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %this) unnamed_addr #7 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !4 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_ZN11FurtherBaseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #2 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 16) ({ [4 x ptr] }, ptr @_ZTV4Base, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !61 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 16) ({ [4 x ptr] }, ptr @_ZTV4Base, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !90 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -204,9 +204,9 @@ fn DoThing() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN11FurtherBaseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !63 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !92 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 8) ({ [3 x ptr] }, ptr @_ZTV11FurtherBase, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !61 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 8) ({ [3 x ptr] }, ptr @_ZTV11FurtherBase, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !90 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -223,73 +223,73 @@ fn DoThing() { // CHECK:STDOUT: attributes #6 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } // CHECK:STDOUT: attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!38} +// CHECK:STDOUT: !llvm.module.flags = !{!99, !100, !101, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!103} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "dynamic_base_from_cpp.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTS4Base", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "other_func", linkageName: "_Cother_func.Derived.Main", scope: null, file: !1, line: 24, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 24, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "func", linkageName: "_Cfunc.Derived.Main", scope: null, file: !1, line: 26, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !18) -// CHECK:STDOUT: !25 = !DILocation(line: 26, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "func", linkageName: "_Cfunc:thunk:Base.Cpp:Derived.Main", scope: null, file: !1, line: 26, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !18) -// CHECK:STDOUT: !29 = !DILocation(line: 26, column: 3, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "DoThing", linkageName: "_CDoThing.Main", scope: null, file: !1, line: 30, type: !31, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{null} -// CHECK:STDOUT: !33 = !DILocation(line: 31, column: 3, scope: !30) -// CHECK:STDOUT: !34 = !DILocation(line: 31, column: 20, scope: !30) -// CHECK:STDOUT: !35 = !DILocation(line: 31, column: 29, scope: !30) -// CHECK:STDOUT: !36 = !DILocation(line: 32, column: 11, scope: !30) -// CHECK:STDOUT: !37 = !DILocation(line: 32, column: 3, scope: !30) -// CHECK:STDOUT: !38 = !DILocation(line: 30, column: 1, scope: !30) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.Derived.Main", scope: null, file: !1, line: 22, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !18) -// CHECK:STDOUT: !42 = !DILocation(line: 22, column: 1, scope: !39) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a4cea16271ab4a06:core.Destroy.Core", scope: null, file: !1, line: 22, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !18) -// CHECK:STDOUT: !46 = !DILocation(line: 22, column: 1, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !1, line: 22, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !48) -// CHECK:STDOUT: !48 = !{!49} -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !18) -// CHECK:STDOUT: !50 = !DILocation(line: 22, column: 1, scope: !47) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "func__carbon_thunk", linkageName: "_Cfunc__carbon_thunk.Derived.Main", scope: null, file: !1, line: 26, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !52) -// CHECK:STDOUT: !52 = !{!53} -// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !51, type: !18) -// CHECK:STDOUT: !54 = !DILocation(line: 26, column: 3, scope: !51) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "other_func__carbon_thunk", linkageName: "_Cother_func__carbon_thunk.Derived.Main", scope: null, file: !1, line: 24, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !18) -// CHECK:STDOUT: !58 = !DILocation(line: 24, column: 3, scope: !55) -// CHECK:STDOUT: !59 = !{!60, !60, i64 0} -// CHECK:STDOUT: !60 = !{!"p1 _ZTSN6Carbon7DerivedE", !14, i64 0} -// CHECK:STDOUT: !61 = !{!62, !62, i64 0} -// CHECK:STDOUT: !62 = !{!"vtable pointer", !11, i64 0} -// CHECK:STDOUT: !63 = !{!64, !64, i64 0} -// CHECK:STDOUT: !64 = !{!"p1 _ZTS11FurtherBase", !14, i64 0} +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"p1 _ZTS4Base", !2, i64 0} +// CHECK:STDOUT: !4 = !{!3, !3, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !37 = !DIFile(filename: "dynamic_base_from_cpp.carbon", directory: "") +// CHECK:STDOUT: !38 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !37, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !41 = !{null, !40} +// CHECK:STDOUT: !42 = !DISubroutineType(types: !41) +// CHECK:STDOUT: !43 = !{null} +// CHECK:STDOUT: !44 = !DISubroutineType(types: !43) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "other_func", linkageName: "_Cother_func.Derived.Main", scope: null, file: !37, line: 24, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !49) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !40) +// CHECK:STDOUT: !48 = !DILocation(line: 24, column: 3, scope: !45) +// CHECK:STDOUT: !49 = !{!46} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "func", linkageName: "_Cfunc.Derived.Main", scope: null, file: !37, line: 26, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !54) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !40) +// CHECK:STDOUT: !53 = !DILocation(line: 26, column: 3, scope: !50) +// CHECK:STDOUT: !54 = !{!51} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "func", linkageName: "_Cfunc:thunk:Base.Cpp:Derived.Main", scope: null, file: !37, line: 26, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !59) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !40) +// CHECK:STDOUT: !58 = !DILocation(line: 26, column: 3, scope: !55) +// CHECK:STDOUT: !59 = !{!56} +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "DoThing", linkageName: "_CDoThing.Main", scope: null, file: !37, line: 30, type: !44, spFlags: DISPFlagDefinition, unit: !38) +// CHECK:STDOUT: !61 = !DILocation(line: 31, column: 3, scope: !60) +// CHECK:STDOUT: !62 = !DILocation(line: 31, column: 20, scope: !60) +// CHECK:STDOUT: !63 = !DILocation(line: 31, column: 29, scope: !60) +// CHECK:STDOUT: !66 = !DILocation(line: 32, column: 11, scope: !60) +// CHECK:STDOUT: !67 = !DILocation(line: 32, column: 3, scope: !60) +// CHECK:STDOUT: !68 = !DILocation(line: 30, column: 1, scope: !60) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.Derived.Main", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !72) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !40) +// CHECK:STDOUT: !71 = !DILocation(line: 22, column: 1, scope: !69) +// CHECK:STDOUT: !72 = !{!70} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a4cea16271ab4a06:core.Destroy.Core", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !76) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !40) +// CHECK:STDOUT: !75 = !DILocation(line: 22, column: 1, scope: !73) +// CHECK:STDOUT: !76 = !{!74} +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8aa8f8dee0ff18e:core.Destroy.Core", scope: null, file: !37, line: 22, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !80) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !40) +// CHECK:STDOUT: !79 = !DILocation(line: 22, column: 1, scope: !77) +// CHECK:STDOUT: !80 = !{!78} +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "func__carbon_thunk", linkageName: "_Cfunc__carbon_thunk.Derived.Main", scope: null, file: !37, line: 26, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !84) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !40) +// CHECK:STDOUT: !83 = !DILocation(line: 26, column: 3, scope: !81) +// CHECK:STDOUT: !84 = !{!82} +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "other_func__carbon_thunk", linkageName: "_Cother_func__carbon_thunk.Derived.Main", scope: null, file: !37, line: 24, type: !42, spFlags: DISPFlagDefinition, unit: !38, retainedNodes: !88) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !40) +// CHECK:STDOUT: !87 = !DILocation(line: 24, column: 3, scope: !85) +// CHECK:STDOUT: !88 = !{!86} +// CHECK:STDOUT: !89 = !{!"vtable pointer", !0, i64 0} +// CHECK:STDOUT: !90 = !{!89, !89, i64 0} +// CHECK:STDOUT: !91 = !{!"p1 _ZTS11FurtherBase", !2, i64 0} +// CHECK:STDOUT: !92 = !{!91, !91, i64 0} +// CHECK:STDOUT: !93 = !{!"p1 _ZTSN6Carbon7DerivedE", !2, i64 0} +// CHECK:STDOUT: !94 = !{!93, !93, i64 0} +// CHECK:STDOUT: !96 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !99 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !100 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !101 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !102 = !{!"__libc_errno", !96, i64 0} +// CHECK:STDOUT: !103 = !{!102, !96, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/field.carbon b/toolchain/lower/testdata/interop/cpp/class/import/field.carbon index fa73c3865ab3..02a9b18fc9ad 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/field.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/field.carbon @@ -115,53 +115,53 @@ fn AccessP(a: Cpp.AnonUnionA) -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessN.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CAccessN.Main(ptr %a) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_11.1.n = getelementptr inbounds nuw [32 x i8], ptr %a, i32 0, i32 0, !dbg !19 -// CHECK:STDOUT: %.loc9_11.2 = load i32, ptr %.loc9_11.1.n, align 4, !dbg !19 -// CHECK:STDOUT: ret i32 %.loc9_11.2, !dbg !20 +// CHECK:STDOUT: %.loc9_11.1.n = getelementptr inbounds nuw [32 x i8], ptr %a, i32 0, i32 0, !dbg !29 +// CHECK:STDOUT: %.loc9_11.2 = load i32, ptr %.loc9_11.1.n, align 4, !dbg !29 +// CHECK:STDOUT: ret i32 %.loc9_11.2, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessM.Main(ptr %a) #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CAccessM.Main(ptr %a) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc13_11.1.m = getelementptr inbounds nuw [32 x i8], ptr %a, i32 0, i32 16, !dbg !24 -// CHECK:STDOUT: %.loc13_11.2 = load i32, ptr %.loc13_11.1.m, align 4, !dbg !24 -// CHECK:STDOUT: ret i32 %.loc13_11.2, !dbg !25 +// CHECK:STDOUT: %.loc13_11.1.m = getelementptr inbounds nuw [32 x i8], ptr %a, i32 0, i32 16, !dbg !37 +// CHECK:STDOUT: %.loc13_11.2 = load i32, ptr %.loc13_11.1.m, align 4, !dbg !37 +// CHECK:STDOUT: ret i32 %.loc13_11.2, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "access_struct.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "AccessN", linkageName: "_CAccessN.Main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "AccessM", linkageName: "_CAccessM.Main", scope: null, file: !1, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !16) -// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 10, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 3, scope: !21) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "access_struct.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "AccessN", linkageName: "_CAccessN.Main", scope: null, file: !18, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !31) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 9, column: 10, scope: !24) +// CHECK:STDOUT: !30 = !DILocation(line: 9, column: 3, scope: !24) +// CHECK:STDOUT: !31 = !{!25} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "AccessM", linkageName: "_CAccessM.Main", scope: null, file: !18, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !21) +// CHECK:STDOUT: !37 = !DILocation(line: 13, column: 10, scope: !32) +// CHECK:STDOUT: !38 = !DILocation(line: 13, column: 3, scope: !32) +// CHECK:STDOUT: !39 = !{!33} +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !45, i64 0} +// CHECK:STDOUT: !47 = !{!46, !45, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'assign_struct.carbon' @@ -170,52 +170,52 @@ fn AccessP(a: Cpp.AnonUnionA) -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAssignN.Main(ptr %p) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CAssignN.Main(ptr %p) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_4.2.n = getelementptr inbounds nuw [32 x i8], ptr %p, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: store i32 1, ptr %.loc9_4.2.n, align 4, !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc9_4.2.n = getelementptr inbounds nuw [32 x i8], ptr %p, i32 0, i32 0, !dbg !55 +// CHECK:STDOUT: store i32 1, ptr %.loc9_4.2.n, align 4, !dbg !55 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAssignM.Main(ptr %p) #0 !dbg !20 { +// CHECK:STDOUT: define void @_CAssignM.Main(ptr %p) #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc13_4.2.m = getelementptr inbounds nuw [32 x i8], ptr %p, i32 0, i32 16, !dbg !23 -// CHECK:STDOUT: store i32 1, ptr %.loc13_4.2.m, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc13_4.2.m = getelementptr inbounds nuw [32 x i8], ptr %p, i32 0, i32 16, !dbg !61 +// CHECK:STDOUT: store i32 1, ptr %.loc13_4.2.m, align 4, !dbg !61 +// CHECK:STDOUT: ret void, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!49} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "assign_struct.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "AssignN", linkageName: "_CAssignN.Main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 1, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "AssignM", linkageName: "_CAssignM.Main", scope: null, file: !1, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 13, column: 3, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 12, column: 1, scope: !20) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !45, i64 0} +// CHECK:STDOUT: !47 = !{!46, !45, i64 0} +// CHECK:STDOUT: !48 = !DIFile(filename: "assign_struct.carbon", directory: "") +// CHECK:STDOUT: !49 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !48, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !50 = !{null, !21} +// CHECK:STDOUT: !51 = !DISubroutineType(types: !50) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "AssignN", linkageName: "_CAssignN.Main", scope: null, file: !48, line: 8, type: !51, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !57) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !21) +// CHECK:STDOUT: !55 = !DILocation(line: 9, column: 3, scope: !52) +// CHECK:STDOUT: !56 = !DILocation(line: 8, column: 1, scope: !52) +// CHECK:STDOUT: !57 = !{!53} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "AssignM", linkageName: "_CAssignM.Main", scope: null, file: !48, line: 12, type: !51, spFlags: DISPFlagDefinition, unit: !49, retainedNodes: !63) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !21) +// CHECK:STDOUT: !61 = !DILocation(line: 13, column: 3, scope: !58) +// CHECK:STDOUT: !62 = !DILocation(line: 12, column: 1, scope: !58) +// CHECK:STDOUT: !63 = !{!59} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'access_union.carbon' @@ -224,53 +224,53 @@ fn AccessP(a: Cpp.AnonUnionA) -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessN.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CAccessN.Main(ptr %a) #0 !dbg !66 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_11.1.n = getelementptr inbounds nuw [4 x i8], ptr %a, i32 0, i32 0, !dbg !19 -// CHECK:STDOUT: %.loc7_11.2 = load i32, ptr %.loc7_11.1.n, align 4, !dbg !19 -// CHECK:STDOUT: ret i32 %.loc7_11.2, !dbg !20 +// CHECK:STDOUT: %.loc7_11.1.n = getelementptr inbounds nuw [4 x i8], ptr %a, i32 0, i32 0, !dbg !71 +// CHECK:STDOUT: %.loc7_11.2 = load i32, ptr %.loc7_11.1.n, align 4, !dbg !71 +// CHECK:STDOUT: ret i32 %.loc7_11.2, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessM.Main(ptr %a) #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CAccessM.Main(ptr %a) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_11.1.m = getelementptr inbounds nuw [4 x i8], ptr %a, i32 0, i32 0, !dbg !24 -// CHECK:STDOUT: %.loc11_11.2 = load i32, ptr %.loc11_11.1.m, align 4, !dbg !24 -// CHECK:STDOUT: ret i32 %.loc11_11.2, !dbg !25 +// CHECK:STDOUT: %.loc11_11.1.m = getelementptr inbounds nuw [4 x i8], ptr %a, i32 0, i32 0, !dbg !79 +// CHECK:STDOUT: %.loc11_11.2 = load i32, ptr %.loc11_11.1.m, align 4, !dbg !79 +// CHECK:STDOUT: ret i32 %.loc11_11.2, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!65} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "access_union.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "AccessN", linkageName: "_CAccessN.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "AccessM", linkageName: "_CAccessM.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !16) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 10, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 3, scope: !21) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !45, i64 0} +// CHECK:STDOUT: !47 = !{!46, !45, i64 0} +// CHECK:STDOUT: !64 = !DIFile(filename: "access_union.carbon", directory: "") +// CHECK:STDOUT: !65 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !64, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "AccessN", linkageName: "_CAccessN.Main", scope: null, file: !64, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !73) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !21) +// CHECK:STDOUT: !71 = !DILocation(line: 7, column: 10, scope: !66) +// CHECK:STDOUT: !72 = !DILocation(line: 7, column: 3, scope: !66) +// CHECK:STDOUT: !73 = !{!67} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "AccessM", linkageName: "_CAccessM.Main", scope: null, file: !64, line: 10, type: !23, spFlags: DISPFlagDefinition, unit: !65, retainedNodes: !81) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !21) +// CHECK:STDOUT: !79 = !DILocation(line: 11, column: 10, scope: !74) +// CHECK:STDOUT: !80 = !DILocation(line: 11, column: 3, scope: !74) +// CHECK:STDOUT: !81 = !{!75} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'assign_union.carbon' @@ -279,52 +279,52 @@ fn AccessP(a: Cpp.AnonUnionA) -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAssignN.Main(ptr %p) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CAssignN.Main(ptr %p) #0 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_4.2.n = getelementptr inbounds nuw [4 x i8], ptr %p, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: store i32 1, ptr %.loc7_4.2.n, align 4, !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc7_4.2.n = getelementptr inbounds nuw [4 x i8], ptr %p, i32 0, i32 0, !dbg !87 +// CHECK:STDOUT: store i32 1, ptr %.loc7_4.2.n, align 4, !dbg !87 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAssignM.Main(ptr %p) #0 !dbg !20 { +// CHECK:STDOUT: define void @_CAssignM.Main(ptr %p) #0 !dbg !90 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_4.2.m = getelementptr inbounds nuw [4 x i8], ptr %p, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: store i32 1, ptr %.loc11_4.2.m, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc11_4.2.m = getelementptr inbounds nuw [4 x i8], ptr %p, i32 0, i32 0, !dbg !93 +// CHECK:STDOUT: store i32 1, ptr %.loc11_4.2.m, align 4, !dbg !93 +// CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!83} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "assign_union.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "AssignN", linkageName: "_CAssignN.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "AssignM", linkageName: "_CAssignM.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 3, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 10, column: 1, scope: !20) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !45, i64 0} +// CHECK:STDOUT: !47 = !{!46, !45, i64 0} +// CHECK:STDOUT: !50 = !{null, !21} +// CHECK:STDOUT: !51 = !DISubroutineType(types: !50) +// CHECK:STDOUT: !82 = !DIFile(filename: "assign_union.carbon", directory: "") +// CHECK:STDOUT: !83 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !82, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "AssignN", linkageName: "_CAssignN.Main", scope: null, file: !82, line: 6, type: !51, spFlags: DISPFlagDefinition, unit: !83, retainedNodes: !89) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !84, type: !21) +// CHECK:STDOUT: !87 = !DILocation(line: 7, column: 3, scope: !84) +// CHECK:STDOUT: !88 = !DILocation(line: 6, column: 1, scope: !84) +// CHECK:STDOUT: !89 = !{!85} +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "AssignM", linkageName: "_CAssignM.Main", scope: null, file: !82, line: 10, type: !51, spFlags: DISPFlagDefinition, unit: !83, retainedNodes: !95) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !21) +// CHECK:STDOUT: !93 = !DILocation(line: 11, column: 3, scope: !90) +// CHECK:STDOUT: !94 = !DILocation(line: 10, column: 1, scope: !90) +// CHECK:STDOUT: !95 = !{!91} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'access_anon_union.carbon' @@ -333,53 +333,53 @@ fn AccessP(a: Cpp.AnonUnionA) -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessN.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CAccessN.Main(ptr %a) #0 !dbg !98 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_11.1.n = getelementptr inbounds nuw [16 x i8], ptr %a, i32 0, i32 8, !dbg !19 -// CHECK:STDOUT: %.loc7_11.2 = load i32, ptr %.loc7_11.1.n, align 4, !dbg !19 -// CHECK:STDOUT: ret i32 %.loc7_11.2, !dbg !20 +// CHECK:STDOUT: %.loc7_11.1.n = getelementptr inbounds nuw [16 x i8], ptr %a, i32 0, i32 8, !dbg !103 +// CHECK:STDOUT: %.loc7_11.2 = load i32, ptr %.loc7_11.1.n, align 4, !dbg !103 +// CHECK:STDOUT: ret i32 %.loc7_11.2, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessP.Main(ptr %a) #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CAccessP.Main(ptr %a) #0 !dbg !106 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_12.1.p = getelementptr inbounds nuw [16 x i8], ptr %a, i32 0, i32 8, !dbg !24 -// CHECK:STDOUT: %.loc11_12.2 = load ptr, ptr %.loc11_12.1.p, align 8, !dbg !24 -// CHECK:STDOUT: %.loc11_10.2 = load i32, ptr %.loc11_12.2, align 4, !dbg !25 -// CHECK:STDOUT: ret i32 %.loc11_10.2, !dbg !26 +// CHECK:STDOUT: %.loc11_12.1.p = getelementptr inbounds nuw [16 x i8], ptr %a, i32 0, i32 8, !dbg !111 +// CHECK:STDOUT: %.loc11_12.2 = load ptr, ptr %.loc11_12.1.p, align 8, !dbg !111 +// CHECK:STDOUT: %.loc11_10.2 = load i32, ptr %.loc11_12.2, align 4, !dbg !112 +// CHECK:STDOUT: ret i32 %.loc11_10.2, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!97} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!47} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "access_anon_union.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "AccessN", linkageName: "_CAccessN.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "AccessP", linkageName: "_CAccessP.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !16) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 11, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 10, scope: !21) -// CHECK:STDOUT: !26 = !DILocation(line: 11, column: 3, scope: !21) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !44 = !{!"omnipotent char", !43, i64 0} +// CHECK:STDOUT: !45 = !{!"int", !44, i64 0} +// CHECK:STDOUT: !46 = !{!"__libc_errno", !45, i64 0} +// CHECK:STDOUT: !47 = !{!46, !45, i64 0} +// CHECK:STDOUT: !96 = !DIFile(filename: "access_anon_union.carbon", directory: "") +// CHECK:STDOUT: !97 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !96, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "AccessN", linkageName: "_CAccessN.Main", scope: null, file: !96, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !97, retainedNodes: !105) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !98, type: !21) +// CHECK:STDOUT: !103 = !DILocation(line: 7, column: 10, scope: !98) +// CHECK:STDOUT: !104 = !DILocation(line: 7, column: 3, scope: !98) +// CHECK:STDOUT: !105 = !{!99} +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "AccessP", linkageName: "_CAccessP.Main", scope: null, file: !96, line: 10, type: !23, spFlags: DISPFlagDefinition, unit: !97, retainedNodes: !114) +// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !21) +// CHECK:STDOUT: !111 = !DILocation(line: 11, column: 11, scope: !106) +// CHECK:STDOUT: !112 = !DILocation(line: 11, column: 10, scope: !106) +// CHECK:STDOUT: !113 = !DILocation(line: 11, column: 3, scope: !106) +// CHECK:STDOUT: !114 = !{!107} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/method.carbon b/toolchain/lower/testdata/interop/cpp/class/import/method.carbon index 77c3dc9e6cc2..94e4f4a039f9 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/method.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/method.carbon @@ -105,10 +105,10 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: @_ZTI4Base = external constant ptr // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CUseVal.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CUseVal.Main(ptr %a) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %by_val__carbon_thunk.call = call i32 @_ZNK1A6by_valEv.carbon_thunk._(ptr %a), !dbg !19 -// CHECK:STDOUT: ret i32 %by_val__carbon_thunk.call, !dbg !20 +// CHECK:STDOUT: %by_val__carbon_thunk.call = call i32 @_ZNK1A6by_valEv.carbon_thunk._(ptr %a), !dbg !31 +// CHECK:STDOUT: ret i32 %by_val__carbon_thunk.call, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN4Base5virt0Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 @@ -119,8 +119,8 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: define internal noundef i32 @_ZNK1A6by_valEv.carbon_thunk._(ptr noundef nonnull align 8 dereferenceable(12) %this) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !21, !nonnull !24, !align !25 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !38 +// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !38, !nonnull !42, !align !43 // CHECK:STDOUT: %call = call noundef i32 @_ZNK1A6by_valEv(ptr noundef nonnull align 8 dereferenceable(12) %0) // CHECK:STDOUT: ret i32 %call // CHECK:STDOUT: } @@ -129,10 +129,10 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: define linkonce_odr dso_local noundef i32 @_ZNK1A6by_valEv(ptr noundef nonnull align 8 dereferenceable(12) %this) #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !21 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !38 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %n = getelementptr inbounds nuw %struct.A, ptr %this1, i32 0, i32 1 -// CHECK:STDOUT: %0 = load i32, ptr %n, align 8, !tbaa !26 +// CHECK:STDOUT: %0 = load i32, ptr %n, align 8, !tbaa !44 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -144,39 +144,39 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_by_val.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "UseVal", linkageName: "_CUseVal.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS1A", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = !{} -// CHECK:STDOUT: !25 = !{i64 8} -// CHECK:STDOUT: !26 = !{!27, !9, i64 8} -// CHECK:STDOUT: !27 = !{!"_ZTS1A", !28, i64 0, !9, i64 8} -// CHECK:STDOUT: !28 = !{!"_ZTS4Base"} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "call_by_val.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "UseVal", linkageName: "_CUseVal.Main", scope: null, file: !18, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !31 = !DILocation(line: 7, column: 10, scope: !26) +// CHECK:STDOUT: !32 = !DILocation(line: 7, column: 3, scope: !26) +// CHECK:STDOUT: !33 = !{!27} +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !36 = !{!"any pointer", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"p1 _ZTS1A", !36, i64 0} +// CHECK:STDOUT: !38 = !{!37, !37, i64 0} +// CHECK:STDOUT: !39 = !{!"_ZTS4Base"} +// CHECK:STDOUT: !40 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !41 = !{!"_ZTS1A", !39, i64 0, !40, i64 8} +// CHECK:STDOUT: !42 = !{} +// CHECK:STDOUT: !43 = !{i64 8} +// CHECK:STDOUT: !44 = !{!41, !40, i64 8} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !40, i64 0} +// CHECK:STDOUT: !49 = !{!48, !40, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_by_ref.carbon' @@ -195,10 +195,10 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: @_ZTI4Base = external constant ptr // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CUseVal.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CUseVal.Main(ptr %a) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.by_ref.call = call i32 @_ZN1A6by_refEv(ptr %a), !dbg !19 -// CHECK:STDOUT: ret i32 %A.by_ref.call, !dbg !20 +// CHECK:STDOUT: %A.by_ref.call = call i32 @_ZN1A6by_refEv(ptr %a), !dbg !57 +// CHECK:STDOUT: ret i32 %A.by_ref.call, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN4Base5virt0Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 @@ -209,10 +209,10 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: define linkonce_odr dso_local noundef i32 @_ZN1A6by_refEv(ptr noundef nonnull align 8 dereferenceable(12) %this) #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !21 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !38 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %n = getelementptr inbounds nuw %struct.A.18, ptr %this1, i32 0, i32 1 -// CHECK:STDOUT: %0 = load i32, ptr %n, align 8, !tbaa !24 +// CHECK:STDOUT: %0 = load i32, ptr %n, align 8, !tbaa !44 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -223,37 +223,37 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!51} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_by_ref.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "UseVal", linkageName: "_CUseVal.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS1A", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = !{!25, !9, i64 8} -// CHECK:STDOUT: !25 = !{!"_ZTS1A", !26, i64 0, !9, i64 8} -// CHECK:STDOUT: !26 = !{!"_ZTS4Base"} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !36 = !{!"any pointer", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"p1 _ZTS1A", !36, i64 0} +// CHECK:STDOUT: !38 = !{!37, !37, i64 0} +// CHECK:STDOUT: !39 = !{!"_ZTS4Base"} +// CHECK:STDOUT: !40 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !41 = !{!"_ZTS1A", !39, i64 0, !40, i64 8} +// CHECK:STDOUT: !44 = !{!41, !40, i64 8} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !40, i64 0} +// CHECK:STDOUT: !49 = !{!48, !40, i64 0} +// CHECK:STDOUT: !50 = !DIFile(filename: "call_by_ref.carbon", directory: "") +// CHECK:STDOUT: !51 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !50, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "UseVal", linkageName: "_CUseVal.Main", scope: null, file: !50, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !51, retainedNodes: !59) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !21) +// CHECK:STDOUT: !57 = !DILocation(line: 7, column: 10, scope: !52) +// CHECK:STDOUT: !58 = !DILocation(line: 7, column: 3, scope: !52) +// CHECK:STDOUT: !59 = !{!53} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_virtual.carbon' @@ -267,18 +267,18 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: @_ZTI4Base = external constant ptr // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CUseVal.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CUseVal.Main(ptr %a) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_4.3.vptr = getelementptr inbounds nuw [8 x i8], ptr %a, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: %Base.virt0.call.vtable = load ptr, ptr %.loc7_4.3.vptr, align 8, !dbg !18 -// CHECK:STDOUT: %Base.virt0.call = getelementptr ptr, ptr %Base.virt0.call.vtable, i32 0, !dbg !18 -// CHECK:STDOUT: %Base.virt0.call.memptr.virtualfn = load ptr, ptr %Base.virt0.call, align 8, !dbg !18 -// CHECK:STDOUT: call void %Base.virt0.call.memptr.virtualfn(ptr %.loc7_4.3.vptr), !dbg !18 -// CHECK:STDOUT: %A.virt1.call.vtable = load ptr, ptr %a, align 8, !dbg !19 -// CHECK:STDOUT: %A.virt1.call = getelementptr ptr, ptr %A.virt1.call.vtable, i32 1, !dbg !19 -// CHECK:STDOUT: %A.virt1.call.memptr.virtualfn = load ptr, ptr %A.virt1.call, align 8, !dbg !19 -// CHECK:STDOUT: call void %A.virt1.call.memptr.virtualfn(ptr %a), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %.loc7_4.3.vptr = getelementptr inbounds nuw [8 x i8], ptr %a, i32 0, i32 0, !dbg !65 +// CHECK:STDOUT: %Base.virt0.call.vtable = load ptr, ptr %.loc7_4.3.vptr, align 8, !dbg !65 +// CHECK:STDOUT: %Base.virt0.call = getelementptr ptr, ptr %Base.virt0.call.vtable, i32 0, !dbg !65 +// CHECK:STDOUT: %Base.virt0.call.memptr.virtualfn = load ptr, ptr %Base.virt0.call, align 8, !dbg !65 +// CHECK:STDOUT: call void %Base.virt0.call.memptr.virtualfn(ptr %.loc7_4.3.vptr), !dbg !65 +// CHECK:STDOUT: %A.virt1.call.vtable = load ptr, ptr %a, align 8, !dbg !66 +// CHECK:STDOUT: %A.virt1.call = getelementptr ptr, ptr %A.virt1.call.vtable, i32 1, !dbg !66 +// CHECK:STDOUT: %A.virt1.call.memptr.virtualfn = load ptr, ptr %A.virt1.call, align 8, !dbg !66 +// CHECK:STDOUT: call void %A.virt1.call.memptr.virtualfn(ptr %a), !dbg !66 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN4Base5virt0Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 @@ -291,31 +291,31 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!61} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_virtual.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "UseVal", linkageName: "_CUseVal.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !40 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !40, i64 0} +// CHECK:STDOUT: !49 = !{!48, !40, i64 0} +// CHECK:STDOUT: !60 = !DIFile(filename: "call_virtual.carbon", directory: "") +// CHECK:STDOUT: !61 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !60, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "UseVal", linkageName: "_CUseVal.Main", scope: null, file: !60, line: 6, type: !25, spFlags: DISPFlagDefinition, unit: !61, retainedNodes: !68) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !21) +// CHECK:STDOUT: !65 = !DILocation(line: 7, column: 3, scope: !62) +// CHECK:STDOUT: !66 = !DILocation(line: 8, column: 3, scope: !62) +// CHECK:STDOUT: !67 = !DILocation(line: 6, column: 1, scope: !62) +// CHECK:STDOUT: !68 = !{!63} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_thunk.carbon' @@ -328,17 +328,17 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: @int_1.f1e = internal constant i8 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr %n) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall.Main(ptr %n) #0 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_14.3.temp = alloca i8, align 1, !dbg !18 -// CHECK:STDOUT: %.loc8_14.3.temp = alloca i8, align 1, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_14.3.temp), !dbg !18 -// CHECK:STDOUT: call void @_ZNK9NeedThunk8ImplicitEa.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !20 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_14.3.temp), !dbg !19 -// CHECK:STDOUT: call void @_ZNH9NeedThunk8ExplicitES_a.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !21 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: %.loc7_14.3.temp = alloca i8, align 1, !dbg !80 +// CHECK:STDOUT: %.loc8_14.3.temp = alloca i8, align 1, !dbg !82 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_14.3.temp), !dbg !80 +// CHECK:STDOUT: call void @_ZNK9NeedThunk8ImplicitEa.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !79 +// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !80 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_14.3.temp), !dbg !82 +// CHECK:STDOUT: call void @_ZNH9NeedThunk8ExplicitES_a.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !81 +// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !82 +// CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -346,19 +346,19 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %c.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !23 -// CHECK:STDOUT: store ptr %c, ptr %c.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !23, !nonnull !28 -// CHECK:STDOUT: %1 = load ptr, ptr %c.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %2 = load i8, ptr %1, align 1, !tbaa !29 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !90 +// CHECK:STDOUT: store ptr %c, ptr %c.addr, align 8, !tbaa !92 +// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !90, !nonnull !42 +// CHECK:STDOUT: %1 = load ptr, ptr %c.addr, align 8, !tbaa !92 +// CHECK:STDOUT: %2 = load i8, ptr %1, align 1, !tbaa !94 // CHECK:STDOUT: call void @_ZNK9NeedThunk8ImplicitEa(ptr noundef nonnull align 1 dereferenceable(1) %0, i8 noundef signext %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -367,11 +367,11 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %c.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.NeedThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !23 -// CHECK:STDOUT: store ptr %c, ptr %c.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !23 -// CHECK:STDOUT: %2 = load ptr, ptr %c.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %3 = load i8, ptr %2, align 1, !tbaa !29 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !90 +// CHECK:STDOUT: store ptr %c, ptr %c.addr, align 8, !tbaa !92 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !90 +// CHECK:STDOUT: %2 = load ptr, ptr %c.addr, align 8, !tbaa !92 +// CHECK:STDOUT: %3 = load i8, ptr %2, align 1, !tbaa !94 // CHECK:STDOUT: call void @_ZNH9NeedThunk8ExplicitES_a(i8 noundef signext %3) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -392,47 +392,47 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!70} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_thunk.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 14, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 14, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !23 = !{!24, !24, i64 0} -// CHECK:STDOUT: !24 = !{!"p1 _ZTS9NeedThunk", !25, i64 0} -// CHECK:STDOUT: !25 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !26 = !{!27, !27, i64 0} -// CHECK:STDOUT: !27 = !{!"p1 omnipotent char", !25, i64 0} -// CHECK:STDOUT: !28 = !{} -// CHECK:STDOUT: !29 = !{!10, !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !1, line: 7, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{null, !33} -// CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 7, column: 14, scope: !30) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !36 = !{!"any pointer", !35, i64 0} +// CHECK:STDOUT: !40 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !42 = !{} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !40, i64 0} +// CHECK:STDOUT: !49 = !{!48, !40, i64 0} +// CHECK:STDOUT: !69 = !DIFile(filename: "call_thunk.carbon", directory: "") +// CHECK:STDOUT: !70 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !69, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !71 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) +// CHECK:STDOUT: !74 = !{null, !71} +// CHECK:STDOUT: !75 = !DISubroutineType(types: !74) +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !69, line: 6, type: !25, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !84) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !21) +// CHECK:STDOUT: !79 = !DILocation(line: 7, column: 3, scope: !76) +// CHECK:STDOUT: !80 = !DILocation(line: 7, column: 14, scope: !76) +// CHECK:STDOUT: !81 = !DILocation(line: 8, column: 3, scope: !76) +// CHECK:STDOUT: !82 = !DILocation(line: 8, column: 14, scope: !76) +// CHECK:STDOUT: !83 = !DILocation(line: 6, column: 1, scope: !76) +// CHECK:STDOUT: !84 = !{!77} +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !69, line: 7, type: !75, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !88) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !71) +// CHECK:STDOUT: !87 = !DILocation(line: 7, column: 14, scope: !85) +// CHECK:STDOUT: !88 = !{!86} +// CHECK:STDOUT: !89 = !{!"p1 _ZTS9NeedThunk", !36, i64 0} +// CHECK:STDOUT: !90 = !{!89, !89, i64 0} +// CHECK:STDOUT: !91 = !{!"p1 omnipotent char", !36, i64 0} +// CHECK:STDOUT: !92 = !{!91, !91, i64 0} +// CHECK:STDOUT: !94 = !{!35, !35, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_with_ref_self.carbon' @@ -441,10 +441,10 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %r) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main(ptr %r) #0 !dbg !99 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN8RefSelfA1fEii(ptr %r, i32 1, i32 2), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_ZN8RefSelfA1fEii(ptr %r, i32 1, i32 2), !dbg !102 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN8RefSelfA1fEii(ptr noundef nonnull align 1 dereferenceable(1), i32 noundef, i32 noundef) #1 @@ -452,28 +452,28 @@ fn F(ref r: Cpp.RefSelfA) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!96} +// CHECK:STDOUT: !llvm.module.flags = !{!45, !46, !47, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!49} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_with_ref_self.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !40 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !45 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !46 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !47 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !48 = !{!"__libc_errno", !40, i64 0} +// CHECK:STDOUT: !49 = !{!48, !40, i64 0} +// CHECK:STDOUT: !95 = !DIFile(filename: "call_with_ref_self.carbon", directory: "") +// CHECK:STDOUT: !96 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !95, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !95, line: 11, type: !25, spFlags: DISPFlagDefinition, unit: !96, retainedNodes: !104) +// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !99, type: !21) +// CHECK:STDOUT: !102 = !DILocation(line: 12, column: 3, scope: !99) +// CHECK:STDOUT: !103 = !DILocation(line: 11, column: 1, scope: !99) +// CHECK:STDOUT: !104 = !{!100} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/virtual_base.carbon b/toolchain/lower/testdata/interop/cpp/class/import/virtual_base.carbon index fe4fa48f02dc..056c46c61a16 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/virtual_base.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/virtual_base.carbon @@ -122,30 +122,30 @@ fn AccessD(d: Cpp.D) -> i32 { // CHECK:STDOUT: @_ZTT1B = linkonce_odr dso_local unnamed_addr constant [1 x ptr] [ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr] }, ptr @_ZTV1B, i32 0, i32 0, i32 3)], comdat, align 8 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMake.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [40 x i8], align 8, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !15 -// CHECK:STDOUT: call void @_ZN1DC1Ev.carbon_thunk.(ptr %_.var), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %_.var = alloca [40 x i8], align 8, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !29 +// CHECK:STDOUT: call void @_ZN1DC1Ev.carbon_thunk.(ptr %_.var), !dbg !30 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN1DC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !45 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !45 // CHECK:STDOUT: call void @_ZN1DC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CAccessD.Main(ptr %d) #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CAccessD.Main(ptr %d) #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc16_11.1.d = getelementptr inbounds nuw [40 x i8], ptr %d, i32 0, i32 28, !dbg !28 -// CHECK:STDOUT: %.loc16_11.2 = load i32, ptr %.loc16_11.1.d, align 4, !dbg !28 -// CHECK:STDOUT: ret i32 %.loc16_11.2, !dbg !29 +// CHECK:STDOUT: %.loc16_11.1.d = getelementptr inbounds nuw [40 x i8], ptr %d, i32 0, i32 28, !dbg !38 +// CHECK:STDOUT: %.loc16_11.2 = load i32, ptr %.loc16_11.1.d, align 4, !dbg !38 +// CHECK:STDOUT: ret i32 %.loc16_11.2, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -155,16 +155,16 @@ fn AccessD(d: Cpp.D) -> i32 { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN1DC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !45 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: %0 = getelementptr inbounds i8, ptr %this1, i64 32 // CHECK:STDOUT: call void @_ZN1AC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %0) // CHECK:STDOUT: call void @_ZN1BC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %this1, ptr noundef getelementptr inbounds nuw (i8, ptr @_ZTT1D, i64 8)) // CHECK:STDOUT: %1 = getelementptr inbounds i8, ptr %this1, i64 16 // CHECK:STDOUT: call void @_ZN1CC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %1, ptr noundef getelementptr inbounds nuw (i8, ptr @_ZTT1D, i64 16)) -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr], [3 x ptr] }, ptr @_ZTV1D, i32 0, i32 0, i32 3), ptr %this1, align 8, !tbaa !30 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr], [3 x ptr] }, ptr @_ZTV1D, i32 0, i32 0, i32 3), ptr %this1, align 8, !tbaa !47 // CHECK:STDOUT: %add.ptr = getelementptr inbounds i8, ptr %this1, i64 16 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr], [3 x ptr] }, ptr @_ZTV1D, i32 0, i32 1, i32 3), ptr %add.ptr, align 8, !tbaa !30 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-24, 0) ({ [3 x ptr], [3 x ptr] }, ptr @_ZTV1D, i32 0, i32 1, i32 3), ptr %add.ptr, align 8, !tbaa !47 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -187,40 +187,40 @@ fn AccessD(d: Cpp.D) -> i32 { // CHECK:STDOUT: attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!48, !49, !50, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!53} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_diamond.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 18, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !18 = !{!19, !19, i64 0} -// CHECK:STDOUT: !19 = !{!"p1 _ZTS1D", !20, i64 0} -// CHECK:STDOUT: !20 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "AccessD", linkageName: "_CAccessD.Main", scope: null, file: !1, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{!24, !25} -// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !21, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 10, scope: !21) -// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !21) -// CHECK:STDOUT: !30 = !{!31, !31, i64 0} -// CHECK:STDOUT: !31 = !{!"vtable pointer", !11, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "use_diamond.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{!20, !23} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 11, column: 3, scope: !28) +// CHECK:STDOUT: !30 = !DILocation(line: 11, column: 18, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 6, column: 1, scope: !28) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "AccessD", linkageName: "_CAccessD.Main", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !23) +// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 10, scope: !33) +// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !33) +// CHECK:STDOUT: !40 = !{!34} +// CHECK:STDOUT: !41 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !42 = !{!"omnipotent char", !41, i64 0} +// CHECK:STDOUT: !43 = !{!"any pointer", !42, i64 0} +// CHECK:STDOUT: !44 = !{!"p1 _ZTS1D", !43, i64 0} +// CHECK:STDOUT: !45 = !{!44, !44, i64 0} +// CHECK:STDOUT: !46 = !{!"vtable pointer", !41, i64 0} +// CHECK:STDOUT: !47 = !{!46, !46, i64 0} +// CHECK:STDOUT: !48 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !49 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !50 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !51 = !{!"int", !42, i64 0} +// CHECK:STDOUT: !52 = !{!"__libc_errno", !51, i64 0} +// CHECK:STDOUT: !53 = !{!52, !51, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon index 6ed1eaeb9949..13d79a01bbe2 100644 --- a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon @@ -98,8 +98,8 @@ void delete_new_Base() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p) #8 // CHECK:STDOUT: %call = call noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #10 // CHECK:STDOUT: call void @_ZN6Carbon5FinalC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #8 -// CHECK:STDOUT: store ptr %call, ptr %p, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %p, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %call, ptr %p, align 8, !tbaa !4 +// CHECK:STDOUT: %0 = load ptr, ptr %p, align 8, !tbaa !4 // CHECK:STDOUT: %isnull = icmp eq ptr %0, null // CHECK:STDOUT: br i1 %isnull, label %delete.end, label %delete.notnull // CHECK:STDOUT: @@ -123,10 +123,10 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon5FinalC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !4 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #8 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon5FinalE, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon5FinalE, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -134,7 +134,7 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon5FinalD2Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !4 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.Final.Main"(ptr noundef nonnull align 8 dereferenceable(8) %this1) // CHECK:STDOUT: call void @_ZN1AD2Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8) %this1) #8 @@ -154,13 +154,13 @@ void delete_new_Base() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p) #8 // CHECK:STDOUT: %call = call noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #10 // CHECK:STDOUT: call void @_ZN6Carbon4BaseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #8 -// CHECK:STDOUT: store ptr %call, ptr %p, align 8, !tbaa !17 -// CHECK:STDOUT: %0 = load ptr, ptr %p, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %call, ptr %p, align 8, !tbaa !6 +// CHECK:STDOUT: %0 = load ptr, ptr %p, align 8, !tbaa !6 // CHECK:STDOUT: %isnull = icmp eq ptr %0, null // CHECK:STDOUT: br i1 %isnull, label %delete.end, label %delete.notnull // CHECK:STDOUT: // CHECK:STDOUT: delete.notnull: ; preds = %entry -// CHECK:STDOUT: %vtable = load ptr, ptr %0, align 8, !tbaa !15 +// CHECK:STDOUT: %vtable = load ptr, ptr %0, align 8, !tbaa !8 // CHECK:STDOUT: %vfn = getelementptr inbounds ptr, ptr %vtable, i64 1 // CHECK:STDOUT: %1 = load ptr, ptr %vfn, align 8 // CHECK:STDOUT: call void %1(ptr noundef nonnull align 8 dereferenceable(8) %0) #8 @@ -175,10 +175,10 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon4BaseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !6 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #8 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon4BaseE, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon4BaseE, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -186,9 +186,9 @@ void delete_new_Base() { // CHECK:STDOUT: define internal void @_ZNK1A1FEv.carbon_thunk._(ptr noundef nonnull align 8 dereferenceable(8) %this) #5 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !19 -// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !19, !nonnull !21, !align !22 -// CHECK:STDOUT: %vtable = load ptr, ptr %0, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !71 +// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !71, !nonnull !74, !align !75 +// CHECK:STDOUT: %vtable = load ptr, ptr %0, align 8, !tbaa !8 // CHECK:STDOUT: %vfn = getelementptr inbounds ptr, ptr %vtable, i64 2 // CHECK:STDOUT: %1 = load ptr, ptr %vfn, align 8 // CHECK:STDOUT: call void %1(ptr noundef nonnull align 8 dereferenceable(8) %0) @@ -198,68 +198,68 @@ void delete_new_Base() { // CHECK:STDOUT: declare void @_CF.Final.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:A.Cpp:Final.Main"(ptr %self) #6 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:A.Cpp:Final.Main"(ptr %self) #6 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Final.Main(ptr %self), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: call void @_CF.Final.Main(ptr %self), !dbg !35 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Base.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_CF:thunk:A.Cpp:Base.Main"(ptr %self) #6 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_CF:thunk:A.Cpp:Base.Main"(ptr %self) #6 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Base.Main(ptr %self), !dbg !33 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: call void @_CF.Base.Main(ptr %self), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Final.Main"(ptr %self) #6 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Final.Main"(ptr %self) #6 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.44c76b7e3aba5fc1:core.Destroy.Core"(ptr %self), !dbg !37 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: call void @"_COp.44c76b7e3aba5fc1:core.Destroy.Core"(ptr %self), !dbg !44 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: declare void @_ZN1AD1Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8)) unnamed_addr #7 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.0f3d92058986cf00:core.Destroy.Core"(ptr %self) #8 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.0f3d92058986cf00:core.Destroy.Core"(ptr %self) #8 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.44c76b7e3aba5fc1:core.Destroy.Core"(ptr %self) #8 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.44c76b7e3aba5fc1:core.Destroy.Core"(ptr %self) #8 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.Final.Main(ptr %self) #8 !dbg !46 { +// CHECK:STDOUT: define void @_CF__carbon_thunk.Final.Main(ptr %self) #8 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Final.Main(ptr %self), !dbg !49 -// CHECK:STDOUT: ret void, !dbg !49 +// CHECK:STDOUT: call void @_CF.Final.Main(ptr %self), !dbg !56 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Base.Main"(ptr %self) #6 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.Base.Main"(ptr %self) #6 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self), !dbg !53 -// CHECK:STDOUT: ret void, !dbg !53 +// CHECK:STDOUT: call void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self), !dbg !60 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #8 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.26b62f84bf985626:core.Destroy.Core"(ptr %self) #8 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !57 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.Base.Main(ptr %self) #8 !dbg !58 { +// CHECK:STDOUT: define void @_CF__carbon_thunk.Base.Main(ptr %self) #8 !dbg !66 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Base.Main(ptr %self), !dbg !61 -// CHECK:STDOUT: ret void, !dbg !61 +// CHECK:STDOUT: call void @_CF.Base.Main(ptr %self), !dbg !68 +// CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @__cxa_pure_virtual() unnamed_addr @@ -270,7 +270,7 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon5FinalD0Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !4 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_ZN6Carbon5FinalD2Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8) %this1) #8 // CHECK:STDOUT: call void @_ZdlPvm(ptr noundef %this1, i64 noundef 8) #11 @@ -281,7 +281,7 @@ void delete_new_Base() { // CHECK:STDOUT: define internal void @_ZNK6Carbon5Final1FEv(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #5 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !4 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_CF__carbon_thunk.Final.Main(ptr noundef nonnull align 8 dereferenceable(8) %this1) // CHECK:STDOUT: ret void @@ -291,9 +291,9 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon4BaseD2Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !6 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon4BaseE, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTVN6Carbon4BaseE, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.Base.Main"(ptr noundef nonnull align 8 dereferenceable(8) %this1) // CHECK:STDOUT: call void @_ZN1AD2Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8) %this1) #8 // CHECK:STDOUT: ret void @@ -303,7 +303,7 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon4BaseD0Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !6 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_ZN6Carbon4BaseD2Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8) %this1) #8 // CHECK:STDOUT: call void @_ZdlPvm(ptr noundef %this1, i64 noundef 8) #11 @@ -314,7 +314,7 @@ void delete_new_Base() { // CHECK:STDOUT: define internal void @_ZNK6Carbon4Base1FEv(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #5 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !17 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !6 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_CF__carbon_thunk.Base.Main(ptr noundef nonnull align 8 dereferenceable(8) %this1) // CHECK:STDOUT: ret void @@ -324,9 +324,9 @@ void delete_new_Base() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !19 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !71 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 -// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr getelementptr inbounds inrange(-16, 24) ({ [5 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 2), ptr %this1, align 8, !tbaa !8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -350,73 +350,73 @@ void delete_new_Base() { // CHECK:STDOUT: attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #8 = { nounwind } // CHECK:STDOUT: attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -// CHECK:STDOUT: attributes #10 = { builtin allocsize(0) } +// CHECK:STDOUT: attributes #10 = { builtin allocsize(0) memory(inaccessiblemem: readwrite, errnomem: write) } // CHECK:STDOUT: attributes #11 = { builtin nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!28} +// CHECK:STDOUT: !llvm.module.flags = !{!77, !78, !79, !11, !12} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!82} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "override_virtual_dtor.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon5FinalE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!16, !16, i64 0} -// CHECK:STDOUT: !16 = !{!"vtable pointer", !11, i64 0} -// CHECK:STDOUT: !17 = !{!18, !18, i64 0} -// CHECK:STDOUT: !18 = !{!"p1 _ZTSN6Carbon4BaseE", !14, i64 0} -// CHECK:STDOUT: !19 = !{!20, !20, i64 0} -// CHECK:STDOUT: !20 = !{!"p1 _ZTS1A", !14, i64 0} -// CHECK:STDOUT: !21 = !{} -// CHECK:STDOUT: !22 = !{i64 8} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:A.Cpp:Final.Main", scope: null, file: !1, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{null, !26} -// CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !26) -// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:A.Cpp:Base.Main", scope: null, file: !1, line: 19, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !26) -// CHECK:STDOUT: !33 = !DILocation(line: 19, column: 3, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.Final.Main", scope: null, file: !1, line: 12, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !26) -// CHECK:STDOUT: !37 = !DILocation(line: 12, column: 1, scope: !34) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f3d92058986cf00:core.Destroy.Core", scope: null, file: !1, line: 12, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !26) -// CHECK:STDOUT: !41 = !DILocation(line: 12, column: 1, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.44c76b7e3aba5fc1:core.Destroy.Core", scope: null, file: !1, line: 12, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !26) -// CHECK:STDOUT: !45 = !DILocation(line: 12, column: 1, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Final.Main", scope: null, file: !1, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !47) -// CHECK:STDOUT: !47 = !{!48} -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !26) -// CHECK:STDOUT: !49 = !DILocation(line: 14, column: 3, scope: !46) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.Base.Main", scope: null, file: !1, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !51 = !{!52} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !50, type: !26) -// CHECK:STDOUT: !53 = !DILocation(line: 17, column: 1, scope: !50) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !1, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !55) -// CHECK:STDOUT: !55 = !{!56} -// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !26) -// CHECK:STDOUT: !57 = !DILocation(line: 17, column: 1, scope: !54) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Base.Main", scope: null, file: !1, line: 19, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !59) -// CHECK:STDOUT: !59 = !{!60} -// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !58, type: !26) -// CHECK:STDOUT: !61 = !DILocation(line: 19, column: 3, scope: !58) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"p1 _ZTSN6Carbon5FinalE", !2, i64 0} +// CHECK:STDOUT: !4 = !{!3, !3, i64 0} +// CHECK:STDOUT: !5 = !{!"p1 _ZTSN6Carbon4BaseE", !2, i64 0} +// CHECK:STDOUT: !6 = !{!5, !5, i64 0} +// CHECK:STDOUT: !7 = !{!"vtable pointer", !0, i64 0} +// CHECK:STDOUT: !8 = !{!7, !7, i64 0} +// CHECK:STDOUT: !11 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !12 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !27 = !DIFile(filename: "override_virtual_dtor.carbon", directory: "") +// CHECK:STDOUT: !28 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !27, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !30 = !{null, !29} +// CHECK:STDOUT: !31 = !DISubroutineType(types: !30) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:A.Cpp:Final.Main", scope: null, file: !27, line: 14, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !36) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !29) +// CHECK:STDOUT: !35 = !DILocation(line: 14, column: 3, scope: !32) +// CHECK:STDOUT: !36 = !{!33} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:A.Cpp:Base.Main", scope: null, file: !27, line: 19, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !41) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !29) +// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 3, scope: !37) +// CHECK:STDOUT: !41 = !{!38} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.Final.Main", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !29) +// CHECK:STDOUT: !44 = !DILocation(line: 12, column: 1, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f3d92058986cf00:core.Destroy.Core", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !49) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !29) +// CHECK:STDOUT: !48 = !DILocation(line: 12, column: 1, scope: !46) +// CHECK:STDOUT: !49 = !{!47} +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.44c76b7e3aba5fc1:core.Destroy.Core", scope: null, file: !27, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !53) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !29) +// CHECK:STDOUT: !52 = !DILocation(line: 12, column: 1, scope: !50) +// CHECK:STDOUT: !53 = !{!51} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Final.Main", scope: null, file: !27, line: 14, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !57) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !29) +// CHECK:STDOUT: !56 = !DILocation(line: 14, column: 3, scope: !54) +// CHECK:STDOUT: !57 = !{!55} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.Base.Main", scope: null, file: !27, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !61) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !29) +// CHECK:STDOUT: !60 = !DILocation(line: 17, column: 1, scope: !58) +// CHECK:STDOUT: !61 = !{!59} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26b62f84bf985626:core.Destroy.Core", scope: null, file: !27, line: 17, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !65) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !29) +// CHECK:STDOUT: !64 = !DILocation(line: 17, column: 1, scope: !62) +// CHECK:STDOUT: !65 = !{!63} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Base.Main", scope: null, file: !27, line: 19, type: !31, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !69) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !29) +// CHECK:STDOUT: !68 = !DILocation(line: 19, column: 3, scope: !66) +// CHECK:STDOUT: !69 = !{!67} +// CHECK:STDOUT: !70 = !{!"p1 _ZTS1A", !2, i64 0} +// CHECK:STDOUT: !71 = !{!70, !70, i64 0} +// CHECK:STDOUT: !74 = !{} +// CHECK:STDOUT: !75 = !{i64 8} +// CHECK:STDOUT: !77 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !78 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !79 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !80 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !81 = !{!"__libc_errno", !80, i64 0} +// CHECK:STDOUT: !82 = !{!81, !80, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon b/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon index bfaa6a60cd0c..b878472edc98 100644 --- a/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon +++ b/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon @@ -55,96 +55,96 @@ fn DoubleULongLong64(ull64: Core.CppCompat.ULongLong64) -> u64 { // CHECK:STDOUT: source_filename = "primitives.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CDoubleLong32.Main(i32 %l32) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CDoubleLong32.Main(i32 %l32) #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i32 2, %l32, !dbg !10 -// CHECK:STDOUT: ret i32 %T.as_type.as.MulWith.impl.Op.call, !dbg !11 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i32 2, %l32, !dbg !24 +// CHECK:STDOUT: ret i32 %T.as_type.as.MulWith.impl.Op.call, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CDoubleULong32.Main(i32 %ul32) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CDoubleULong32.Main(i32 %ul32) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i32 2, %ul32, !dbg !18 -// CHECK:STDOUT: ret i32 %T.as_type.as.MulWith.impl.Op.call, !dbg !19 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i32 2, %ul32, !dbg !33 +// CHECK:STDOUT: ret i32 %T.as_type.as.MulWith.impl.Op.call, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CDoubleLong64.Main(i64 %l64) #0 !dbg !20 { +// CHECK:STDOUT: define i64 @_CDoubleLong64.Main(i64 %l64) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %l64, !dbg !26 -// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !27 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %l64, !dbg !42 +// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CDoubleULong64.Main(i64 %ul64) #0 !dbg !28 { +// CHECK:STDOUT: define i64 @_CDoubleULong64.Main(i64 %ul64) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ul64, !dbg !34 -// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !35 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ul64, !dbg !51 +// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CDoubleLongLong64.Main(i64 %ll64) #0 !dbg !36 { +// CHECK:STDOUT: define i64 @_CDoubleLongLong64.Main(i64 %ll64) #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ll64, !dbg !39 -// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !40 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ll64, !dbg !60 +// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CDoubleULongLong64.Main(i64 %ull64) #0 !dbg !41 { +// CHECK:STDOUT: define i64 @_CDoubleULongLong64.Main(i64 %ull64) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ull64, !dbg !44 -// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !45 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ull64, !dbg !69 +// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "primitives.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "DoubleLong32", linkageName: "_CDoubleLong32.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "DoubleULong32", linkageName: "_CDoubleULong32.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "DoubleLong64", linkageName: "_CDoubleLong64.Main", scope: null, file: !1, line: 17, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{!23, !23} -// CHECK:STDOUT: !23 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 19, column: 10, scope: !20) -// CHECK:STDOUT: !27 = !DILocation(line: 19, column: 3, scope: !20) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "DoubleULong64", linkageName: "_CDoubleULong64.Main", scope: null, file: !1, line: 23, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{!31, !31} -// CHECK:STDOUT: !31 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !28, type: !31) -// CHECK:STDOUT: !34 = !DILocation(line: 25, column: 10, scope: !28) -// CHECK:STDOUT: !35 = !DILocation(line: 25, column: 3, scope: !28) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "DoubleLongLong64", linkageName: "_CDoubleLongLong64.Main", scope: null, file: !1, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !23) -// CHECK:STDOUT: !39 = !DILocation(line: 31, column: 10, scope: !36) -// CHECK:STDOUT: !40 = !DILocation(line: 31, column: 3, scope: !36) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "DoubleULongLong64", linkageName: "_CDoubleULongLong64.Main", scope: null, file: !1, line: 35, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !31) -// CHECK:STDOUT: !44 = !DILocation(line: 37, column: 10, scope: !41) -// CHECK:STDOUT: !45 = !DILocation(line: 37, column: 3, scope: !41) +// CHECK:STDOUT: !4 = !DIFile(filename: "primitives.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !10 = !{!6, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{!7, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{!8, !8} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = !{!9, !9} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "DoubleLong32", linkageName: "_CDoubleLong32.Main", scope: null, file: !4, line: 5, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !6) +// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 10, scope: !18) +// CHECK:STDOUT: !25 = !DILocation(line: 7, column: 3, scope: !18) +// CHECK:STDOUT: !26 = !{!19} +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "DoubleULong32", linkageName: "_CDoubleULong32.Main", scope: null, file: !4, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !7) +// CHECK:STDOUT: !33 = !DILocation(line: 13, column: 10, scope: !27) +// CHECK:STDOUT: !34 = !DILocation(line: 13, column: 3, scope: !27) +// CHECK:STDOUT: !35 = !{!28} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "DoubleLong64", linkageName: "_CDoubleLong64.Main", scope: null, file: !4, line: 17, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !44) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !8) +// CHECK:STDOUT: !42 = !DILocation(line: 19, column: 10, scope: !36) +// CHECK:STDOUT: !43 = !DILocation(line: 19, column: 3, scope: !36) +// CHECK:STDOUT: !44 = !{!37} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "DoubleULong64", linkageName: "_CDoubleULong64.Main", scope: null, file: !4, line: 23, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !9) +// CHECK:STDOUT: !51 = !DILocation(line: 25, column: 10, scope: !45) +// CHECK:STDOUT: !52 = !DILocation(line: 25, column: 3, scope: !45) +// CHECK:STDOUT: !53 = !{!46} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "DoubleLongLong64", linkageName: "_CDoubleLongLong64.Main", scope: null, file: !4, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !8) +// CHECK:STDOUT: !60 = !DILocation(line: 31, column: 10, scope: !54) +// CHECK:STDOUT: !61 = !DILocation(line: 31, column: 3, scope: !54) +// CHECK:STDOUT: !62 = !{!55} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "DoubleULongLong64", linkageName: "_CDoubleULongLong64.Main", scope: null, file: !4, line: 35, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !71) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !9) +// CHECK:STDOUT: !69 = !DILocation(line: 37, column: 10, scope: !63) +// CHECK:STDOUT: !70 = !DILocation(line: 37, column: 3, scope: !63) +// CHECK:STDOUT: !71 = !{!64} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/debug_info.carbon b/toolchain/lower/testdata/interop/cpp/debug_info.carbon index c26d42f83ae8..f67fb8d97e2f 100644 --- a/toolchain/lower/testdata/interop/cpp/debug_info.carbon +++ b/toolchain/lower/testdata/interop/cpp/debug_info.carbon @@ -29,45 +29,45 @@ fn Call() -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable -// CHECK:STDOUT: define dso_local noundef i32 @_Z1fv() #0 !dbg !14 { +// CHECK:STDOUT: define dso_local noundef i32 @_Z1fv() #0 !dbg !6 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 42, !dbg !18 +// CHECK:STDOUT: ret i32 42, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCall.Main() #1 !dbg !19 { +// CHECK:STDOUT: define i32 @_CCall.Main() #1 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %f.call = call i32 @_Z1fv(), !dbg !20 -// CHECK:STDOUT: ret i32 %f.call, !dbg !21 +// CHECK:STDOUT: %f.call = call i32 @_Z1fv(), !dbg !34 +// CHECK:STDOUT: ret i32 %f.call, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0, !2} -// CHECK:STDOUT: !llvm.module.flags = !{!4, !5, !6, !7, !8} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!9} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1, !30} +// CHECK:STDOUT: !llvm.module.flags = !{!14, !15, !36, !37, !38} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!43} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) -// CHECK:STDOUT: !1 = !DIFile(filename: "", directory: "", checksumkind: CSK_MD5, checksum: "9eecb7db59d16c80417c72d1e1f4fbf1") -// CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !3 = !DIFile(filename: "debug_info.carbon", directory: "") -// CHECK:STDOUT: !4 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !5 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !6 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !7 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !8 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !9 = !{!10, !11, i64 0} -// CHECK:STDOUT: !10 = !{!"__libc_errno", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"int", !12, i64 0} -// CHECK:STDOUT: !12 = !{!"omnipotent char", !13, i64 0} -// CHECK:STDOUT: !13 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "f", linkageName: "_Z1fv", scope: !3, file: !3, line: 18, type: !15, scopeLine: 18, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, keyInstructions: true) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 11, scope: !14, atomGroup: 1, atomRank: 1) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !3, line: 21, type: !15, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !20 = !DILocation(line: 22, column: 10, scope: !19) -// CHECK:STDOUT: !21 = !DILocation(line: 22, column: 3, scope: !19) +// CHECK:STDOUT: !0 = !DIFile(filename: "", directory: "", checksumkind: CSK_MD5, checksum: "9eecb7db59d16c80417c72d1e1f4fbf1") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !0, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +// CHECK:STDOUT: !2 = !DIFile(filename: "debug_info.carbon", directory: "") +// CHECK:STDOUT: !3 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !4 = !{!3} +// CHECK:STDOUT: !5 = !DISubroutineType(types: !4) +// CHECK:STDOUT: !6 = distinct !DISubprogram(name: "f", linkageName: "_Z1fv", scope: !2, file: !2, line: 18, type: !5, scopeLine: 18, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !1, keyInstructions: true) +// CHECK:STDOUT: !10 = !DILocation(line: 18, column: 11, scope: !6, atomGroup: 1, atomRank: 1) +// CHECK:STDOUT: !14 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !15 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !30 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !2, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 22, column: 10, scope: !31) +// CHECK:STDOUT: !35 = !DILocation(line: 22, column: 3, scope: !31) +// CHECK:STDOUT: !36 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !37 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !38 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !39 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !40 = !{!"omnipotent char", !39, i64 0} +// CHECK:STDOUT: !41 = !{!"int", !40, i64 0} +// CHECK:STDOUT: !42 = !{!"__libc_errno", !41, i64 0} +// CHECK:STDOUT: !43 = !{!42, !41, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/enum.carbon b/toolchain/lower/testdata/interop/cpp/enum.carbon index cf1ff864b874..a0d987f3520a 100644 --- a/toolchain/lower/testdata/interop/cpp/enum.carbon +++ b/toolchain/lower/testdata/interop/cpp/enum.carbon @@ -169,37 +169,37 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CPass.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_16.1.temp = alloca i16, align 2, !dbg !15 -// CHECK:STDOUT: %.loc8_16.1.temp = alloca i16, align 2, !dbg !16 +// CHECK:STDOUT: %.loc7_16.1.temp = alloca i16, align 2, !dbg !13 +// CHECK:STDOUT: %.loc8_16.1.temp = alloca i16, align 2, !dbg !15 // CHECK:STDOUT: %.loc9_16.1.temp = alloca i16, align 2, !dbg !17 -// CHECK:STDOUT: %.loc10_16.1.temp = alloca i16, align 2, !dbg !18 -// CHECK:STDOUT: %.loc11_18.1.temp = alloca i16, align 2, !dbg !19 -// CHECK:STDOUT: %.loc12_18.1.temp = alloca i16, align 2, !dbg !20 -// CHECK:STDOUT: %.loc13_18.1.temp = alloca i16, align 2, !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_16.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_0), !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_16.1.temp), !dbg !16 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_0), !dbg !23 +// CHECK:STDOUT: %.loc10_16.1.temp = alloca i16, align 2, !dbg !19 +// CHECK:STDOUT: %.loc11_18.1.temp = alloca i16, align 2, !dbg !21 +// CHECK:STDOUT: %.loc12_18.1.temp = alloca i16, align 2, !dbg !23 +// CHECK:STDOUT: %.loc13_18.1.temp = alloca i16, align 2, !dbg !25 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_16.1.temp), !dbg !13 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_0), !dbg !14 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_16.1.temp), !dbg !15 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_0), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_16.1.temp), !dbg !17 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_7), !dbg !18 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_16.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_8), !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_18.1.temp), !dbg !21 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_0), !dbg !22 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_18.1.temp), !dbg !23 // CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_7), !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc10_16.1.temp), !dbg !18 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_8), !dbg !25 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_18.1.temp), !dbg !19 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_0), !dbg !26 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_18.1.temp), !dbg !20 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_7), !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_18.1.temp), !dbg !21 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_8), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_18.1.temp), !dbg !25 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr @int_8), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN1C1FENS_1EE.carbon_thunk._(ptr noundef %0) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !30 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !30 -// CHECK:STDOUT: %2 = load i16, ptr %1, align 2, !tbaa !32 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !31 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !31 +// CHECK:STDOUT: %2 = load i16, ptr %1, align 2, !tbaa !33 // CHECK:STDOUT: call void @_ZN1C1FENS_1EE(i16 noundef signext %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -218,44 +218,44 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!34, !35, !36, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pass_as_arg.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Pass", linkageName: "_CPass.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 11, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 11, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "pass_as_arg.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Pass", linkageName: "_CPass.Main", scope: null, file: !4, line: 6, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 11, scope: !12) +// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 3, scope: !12) +// CHECK:STDOUT: !15 = !DILocation(line: 8, column: 11, scope: !12) +// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 3, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 9, column: 11, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 10, column: 11, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 11, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 12, column: 11, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 11, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !24 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !25 = !DILocation(line: 10, column: 3, scope: !12) -// CHECK:STDOUT: !26 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !27 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !29 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !30 = !{!31, !31, i64 0} -// CHECK:STDOUT: !31 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !32 = !{!33, !33, i64 0} -// CHECK:STDOUT: !33 = !{!"_ZTSN1C1EE", !10, i64 0} +// CHECK:STDOUT: !18 = !DILocation(line: 9, column: 3, scope: !12) +// CHECK:STDOUT: !19 = !DILocation(line: 10, column: 11, scope: !12) +// CHECK:STDOUT: !20 = !DILocation(line: 10, column: 3, scope: !12) +// CHECK:STDOUT: !21 = !DILocation(line: 11, column: 11, scope: !12) +// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 3, scope: !12) +// CHECK:STDOUT: !23 = !DILocation(line: 12, column: 11, scope: !12) +// CHECK:STDOUT: !24 = !DILocation(line: 12, column: 3, scope: !12) +// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 11, scope: !12) +// CHECK:STDOUT: !26 = !DILocation(line: 13, column: 3, scope: !12) +// CHECK:STDOUT: !27 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"any pointer", !29, i64 0} +// CHECK:STDOUT: !31 = !{!30, !30, i64 0} +// CHECK:STDOUT: !32 = !{!"_ZTSN1C1EE", !29, i64 0} +// CHECK:STDOUT: !33 = !{!32, !32, i64 0} +// CHECK:STDOUT: !34 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !35 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !36 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !37 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !37, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'convert.carbon' @@ -266,27 +266,27 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: declare void @_CTakeI16.Main(i16) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassEnum.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassEnum.Main() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CTakeI16.Main(i16 7), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_CTakeI16.Main(i16 7), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertEnumToI16.Main(i16 %e) #0 !dbg !17 { +// CHECK:STDOUT: define void @_CConvertEnumToI16.Main(i16 %e) #0 !dbg !47 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CTakeI16.Main(i16 %e), !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: call void @_CTakeI16.Main(i16 %e), !dbg !51 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertI16ToEnum.Main(i16 %n) #0 !dbg !25 { +// CHECK:STDOUT: define void @_CConvertI16ToEnum.Main(i16 %n) #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17_13.3.temp = alloca i16, align 2, !dbg !28 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_13.3.temp), !dbg !28 -// CHECK:STDOUT: store i16 %n, ptr %.loc17_13.3.temp, align 2, !dbg !28 -// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr %.loc17_13.3.temp), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %.loc17_13.3.temp = alloca i16, align 2, !dbg !57 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_13.3.temp), !dbg !57 +// CHECK:STDOUT: store i16 %n, ptr %.loc17_13.3.temp, align 2, !dbg !57 +// CHECK:STDOUT: call void @_ZN1C1FENS_1EE.carbon_thunk._(ptr %.loc17_13.3.temp), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -310,45 +310,45 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!41} +// CHECK:STDOUT: !llvm.module.flags = !{!34, !35, !36, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassEnum", linkageName: "_CPassEnum.Main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 1, scope: !12) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "ConvertEnumToI16", linkageName: "_CConvertEnumToI16.Main", scope: null, file: !1, line: 12, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !20} -// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !17, type: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 13, column: 3, scope: !17) -// CHECK:STDOUT: !24 = !DILocation(line: 12, column: 1, scope: !17) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "ConvertI16ToEnum", linkageName: "_CConvertI16ToEnum.Main", scope: null, file: !1, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !20) -// CHECK:STDOUT: !28 = !DILocation(line: 17, column: 11, scope: !25) -// CHECK:STDOUT: !29 = !DILocation(line: 17, column: 3, scope: !25) -// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 1, scope: !25) -// CHECK:STDOUT: !31 = !{!32, !32, i64 0} -// CHECK:STDOUT: !32 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !33 = !{!34, !34, i64 0} -// CHECK:STDOUT: !34 = !{!"_ZTSN1C1EE", !10, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"any pointer", !29, i64 0} +// CHECK:STDOUT: !31 = !{!30, !30, i64 0} +// CHECK:STDOUT: !32 = !{!"_ZTSN1C1EE", !29, i64 0} +// CHECK:STDOUT: !33 = !{!32, !32, i64 0} +// CHECK:STDOUT: !34 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !35 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !36 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !37 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !37, i64 0} +// CHECK:STDOUT: !40 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !41 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !40, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !42 = !{null, !6} +// CHECK:STDOUT: !43 = !DISubroutineType(types: !42) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "PassEnum", linkageName: "_CPassEnum.Main", scope: null, file: !40, line: 8, type: !8, spFlags: DISPFlagDefinition, unit: !41) +// CHECK:STDOUT: !45 = !DILocation(line: 9, column: 3, scope: !44) +// CHECK:STDOUT: !46 = !DILocation(line: 8, column: 1, scope: !44) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "ConvertEnumToI16", linkageName: "_CConvertEnumToI16.Main", scope: null, file: !40, line: 12, type: !43, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !53) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !6) +// CHECK:STDOUT: !51 = !DILocation(line: 13, column: 3, scope: !47) +// CHECK:STDOUT: !52 = !DILocation(line: 12, column: 1, scope: !47) +// CHECK:STDOUT: !53 = !{!48} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "ConvertI16ToEnum", linkageName: "_CConvertI16ToEnum.Main", scope: null, file: !40, line: 16, type: !43, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !60) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !6) +// CHECK:STDOUT: !57 = !DILocation(line: 17, column: 11, scope: !54) +// CHECK:STDOUT: !58 = !DILocation(line: 17, column: 3, scope: !54) +// CHECK:STDOUT: !59 = !DILocation(line: 16, column: 1, scope: !54) +// CHECK:STDOUT: !60 = !{!55} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_bitmask.carbon' @@ -357,29 +357,29 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCompileTime.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCompileTime.Main() #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 0), !dbg !15 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 5), !dbg !16 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 5), !dbg !17 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 -2), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 0), !dbg !69 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 5), !dbg !70 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 5), !dbg !71 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 -2), !dbg !72 +// CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z4Take4Bits(i32 noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CRuntime.Main(i32 %a, i32 %b) #0 !dbg !20 { +// CHECK:STDOUT: define void @_CRuntime.Main(i32 %a, i32 %b) #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Op.call.loc14 = and i32 %a, %b, !dbg !27 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc14), !dbg !28 -// CHECK:STDOUT: %Op.call.loc15 = or i32 %a, %b, !dbg !29 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc15), !dbg !30 -// CHECK:STDOUT: %Op.call.loc16 = xor i32 %a, %b, !dbg !31 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc16), !dbg !32 -// CHECK:STDOUT: %Op.call.loc20 = xor i32 -1, %a, !dbg !33 -// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc20), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: %Op.call.loc14 = and i32 %a, %b, !dbg !79 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc14), !dbg !81 +// CHECK:STDOUT: %Op.call.loc15 = or i32 %a, %b, !dbg !82 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc15), !dbg !84 +// CHECK:STDOUT: %Op.call.loc16 = xor i32 %a, %b, !dbg !85 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc16), !dbg !87 +// CHECK:STDOUT: %Op.call.loc20 = xor i32 -1, %a, !dbg !89 +// CHECK:STDOUT: call void @_Z4Take4Bits(i32 %Op.call.loc20), !dbg !90 +// CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -388,46 +388,46 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!62} +// CHECK:STDOUT: !llvm.module.flags = !{!34, !35, !36, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_bitmask.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "CompileTime", linkageName: "_CCompileTime.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 10, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Runtime", linkageName: "_CRuntime.Main", scope: null, file: !1, line: 13, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23, !23} -// CHECK:STDOUT: !23 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !24 = !{!25, !26} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 2, scope: !20, type: !23) -// CHECK:STDOUT: !27 = !DILocation(line: 14, column: 12, scope: !20) -// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !20) -// CHECK:STDOUT: !29 = !DILocation(line: 15, column: 12, scope: !20) -// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 3, scope: !20) -// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 12, scope: !20) -// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 3, scope: !20) -// CHECK:STDOUT: !33 = !DILocation(line: 20, column: 12, scope: !20) -// CHECK:STDOUT: !34 = !DILocation(line: 20, column: 3, scope: !20) -// CHECK:STDOUT: !35 = !DILocation(line: 13, column: 1, scope: !20) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !34 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !35 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !36 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !37 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !37, i64 0} +// CHECK:STDOUT: !61 = !DIFile(filename: "use_bitmask.carbon", directory: "") +// CHECK:STDOUT: !62 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !61, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !63 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !66 = !{null, !63, !63} +// CHECK:STDOUT: !67 = !DISubroutineType(types: !66) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "CompileTime", linkageName: "_CCompileTime.Main", scope: null, file: !61, line: 6, type: !8, spFlags: DISPFlagDefinition, unit: !62) +// CHECK:STDOUT: !69 = !DILocation(line: 7, column: 3, scope: !68) +// CHECK:STDOUT: !70 = !DILocation(line: 8, column: 3, scope: !68) +// CHECK:STDOUT: !71 = !DILocation(line: 9, column: 3, scope: !68) +// CHECK:STDOUT: !72 = !DILocation(line: 10, column: 3, scope: !68) +// CHECK:STDOUT: !73 = !DILocation(line: 6, column: 1, scope: !68) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "Runtime", linkageName: "_CRuntime.Main", scope: null, file: !61, line: 13, type: !67, spFlags: DISPFlagDefinition, unit: !62, retainedNodes: !92) +// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !74, type: !63) +// CHECK:STDOUT: !76 = !DILocalVariable(arg: 2, scope: !74, type: !63) +// CHECK:STDOUT: !79 = !DILocation(line: 14, column: 12, scope: !74) +// CHECK:STDOUT: !81 = !DILocation(line: 14, column: 3, scope: !74) +// CHECK:STDOUT: !82 = !DILocation(line: 15, column: 12, scope: !74) +// CHECK:STDOUT: !84 = !DILocation(line: 15, column: 3, scope: !74) +// CHECK:STDOUT: !85 = !DILocation(line: 16, column: 12, scope: !74) +// CHECK:STDOUT: !87 = !DILocation(line: 16, column: 3, scope: !74) +// CHECK:STDOUT: !89 = !DILocation(line: 20, column: 12, scope: !74) +// CHECK:STDOUT: !90 = !DILocation(line: 20, column: 3, scope: !74) +// CHECK:STDOUT: !91 = !DILocation(line: 13, column: 1, scope: !74) +// CHECK:STDOUT: !92 = !{!75, !76} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'compare.carbon' @@ -436,66 +436,66 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCompare.Main(i16 %a, i16 %b) #0 !dbg !12 { +// CHECK:STDOUT: define i1 @_CCompare.Main(i16 %a, i16 %b) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %b, !dbg !20 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !21 +// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %b, !dbg !104 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCallCompareGeneric.Main(i16 %a, i16 %b) #0 !dbg !22 { +// CHECK:STDOUT: define i1 @_CCallCompareGeneric.Main(i16 %a, i16 %b) #0 !dbg !108 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.80c3fc0239809458(i16 %a, i16 %b), !dbg !26 -// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !27 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.80c3fc0239809458(i16 %a, i16 %b), !dbg !117 +// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.80c3fc0239809458(i16 %x, i16 %y) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.80c3fc0239809458(i16 %x, i16 %y) #0 !dbg !120 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = icmp eq i16 %x, %y, !dbg !32 -// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !33 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = icmp eq i16 %x, %y, !dbg !127 +// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!94} +// CHECK:STDOUT: !llvm.module.flags = !{!34, !35, !36, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "compare.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Compare", linkageName: "_CCompare.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16, !16} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18, !19} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 2, scope: !12, type: !16) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "CallCompareGeneric", linkageName: "_CCallCompareGeneric.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24, !25} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !16) -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !22, type: !16) -// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 10, scope: !22) -// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 3, scope: !22) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.80c3fc0239809458", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !16) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !28, type: !16) -// CHECK:STDOUT: !32 = !DILocation(line: 11, column: 10, scope: !28) -// CHECK:STDOUT: !33 = !DILocation(line: 11, column: 3, scope: !28) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !34 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !35 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !36 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !37 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !37, i64 0} +// CHECK:STDOUT: !93 = !DIFile(filename: "compare.carbon", directory: "") +// CHECK:STDOUT: !94 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !93, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !95 = !{!9, !6, !6} +// CHECK:STDOUT: !96 = !DISubroutineType(types: !95) +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Compare", linkageName: "_CCompare.Main", scope: null, file: !93, line: 6, type: !96, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !107) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !6) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 2, scope: !97, type: !6) +// CHECK:STDOUT: !104 = !DILocation(line: 7, column: 10, scope: !97) +// CHECK:STDOUT: !106 = !DILocation(line: 7, column: 3, scope: !97) +// CHECK:STDOUT: !107 = !{!98, !99} +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "CallCompareGeneric", linkageName: "_CCallCompareGeneric.Main", scope: null, file: !93, line: 14, type: !96, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !119) +// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !6) +// CHECK:STDOUT: !110 = !DILocalVariable(arg: 2, scope: !108, type: !6) +// CHECK:STDOUT: !117 = !DILocation(line: 15, column: 10, scope: !108) +// CHECK:STDOUT: !118 = !DILocation(line: 15, column: 3, scope: !108) +// CHECK:STDOUT: !119 = !{!109, !110} +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.80c3fc0239809458", scope: null, file: !93, line: 10, type: !96, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !130) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !6) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !120, type: !6) +// CHECK:STDOUT: !127 = !DILocation(line: 11, column: 10, scope: !120) +// CHECK:STDOUT: !129 = !DILocation(line: 11, column: 3, scope: !120) +// CHECK:STDOUT: !130 = !{!121, !122} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'compare_class.carbon' @@ -504,14 +504,14 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCompare.Main(i16 %a, ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define i1 @_CCompare.Main(i16 %a, ptr %b) #0 !dbg !141 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_15.1.temp = alloca i16, align 2, !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_15.1.temp), !dbg !20 -// CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %b, ptr %.loc18_15.1.temp), !dbg !20 -// CHECK:STDOUT: %.loc18_15.5 = load i16, ptr %.loc18_15.1.temp, align 2, !dbg !20 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %.loc18_15.5, !dbg !21 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !22 +// CHECK:STDOUT: %.loc18_15.1.temp = alloca i16, align 2, !dbg !149 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_15.1.temp), !dbg !149 +// CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %b, ptr %.loc18_15.1.temp), !dbg !149 +// CHECK:STDOUT: %.loc18_15.5 = load i16, ptr %.loc18_15.1.temp, align 2, !dbg !149 +// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %.loc18_15.5, !dbg !148 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -519,42 +519,42 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !23 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !23, !nonnull !27 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !274 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !31 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !31 +// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !274, !nonnull !276 // CHECK:STDOUT: %call = call noundef signext i16 @_ZNK13ConvertToEnumcvN1C1EEEv(ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !28 +// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !33 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCompare2.Main(i32 %a, ptr %b) #0 !dbg !30 { +// CHECK:STDOUT: define i1 @_CCompare2.Main(i32 %a, ptr %b) #0 !dbg !152 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %b), !dbg !37 -// CHECK:STDOUT: %Equal.call = icmp eq i32 %a, %__carbon_thunk.call, !dbg !38 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !39 +// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %b), !dbg !160 +// CHECK:STDOUT: %Equal.call = icmp eq i32 %a, %__carbon_thunk.call, !dbg !159 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal noundef i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr noundef nonnull align 1 dereferenceable(1) %this) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !23 -// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !23, !nonnull !27 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !274 +// CHECK:STDOUT: %0 = load ptr, ptr %this.addr, align 8, !tbaa !274, !nonnull !276 // CHECK:STDOUT: %call = call noundef i32 @_ZNK13ConvertToEnumcv2E2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) // CHECK:STDOUT: ret i32 %call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCompare3.Main(i16 %a, ptr %b) #0 !dbg !40 { +// CHECK:STDOUT: define i1 @_CCompare3.Main(i16 %a, ptr %b) #0 !dbg !163 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc26_15.1.temp = alloca i16, align 2, !dbg !44 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_15.1.temp), !dbg !44 -// CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %b, ptr %.loc26_15.1.temp), !dbg !44 -// CHECK:STDOUT: %.loc26_15.5 = load i16, ptr %.loc26_15.1.temp, align 2, !dbg !44 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %.loc26_15.5, !dbg !45 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !46 +// CHECK:STDOUT: %.loc26_15.1.temp = alloca i16, align 2, !dbg !171 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_15.1.temp), !dbg !171 +// CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %b, ptr %.loc26_15.1.temp), !dbg !171 +// CHECK:STDOUT: %.loc26_15.5 = load i16, ptr %.loc26_15.1.temp, align 2, !dbg !171 +// CHECK:STDOUT: %Equal.call = icmp eq i16 %a, %.loc26_15.5, !dbg !170 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -562,118 +562,118 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !47 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !26 -// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !47, !nonnull !27 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !278 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !31 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !31 +// CHECK:STDOUT: %1 = load ptr, ptr %this.addr, align 8, !tbaa !278, !nonnull !276 // CHECK:STDOUT: %call = call noundef signext i16 @_ZNK14ConvertToEnum2cvN1C1EEEv(ptr noundef nonnull align 1 dereferenceable(1) %1) -// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !28 +// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !33 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCallCompareGeneric.Main(i16 %a, ptr %b) #0 !dbg !49 { +// CHECK:STDOUT: define i1 @_CCallCompareGeneric.Main(i16 %a, ptr %b) #0 !dbg !174 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.215a23369ed4d589(i16 %a, ptr %b), !dbg !53 -// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !54 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.215a23369ed4d589(i16 %a, ptr %b), !dbg !183 +// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !55 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !186 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !59 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !59 -// CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !59 -// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !59 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %self, %.8, !dbg !59 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !59 +// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !189 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !189 +// CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !189 +// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !189 +// CHECK:STDOUT: %Equal.call = icmp eq i16 %self, %.8, !dbg !189 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !60 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !191 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !64 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !64 -// CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !64 -// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !64 -// CHECK:STDOUT: %NotEqual.call = icmp ne i16 %self, %.8, !dbg !64 -// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !64 +// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !194 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !194 +// CHECK:STDOUT: call void @_ZNK13ConvertToEnumcvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !194 +// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !194 +// CHECK:STDOUT: %NotEqual.call = icmp ne i16 %self, %.8, !dbg !194 +// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !194 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCallCompareGeneric2.Main(i32 %a, ptr %b) #0 !dbg !65 { +// CHECK:STDOUT: define i1 @_CCallCompareGeneric2.Main(i32 %a, ptr %b) #0 !dbg !196 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.a5489e454367d917(i32 %a, ptr %b), !dbg !69 -// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !70 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.a5489e454367d917(i32 %a, ptr %b), !dbg !205 +// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !206 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %self, ptr %other) #2 !dbg !71 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %self, ptr %other) #2 !dbg !208 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %other), !dbg !75 -// CHECK:STDOUT: %Equal.call = icmp eq i32 %self, %__carbon_thunk.call, !dbg !75 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !75 +// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %other), !dbg !211 +// CHECK:STDOUT: %Equal.call = icmp eq i32 %self, %__carbon_thunk.call, !dbg !211 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !211 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %self, ptr %other) #2 !dbg !76 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %self, ptr %other) #2 !dbg !213 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %other), !dbg !80 -// CHECK:STDOUT: %NotEqual.call = icmp ne i32 %self, %__carbon_thunk.call, !dbg !80 -// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !80 +// CHECK:STDOUT: %__carbon_thunk.call = call i32 @_ZNK13ConvertToEnumcv2E2Ev.carbon_thunk._(ptr %other), !dbg !216 +// CHECK:STDOUT: %NotEqual.call = icmp ne i32 %self, %__carbon_thunk.call, !dbg !216 +// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !216 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CCallCompareGeneric3.Main(i16 %a, ptr %b) #0 !dbg !81 { +// CHECK:STDOUT: define i1 @_CCallCompareGeneric3.Main(i16 %a, ptr %b) #0 !dbg !218 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.64b737572447efad(i16 %a, ptr %b), !dbg !85 -// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !86 +// CHECK:STDOUT: %CompareGeneric.call = call i1 @_CCompareGeneric.Main.64b737572447efad(i16 %a, ptr %b), !dbg !227 +// CHECK:STDOUT: ret i1 %CompareGeneric.call, !dbg !228 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !87 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !230 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !91 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !91 -// CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !91 -// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !91 -// CHECK:STDOUT: %Equal.call = icmp eq i16 %self, %.8, !dbg !91 -// CHECK:STDOUT: ret i1 %Equal.call, !dbg !91 +// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !233 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !233 +// CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !233 +// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !233 +// CHECK:STDOUT: %Equal.call = icmp eq i16 %self, %.8, !dbg !233 +// CHECK:STDOUT: ret i1 %Equal.call, !dbg !233 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !92 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %self, ptr %other) #2 !dbg !235 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !96 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !96 -// CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !96 -// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !96 -// CHECK:STDOUT: %NotEqual.call = icmp ne i16 %self, %.8, !dbg !96 -// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !96 +// CHECK:STDOUT: %.4.temp = alloca i16, align 2, !dbg !238 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.4.temp), !dbg !238 +// CHECK:STDOUT: call void @_ZNK14ConvertToEnum2cvN1C1EEEv.carbon_thunk._(ptr %other, ptr %.4.temp), !dbg !238 +// CHECK:STDOUT: %.8 = load i16, ptr %.4.temp, align 2, !dbg !238 +// CHECK:STDOUT: %NotEqual.call = icmp ne i16 %self, %.8, !dbg !238 +// CHECK:STDOUT: ret i1 %NotEqual.call, !dbg !238 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.215a23369ed4d589(i16 %x, ptr %y) #0 !dbg !97 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.215a23369ed4d589(i16 %x, ptr %y) #0 !dbg !240 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %x, ptr %y), !dbg !101 -// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !102 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed"(i16 %x, ptr %y), !dbg !247 +// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !249 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.a5489e454367d917(i32 %x, ptr %y) #0 !dbg !103 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.a5489e454367d917(i32 %x, ptr %y) #0 !dbg !251 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %x, ptr %y), !dbg !107 -// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !108 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed"(i32 %x, ptr %y), !dbg !258 +// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !260 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.64b737572447efad(i16 %x, ptr %y) #0 !dbg !109 { +// CHECK:STDOUT: define linkonce_odr i1 @_CCompareGeneric.Main.64b737572447efad(i16 %x, ptr %y) #0 !dbg !262 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %x, ptr %y), !dbg !113 -// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !114 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed"(i16 %x, ptr %y), !dbg !269 +// CHECK:STDOUT: ret i1 %EqWith.WithSelf.Equal.call, !dbg !271 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef signext i16 @_ZNK13ConvertToEnumcvN1C1EEEv(ptr noundef nonnull align 1 dereferenceable(1)) #4 @@ -691,123 +691,123 @@ fn CallCompareGeneric3(a: Cpp.C.E, b: Cpp.ConvertToEnum2) -> bool { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!132} +// CHECK:STDOUT: !llvm.module.flags = !{!34, !35, !36, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "compare_class.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Compare", linkageName: "_CCompare.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18, !19} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 2, scope: !12, type: !15) -// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 15, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 10, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !{!24, !24, i64 0} -// CHECK:STDOUT: !24 = !{!"p1 _ZTS13ConvertToEnum", !25, i64 0} -// CHECK:STDOUT: !25 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !26 = !{!25, !25, i64 0} -// CHECK:STDOUT: !27 = !{} -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"_ZTSN1C1EE", !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Compare2", linkageName: "_CCompare2.Main", scope: null, file: !1, line: 21, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!15, !33, !15} -// CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !34 = !{!35, !36} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 2, scope: !30, type: !15) -// CHECK:STDOUT: !37 = !DILocation(line: 22, column: 15, scope: !30) -// CHECK:STDOUT: !38 = !DILocation(line: 22, column: 10, scope: !30) -// CHECK:STDOUT: !39 = !DILocation(line: 22, column: 3, scope: !30) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Compare3", linkageName: "_CCompare3.Main", scope: null, file: !1, line: 25, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42, !43} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !16) -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !15) -// CHECK:STDOUT: !44 = !DILocation(line: 26, column: 15, scope: !40) -// CHECK:STDOUT: !45 = !DILocation(line: 26, column: 10, scope: !40) -// CHECK:STDOUT: !46 = !DILocation(line: 26, column: 3, scope: !40) -// CHECK:STDOUT: !47 = !{!48, !48, i64 0} -// CHECK:STDOUT: !48 = !{!"p1 _ZTS14ConvertToEnum2", !25, i64 0} -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "CallCompareGeneric", linkageName: "_CCallCompareGeneric.Main", scope: null, file: !1, line: 35, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51, !52} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !16) -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !15) -// CHECK:STDOUT: !53 = !DILocation(line: 36, column: 10, scope: !49) -// CHECK:STDOUT: !54 = !DILocation(line: 36, column: 3, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed", scope: null, file: !1, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57, !58} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !16) -// CHECK:STDOUT: !58 = !DILocalVariable(arg: 2, scope: !55, type: !15) -// CHECK:STDOUT: !59 = !DILocation(line: 0, scope: !55) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed", scope: null, file: !1, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !61) -// CHECK:STDOUT: !61 = !{!62, !63} -// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !60, type: !16) -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 2, scope: !60, type: !15) -// CHECK:STDOUT: !64 = !DILocation(line: 0, scope: !60) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "CallCompareGeneric2", linkageName: "_CCallCompareGeneric2.Main", scope: null, file: !1, line: 39, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !66) -// CHECK:STDOUT: !66 = !{!67, !68} -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !33) -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 2, scope: !65, type: !15) -// CHECK:STDOUT: !69 = !DILocation(line: 40, column: 10, scope: !65) -// CHECK:STDOUT: !70 = !DILocation(line: 40, column: 3, scope: !65) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed", scope: null, file: !1, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !72 = !{!73, !74} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !71, type: !33) -// CHECK:STDOUT: !74 = !DILocalVariable(arg: 2, scope: !71, type: !15) -// CHECK:STDOUT: !75 = !DILocation(line: 0, scope: !71) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed", scope: null, file: !1, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !77) -// CHECK:STDOUT: !77 = !{!78, !79} -// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !76, type: !33) -// CHECK:STDOUT: !79 = !DILocalVariable(arg: 2, scope: !76, type: !15) -// CHECK:STDOUT: !80 = !DILocation(line: 0, scope: !76) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "CallCompareGeneric3", linkageName: "_CCallCompareGeneric3.Main", scope: null, file: !1, line: 43, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !82) -// CHECK:STDOUT: !82 = !{!83, !84} -// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !16) -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 2, scope: !81, type: !15) -// CHECK:STDOUT: !85 = !DILocation(line: 44, column: 10, scope: !81) -// CHECK:STDOUT: !86 = !DILocation(line: 44, column: 3, scope: !81) -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed", scope: null, file: !1, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !88) -// CHECK:STDOUT: !88 = !{!89, !90} -// CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !87, type: !16) -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 2, scope: !87, type: !15) -// CHECK:STDOUT: !91 = !DILocation(line: 0, scope: !87) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.a294139a6615e163.Core:enclosed", scope: null, file: !1, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !93) -// CHECK:STDOUT: !93 = !{!94, !95} -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !92, type: !16) -// CHECK:STDOUT: !95 = !DILocalVariable(arg: 2, scope: !92, type: !15) -// CHECK:STDOUT: !96 = !DILocation(line: 0, scope: !92) -// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.215a23369ed4d589", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !98) -// CHECK:STDOUT: !98 = !{!99, !100} -// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !97, type: !16) -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 2, scope: !97, type: !15) -// CHECK:STDOUT: !101 = !DILocation(line: 30, column: 10, scope: !97) -// CHECK:STDOUT: !102 = !DILocation(line: 30, column: 3, scope: !97) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.a5489e454367d917", scope: null, file: !1, line: 29, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !104) -// CHECK:STDOUT: !104 = !{!105, !106} -// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !103, type: !33) -// CHECK:STDOUT: !106 = !DILocalVariable(arg: 2, scope: !103, type: !15) -// CHECK:STDOUT: !107 = !DILocation(line: 30, column: 10, scope: !103) -// CHECK:STDOUT: !108 = !DILocation(line: 30, column: 3, scope: !103) -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.64b737572447efad", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !110) -// CHECK:STDOUT: !110 = !{!111, !112} -// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !109, type: !16) -// CHECK:STDOUT: !112 = !DILocalVariable(arg: 2, scope: !109, type: !15) -// CHECK:STDOUT: !113 = !DILocation(line: 30, column: 10, scope: !109) -// CHECK:STDOUT: !114 = !DILocation(line: 30, column: 3, scope: !109) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"any pointer", !29, i64 0} +// CHECK:STDOUT: !31 = !{!30, !30, i64 0} +// CHECK:STDOUT: !32 = !{!"_ZTSN1C1EE", !29, i64 0} +// CHECK:STDOUT: !33 = !{!32, !32, i64 0} +// CHECK:STDOUT: !34 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !35 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !36 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !37 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !37, i64 0} +// CHECK:STDOUT: !63 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !131 = !DIFile(filename: "compare_class.carbon", directory: "") +// CHECK:STDOUT: !132 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !131, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !133 = !{!9, !6, !9} +// CHECK:STDOUT: !134 = !DISubroutineType(types: !133) +// CHECK:STDOUT: !137 = !{!9, !63, !9} +// CHECK:STDOUT: !138 = !DISubroutineType(types: !137) +// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "Compare", linkageName: "_CCompare.Main", scope: null, file: !131, line: 17, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !151) +// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !141, type: !6) +// CHECK:STDOUT: !143 = !DILocalVariable(arg: 2, scope: !141, type: !9) +// CHECK:STDOUT: !148 = !DILocation(line: 18, column: 10, scope: !141) +// CHECK:STDOUT: !149 = !DILocation(line: 18, column: 15, scope: !141) +// CHECK:STDOUT: !150 = !DILocation(line: 18, column: 3, scope: !141) +// CHECK:STDOUT: !151 = !{!142, !143} +// CHECK:STDOUT: !152 = distinct !DISubprogram(name: "Compare2", linkageName: "_CCompare2.Main", scope: null, file: !131, line: 21, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !162) +// CHECK:STDOUT: !153 = !DILocalVariable(arg: 1, scope: !152, type: !63) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 2, scope: !152, type: !9) +// CHECK:STDOUT: !159 = !DILocation(line: 22, column: 10, scope: !152) +// CHECK:STDOUT: !160 = !DILocation(line: 22, column: 15, scope: !152) +// CHECK:STDOUT: !161 = !DILocation(line: 22, column: 3, scope: !152) +// CHECK:STDOUT: !162 = !{!153, !154} +// CHECK:STDOUT: !163 = distinct !DISubprogram(name: "Compare3", linkageName: "_CCompare3.Main", scope: null, file: !131, line: 25, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !173) +// CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !163, type: !6) +// CHECK:STDOUT: !165 = !DILocalVariable(arg: 2, scope: !163, type: !9) +// CHECK:STDOUT: !170 = !DILocation(line: 26, column: 10, scope: !163) +// CHECK:STDOUT: !171 = !DILocation(line: 26, column: 15, scope: !163) +// CHECK:STDOUT: !172 = !DILocation(line: 26, column: 3, scope: !163) +// CHECK:STDOUT: !173 = !{!164, !165} +// CHECK:STDOUT: !174 = distinct !DISubprogram(name: "CallCompareGeneric", linkageName: "_CCallCompareGeneric.Main", scope: null, file: !131, line: 35, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !185) +// CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !174, type: !6) +// CHECK:STDOUT: !176 = !DILocalVariable(arg: 2, scope: !174, type: !9) +// CHECK:STDOUT: !183 = !DILocation(line: 36, column: 10, scope: !174) +// CHECK:STDOUT: !184 = !DILocation(line: 36, column: 3, scope: !174) +// CHECK:STDOUT: !185 = !{!175, !176} +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !190) +// CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !6) +// CHECK:STDOUT: !188 = !DILocalVariable(arg: 2, scope: !186, type: !9) +// CHECK:STDOUT: !189 = !DILocation(line: 0, scope: !186) +// CHECK:STDOUT: !190 = !{!187, !188} +// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.83b9626e83cf3dcc.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !195) +// CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !6) +// CHECK:STDOUT: !193 = !DILocalVariable(arg: 2, scope: !191, type: !9) +// CHECK:STDOUT: !194 = !DILocation(line: 0, scope: !191) +// CHECK:STDOUT: !195 = !{!192, !193} +// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "CallCompareGeneric2", linkageName: "_CCallCompareGeneric2.Main", scope: null, file: !131, line: 39, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !207) +// CHECK:STDOUT: !197 = !DILocalVariable(arg: 1, scope: !196, type: !63) +// CHECK:STDOUT: !198 = !DILocalVariable(arg: 2, scope: !196, type: !9) +// CHECK:STDOUT: !205 = !DILocation(line: 40, column: 10, scope: !196) +// CHECK:STDOUT: !206 = !DILocation(line: 40, column: 3, scope: !196) +// CHECK:STDOUT: !207 = !{!197, !198} +// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed", scope: null, file: !131, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !212) +// CHECK:STDOUT: !209 = !DILocalVariable(arg: 1, scope: !208, type: !63) +// CHECK:STDOUT: !210 = !DILocalVariable(arg: 2, scope: !208, type: !9) +// CHECK:STDOUT: !211 = !DILocation(line: 0, scope: !208) +// CHECK:STDOUT: !212 = !{!209, !210} +// CHECK:STDOUT: !213 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.e8fe48de943d9652.Core:enclosed", scope: null, file: !131, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !217) +// CHECK:STDOUT: !214 = !DILocalVariable(arg: 1, scope: !213, type: !63) +// CHECK:STDOUT: !215 = !DILocalVariable(arg: 2, scope: !213, type: !9) +// CHECK:STDOUT: !216 = !DILocation(line: 0, scope: !213) +// CHECK:STDOUT: !217 = !{!214, !215} +// CHECK:STDOUT: !218 = distinct !DISubprogram(name: "CallCompareGeneric3", linkageName: "_CCallCompareGeneric3.Main", scope: null, file: !131, line: 43, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !229) +// CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !218, type: !6) +// CHECK:STDOUT: !220 = !DILocalVariable(arg: 2, scope: !218, type: !9) +// CHECK:STDOUT: !227 = !DILocation(line: 44, column: 10, scope: !218) +// CHECK:STDOUT: !228 = !DILocation(line: 44, column: 3, scope: !218) +// CHECK:STDOUT: !229 = !{!219, !220} +// CHECK:STDOUT: !230 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.a294139a6615e163.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !234) +// CHECK:STDOUT: !231 = !DILocalVariable(arg: 1, scope: !230, type: !6) +// CHECK:STDOUT: !232 = !DILocalVariable(arg: 2, scope: !230, type: !9) +// CHECK:STDOUT: !233 = !DILocation(line: 0, scope: !230) +// CHECK:STDOUT: !234 = !{!231, !232} +// CHECK:STDOUT: !235 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.a294139a6615e163.Core:enclosed", scope: null, file: !131, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !239) +// CHECK:STDOUT: !236 = !DILocalVariable(arg: 1, scope: !235, type: !6) +// CHECK:STDOUT: !237 = !DILocalVariable(arg: 2, scope: !235, type: !9) +// CHECK:STDOUT: !238 = !DILocation(line: 0, scope: !235) +// CHECK:STDOUT: !239 = !{!236, !237} +// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.215a23369ed4d589", scope: null, file: !131, line: 29, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !250) +// CHECK:STDOUT: !241 = !DILocalVariable(arg: 1, scope: !240, type: !6) +// CHECK:STDOUT: !242 = !DILocalVariable(arg: 2, scope: !240, type: !9) +// CHECK:STDOUT: !247 = !DILocation(line: 30, column: 10, scope: !240) +// CHECK:STDOUT: !249 = !DILocation(line: 30, column: 3, scope: !240) +// CHECK:STDOUT: !250 = !{!241, !242} +// CHECK:STDOUT: !251 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.a5489e454367d917", scope: null, file: !131, line: 29, type: !138, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !261) +// CHECK:STDOUT: !252 = !DILocalVariable(arg: 1, scope: !251, type: !63) +// CHECK:STDOUT: !253 = !DILocalVariable(arg: 2, scope: !251, type: !9) +// CHECK:STDOUT: !258 = !DILocation(line: 30, column: 10, scope: !251) +// CHECK:STDOUT: !260 = !DILocation(line: 30, column: 3, scope: !251) +// CHECK:STDOUT: !261 = !{!252, !253} +// CHECK:STDOUT: !262 = distinct !DISubprogram(name: "CompareGeneric", linkageName: "_CCompareGeneric.Main.64b737572447efad", scope: null, file: !131, line: 29, type: !134, spFlags: DISPFlagDefinition, unit: !132, retainedNodes: !272) +// CHECK:STDOUT: !263 = !DILocalVariable(arg: 1, scope: !262, type: !6) +// CHECK:STDOUT: !264 = !DILocalVariable(arg: 2, scope: !262, type: !9) +// CHECK:STDOUT: !269 = !DILocation(line: 30, column: 10, scope: !262) +// CHECK:STDOUT: !271 = !DILocation(line: 30, column: 3, scope: !262) +// CHECK:STDOUT: !272 = !{!263, !264} +// CHECK:STDOUT: !273 = !{!"p1 _ZTS13ConvertToEnum", !30, i64 0} +// CHECK:STDOUT: !274 = !{!273, !273, i64 0} +// CHECK:STDOUT: !276 = !{} +// CHECK:STDOUT: !277 = !{!"p1 _ZTS14ConvertToEnum2", !30, i64 0} +// CHECK:STDOUT: !278 = !{!277, !277, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/extern_c.carbon b/toolchain/lower/testdata/interop/cpp/extern_c.carbon index 174dc00adb78..e01423b2698a 100644 --- a/toolchain/lower/testdata/interop/cpp/extern_c.carbon +++ b/toolchain/lower/testdata/interop/cpp/extern_c.carbon @@ -109,10 +109,10 @@ fn MyF() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @foo(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @foo(), !dbg !23 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @foo() #1 @@ -120,27 +120,27 @@ fn MyF() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_extern_c_function.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "import_extern_c_function.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !18, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !23 = !DILocation(line: 7, column: 3, scope: !22) +// CHECK:STDOUT: !24 = !DILocation(line: 6, column: 1, scope: !22) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'extern_c_function_with_cpp_overload_set.carbon' @@ -149,11 +149,11 @@ fn MyF() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @foo(), !dbg !15 -// CHECK:STDOUT: call void @_Z3fooi(i32 5), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @foo(), !dbg !39 +// CHECK:STDOUT: call void @_Z3fooi(i32 5), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @foo() #1 @@ -163,28 +163,28 @@ fn MyF() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!34} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "extern_c_function_with_cpp_overload_set.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 9, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 10, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !33 = !DIFile(filename: "extern_c_function_with_cpp_overload_set.carbon", directory: "") +// CHECK:STDOUT: !34 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !33, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !33, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !39 = !DILocation(line: 10, column: 3, scope: !38) +// CHECK:STDOUT: !40 = !DILocation(line: 11, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !DILocation(line: 9, column: 1, scope: !38) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_extern_c_variable.carbon' @@ -195,36 +195,36 @@ fn MyF() { // CHECK:STDOUT: @foo_var = external global i32, align 4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CMyF.Main() #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7 = load i32, ptr @foo_var, align 4, !dbg !16 -// CHECK:STDOUT: ret i32 %.loc7, !dbg !17 +// CHECK:STDOUT: %.loc7 = load i32, ptr @foo_var, align 4, !dbg !49 +// CHECK:STDOUT: ret i32 %.loc7, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!43} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_extern_c_variable.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !42 = !DIFile(filename: "import_extern_c_variable.carbon", directory: "") +// CHECK:STDOUT: !43 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !42, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !44 = !{!35} +// CHECK:STDOUT: !45 = !DISubroutineType(types: !44) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !42, line: 6, type: !45, spFlags: DISPFlagDefinition, unit: !43) +// CHECK:STDOUT: !49 = !DILocation(line: 7, column: 10, scope: !46) +// CHECK:STDOUT: !50 = !DILocation(line: 7, column: 3, scope: !46) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_extern_c_with_special_name.carbon' @@ -235,10 +235,10 @@ fn MyF() { // CHECK:STDOUT: %struct.X = type { i8 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main(ptr sret({}) %return, ptr %a, ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main(ptr sret({}) %return, ptr %a, ptr %b) #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Zpl1XS_.carbon_thunk.__(ptr %a, ptr %b, ptr %return), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: call void @_Zpl1XS_.carbon_thunk.__(ptr %a, ptr %b, ptr %return), !dbg !65 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -250,12 +250,12 @@ fn MyF() { // CHECK:STDOUT: %agg.tmp = alloca %struct.X, align 1 // CHECK:STDOUT: %agg.tmp2 = alloca %struct.X, align 1 // CHECK:STDOUT: %undef.agg.tmp = alloca %struct.X, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %1, ptr %.addr1, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %2 = load ptr, ptr %return.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %3 = load ptr, ptr %.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %4 = load ptr, ptr %.addr1, align 8, !tbaa !21 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !71 +// CHECK:STDOUT: store ptr %1, ptr %.addr1, align 8, !tbaa !71 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !71 +// CHECK:STDOUT: %2 = load ptr, ptr %return.addr, align 8, !tbaa !71 +// CHECK:STDOUT: %3 = load ptr, ptr %.addr, align 8, !tbaa !71 +// CHECK:STDOUT: %4 = load ptr, ptr %.addr1, align 8, !tbaa !71 // CHECK:STDOUT: call void @_Zpl1XS_() // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -266,34 +266,34 @@ fn MyF() { // CHECK:STDOUT: attributes #1 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!52} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_extern_c_with_special_name.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17, !18} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 2, scope: !12, type: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS1X", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !51 = !DIFile(filename: "import_extern_c_with_special_name.carbon", directory: "") +// CHECK:STDOUT: !52 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !51, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !53 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !54 = !{!53, !53, !53} +// CHECK:STDOUT: !55 = !DISubroutineType(types: !54) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !51, line: 6, type: !55, spFlags: DISPFlagDefinition, unit: !52, retainedNodes: !68) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !53) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 2, scope: !58, type: !53) +// CHECK:STDOUT: !65 = !DILocation(line: 7, column: 10, scope: !58) +// CHECK:STDOUT: !67 = !DILocation(line: 7, column: 3, scope: !58) +// CHECK:STDOUT: !68 = !{!59, !60} +// CHECK:STDOUT: !69 = !{!"any pointer", !29, i64 0} +// CHECK:STDOUT: !70 = !{!"p1 _ZTS1X", !69, i64 0} +// CHECK:STDOUT: !71 = !{!70, !70, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_extern_c_with_asm_label.carbon' @@ -302,10 +302,10 @@ fn MyF() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @bar(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @bar(), !dbg !76 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @bar() #1 @@ -313,25 +313,25 @@ fn MyF() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!74} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_extern_c_with_asm_label.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !73 = !DIFile(filename: "import_extern_c_with_asm_label.carbon", directory: "") +// CHECK:STDOUT: !74 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !73, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !73, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !74) +// CHECK:STDOUT: !76 = !DILocation(line: 7, column: 3, scope: !75) +// CHECK:STDOUT: !77 = !DILocation(line: 6, column: 1, scope: !75) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/export/call_not_emitted.carbon b/toolchain/lower/testdata/interop/cpp/function/export/call_not_emitted.carbon index ea85b110ba4a..6bdf95867e97 100644 --- a/toolchain/lower/testdata/interop/cpp/function/export/call_not_emitted.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/export/call_not_emitted.carbon @@ -33,11 +33,11 @@ import library "not_emitted"; // CHECK:STDOUT: ; ModuleID = 'emitted.carbon' // CHECK:STDOUT: source_filename = "emitted.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!1} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "emitted.carbon", directory: "") +// CHECK:STDOUT: !0 = !DIFile(filename: "emitted.carbon", directory: "") +// CHECK:STDOUT: !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !0, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon b/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon index 1dc221605463..ebb43f5b1e20 100644 --- a/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/export/constructor.carbon @@ -54,8 +54,8 @@ void f() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr = alloca i32, align 4 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !15 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !32 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !34 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @_COneArg__carbon_thunk.OneArg.Main(ptr noundef nonnull align 1 %this1, ptr noundef nonnull align 4 dereferenceable(4) %.addr) // CHECK:STDOUT: ret void @@ -65,7 +65,7 @@ void f() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon6OneArgD2Ev(ptr noundef nonnull align 1 %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !32 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.OneArg.Main"(ptr noundef nonnull align 1 %this1) // CHECK:STDOUT: ret void @@ -77,26 +77,26 @@ void f() { // CHECK:STDOUT: declare void @_COneArg.OneArg.Main(ptr sret({}), i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.OneArg.Main"(ptr %self) #4 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.OneArg.Main"(ptr %self) #4 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.50eaa49c486ec4e2:core.Destroy.Core"(ptr %self), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @"_COp.50eaa49c486ec4e2:core.Destroy.Core"(ptr %self), !dbg !17 +// CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.50eaa49c486ec4e2:core.Destroy.Core"(ptr %self) #5 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.50eaa49c486ec4e2:core.Destroy.Core"(ptr %self) #5 !dbg !19 { // CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_COneArg__carbon_thunk.OneArg.Main(ptr %_, ptr %_1) #5 !dbg !23 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.loc6_28.2 = load i32, ptr %_1, align 4, !dbg !26 +// CHECK:STDOUT: call void @_COneArg.OneArg.Main(ptr %_, i32 %.loc6_28.2), !dbg !26 // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_COneArg__carbon_thunk.OneArg.Main(ptr %_, ptr %_1) #5 !dbg !27 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc6_28.2 = load i32, ptr %_1, align 4, !dbg !34 -// CHECK:STDOUT: call void @_COneArg.OneArg.Main(ptr %_, i32 %.loc6_28.2), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !34 -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -104,43 +104,43 @@ void f() { // CHECK:STDOUT: attributes #4 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #5 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!6} +// CHECK:STDOUT: !llvm.module.flags = !{!35, !36, !37, !3, !4} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!39} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_constructor.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon6OneArgE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!9, !9, i64 0} -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.OneArg.Main", scope: null, file: !1, line: 5, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{null, !19} -// CHECK:STDOUT: !19 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) -// CHECK:STDOUT: !22 = !DILocation(line: 5, column: 1, scope: !16) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.50eaa49c486ec4e2:core.Destroy.Core", scope: null, file: !1, line: 5, type: !17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 5, column: 1, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "OneArg__carbon_thunk", linkageName: "_COneArg__carbon_thunk.OneArg.Main", scope: null, file: !1, line: 6, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !19, !30} -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32, !33} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !19) -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !27, type: !30) -// CHECK:STDOUT: !34 = !DILocation(line: 6, column: 3, scope: !27) +// CHECK:STDOUT: !3 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !4 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !5 = !DIFile(filename: "call_constructor.carbon", directory: "") +// CHECK:STDOUT: !6 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !5, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !11 = !{null, !8} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !13 = !{null, !8, !7} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.OneArg.Main", scope: null, file: !5, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !6, retainedNodes: !18) +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !15, type: !8) +// CHECK:STDOUT: !17 = !DILocation(line: 5, column: 1, scope: !15) +// CHECK:STDOUT: !18 = !{!16} +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.50eaa49c486ec4e2:core.Destroy.Core", scope: null, file: !5, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !6, retainedNodes: !22) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !8) +// CHECK:STDOUT: !21 = !DILocation(line: 5, column: 1, scope: !19) +// CHECK:STDOUT: !22 = !{!20} +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "OneArg__carbon_thunk", linkageName: "_COneArg__carbon_thunk.OneArg.Main", scope: null, file: !5, line: 6, type: !14, spFlags: DISPFlagDefinition, unit: !6, retainedNodes: !27) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !8) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !23, type: !7) +// CHECK:STDOUT: !26 = !DILocation(line: 6, column: 3, scope: !23) +// CHECK:STDOUT: !27 = !{!24, !25} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"any pointer", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"p1 _ZTSN6Carbon6OneArgE", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !31, i64 0} +// CHECK:STDOUT: !33 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !34 = !{!33, !33, i64 0} +// CHECK:STDOUT: !35 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !36 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !37 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !38 = !{!"__libc_errno", !33, i64 0} +// CHECK:STDOUT: !39 = !{!38, !33, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/export/function.carbon b/toolchain/lower/testdata/interop/cpp/function/export/function.carbon index 14072028d955..d4467231636e 100644 --- a/toolchain/lower/testdata/interop/cpp/function/export/function.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/export/function.carbon @@ -67,70 +67,70 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: source_filename = "other.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CNoArgs.Other() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CNoArgs.Other() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBoolArg.Other(i1 %a) #0 !dbg !8 { +// CHECK:STDOUT: define void @_CBoolArg.Other(i1 %a) #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIntArg.Other(i32 %a) #0 !dbg !15 { +// CHECK:STDOUT: define void @_CIntArg.Other(i32 %a) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFloatArg.Other(float %a) #0 !dbg !22 { +// CHECK:STDOUT: define void @_CFloatArg.Other(float %a) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CIntReturn.Other() #0 !dbg !26 { +// CHECK:STDOUT: define i32 @_CIntReturn.Other() #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 123, !dbg !29 +// CHECK:STDOUT: ret i32 123, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "other.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "NoArgs", linkageName: "_CNoArgs.Other", scope: null, file: !1, line: 2, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 2, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "BoolArg", linkageName: "_CBoolArg.Other", scope: null, file: !1, line: 3, type: !9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !9 = !DISubroutineType(types: !10) -// CHECK:STDOUT: !10 = !{null, !11} -// CHECK:STDOUT: !11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !8, type: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 3, column: 1, scope: !8) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "IntArg", linkageName: "_CIntArg.Other", scope: null, file: !1, line: 6, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 1, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "FloatArg", linkageName: "_CFloatArg.Other", scope: null, file: !1, line: 9, type: !9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !11) -// CHECK:STDOUT: !25 = !DILocation(line: 9, column: 1, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "IntReturn", linkageName: "_CIntReturn.Other", scope: null, file: !1, line: 12, type: !27, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{!18} -// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 3, scope: !26) +// CHECK:STDOUT: !4 = !DIFile(filename: "other.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{!6} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "NoArgs", linkageName: "_CNoArgs.Other", scope: null, file: !4, line: 2, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 2, column: 1, scope: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "BoolArg", linkageName: "_CBoolArg.Other", scope: null, file: !4, line: 3, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !23) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !9) +// CHECK:STDOUT: !22 = !DILocation(line: 3, column: 1, scope: !18) +// CHECK:STDOUT: !23 = !{!19} +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "IntArg", linkageName: "_CIntArg.Other", scope: null, file: !4, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !6) +// CHECK:STDOUT: !28 = !DILocation(line: 6, column: 1, scope: !24) +// CHECK:STDOUT: !29 = !{!25} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "FloatArg", linkageName: "_CFloatArg.Other", scope: null, file: !4, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !9) +// CHECK:STDOUT: !34 = !DILocation(line: 9, column: 1, scope: !30) +// CHECK:STDOUT: !35 = !{!31} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "IntReturn", linkageName: "_CIntReturn.Other", scope: null, file: !4, line: 12, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !39 = !DILocation(line: 13, column: 3, scope: !36) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'function.carbon' @@ -161,7 +161,7 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca i8, align 1 // CHECK:STDOUT: %storedv = zext i1 %0 to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %.addr, align 1, !tbaa !12 +// CHECK:STDOUT: store i8 %storedv, ptr %.addr, align 1, !tbaa !63 // CHECK:STDOUT: call void @_CBoolArg__carbon_thunk.Other(ptr noundef nonnull align 1 dereferenceable(1) %.addr) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -170,7 +170,7 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: define internal void @_ZN6Carbon5OtherL6IntArgEi(i32 noundef %0) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca i32, align 4 -// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !14 +// CHECK:STDOUT: store i32 %0, ptr %.addr, align 4, !tbaa !65 // CHECK:STDOUT: call void @_CIntArg__carbon_thunk.Other(ptr noundef nonnull align 4 dereferenceable(4) %.addr) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -179,7 +179,7 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: define internal void @_ZN6Carbon5OtherL8FloatArgEf(float noundef %0) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca float, align 4 -// CHECK:STDOUT: store float %0, ptr %.addr, align 4, !tbaa !15 +// CHECK:STDOUT: store float %0, ptr %.addr, align 4, !tbaa !67 // CHECK:STDOUT: call void @_CFloatArg__carbon_thunk.Other(ptr noundef nonnull align 4 dereferenceable(4) %.addr) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -196,105 +196,105 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: declare void @_CNoArgs.Other() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CNoArgs__carbon_thunk.Other() #2 !dbg !17 { +// CHECK:STDOUT: define void @_CNoArgs__carbon_thunk.Other() #2 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CNoArgs.Other(), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: call void @_CNoArgs.Other(), !dbg !43 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CBoolArg.Other(i1) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBoolArg__carbon_thunk.Other(ptr %_) #2 !dbg !22 { +// CHECK:STDOUT: define void @_CBoolArg__carbon_thunk.Other(ptr %_) #2 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.1 = load i8, ptr %_, align 1, !dbg !28 -// CHECK:STDOUT: %.11 = trunc i8 %.1 to i1, !dbg !28 -// CHECK:STDOUT: call void @_CBoolArg.Other(i1 %.11), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: %.1 = load i8, ptr %_, align 1, !dbg !46 +// CHECK:STDOUT: %.11 = trunc i8 %.1 to i1, !dbg !46 +// CHECK:STDOUT: call void @_CBoolArg.Other(i1 %.11), !dbg !46 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CIntArg.Other(i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIntArg__carbon_thunk.Other(ptr %_) #2 !dbg !29 { +// CHECK:STDOUT: define void @_CIntArg__carbon_thunk.Other(ptr %_) #2 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.1 = load i32, ptr %_, align 4, !dbg !35 -// CHECK:STDOUT: call void @_CIntArg.Other(i32 %.1), !dbg !35 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: %.1 = load i32, ptr %_, align 4, !dbg !50 +// CHECK:STDOUT: call void @_CIntArg.Other(i32 %.1), !dbg !50 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CFloatArg.Other(float) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFloatArg__carbon_thunk.Other(ptr %_) #2 !dbg !36 { +// CHECK:STDOUT: define void @_CFloatArg__carbon_thunk.Other(ptr %_) #2 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.1 = load float, ptr %_, align 4, !dbg !39 -// CHECK:STDOUT: call void @_CFloatArg.Other(float %.1), !dbg !39 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: %.1 = load float, ptr %_, align 4, !dbg !54 +// CHECK:STDOUT: call void @_CFloatArg.Other(float %.1), !dbg !54 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @_CIntReturn.Other() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIntReturn__carbon_thunk.Other(ptr %_) #2 !dbg !40 { +// CHECK:STDOUT: define void @_CIntReturn__carbon_thunk.Other(ptr %_) #2 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %IntReturn.call = call i32 @_CIntReturn.Other(), !dbg !43 -// CHECK:STDOUT: store i32 %IntReturn.call, ptr %_, align 4, !dbg !43 -// CHECK:STDOUT: ret void, !dbg !43 +// CHECK:STDOUT: %IntReturn.call = call i32 @_CIntReturn.Other(), !dbg !58 +// CHECK:STDOUT: store i32 %IntReturn.call, ptr %_, align 4, !dbg !58 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!41} +// CHECK:STDOUT: !llvm.module.flags = !{!68, !69, !70, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!72} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "function.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"bool", !10, i64 0} -// CHECK:STDOUT: !14 = !{!9, !9, i64 0} -// CHECK:STDOUT: !15 = !{!16, !16, i64 0} -// CHECK:STDOUT: !16 = !{!"float", !10, i64 0} -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "NoArgs__carbon_thunk", linkageName: "_CNoArgs__carbon_thunk.Other", scope: null, file: !18, line: 2, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !18 = !DIFile(filename: "other.carbon", directory: "") -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null} -// CHECK:STDOUT: !21 = !DILocation(line: 2, column: 1, scope: !17) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "BoolArg__carbon_thunk", linkageName: "_CBoolArg__carbon_thunk.Other", scope: null, file: !18, line: 3, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 3, column: 1, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "IntArg__carbon_thunk", linkageName: "_CIntArg__carbon_thunk.Other", scope: null, file: !18, line: 6, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !30 = !DISubroutineType(types: !31) -// CHECK:STDOUT: !31 = !{null, !32} -// CHECK:STDOUT: !32 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !32) -// CHECK:STDOUT: !35 = !DILocation(line: 6, column: 1, scope: !29) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "FloatArg__carbon_thunk", linkageName: "_CFloatArg__carbon_thunk.Other", scope: null, file: !18, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !25) -// CHECK:STDOUT: !39 = !DILocation(line: 9, column: 1, scope: !36) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "IntReturn__carbon_thunk", linkageName: "_CIntReturn__carbon_thunk.Other", scope: null, file: !18, line: 12, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !32) -// CHECK:STDOUT: !43 = !DILocation(line: 12, column: 1, scope: !40) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "other.carbon", directory: "") +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !40 = !DIFile(filename: "function.carbon", directory: "") +// CHECK:STDOUT: !41 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !40, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "NoArgs__carbon_thunk", linkageName: "_CNoArgs__carbon_thunk.Other", scope: null, file: !4, line: 2, type: !8, spFlags: DISPFlagDefinition, unit: !41) +// CHECK:STDOUT: !43 = !DILocation(line: 2, column: 1, scope: !42) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "BoolArg__carbon_thunk", linkageName: "_CBoolArg__carbon_thunk.Other", scope: null, file: !4, line: 3, type: !11, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !9) +// CHECK:STDOUT: !46 = !DILocation(line: 3, column: 1, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "IntArg__carbon_thunk", linkageName: "_CIntArg__carbon_thunk.Other", scope: null, file: !4, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !6) +// CHECK:STDOUT: !50 = !DILocation(line: 6, column: 1, scope: !48) +// CHECK:STDOUT: !51 = !{!49} +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "FloatArg__carbon_thunk", linkageName: "_CFloatArg__carbon_thunk.Other", scope: null, file: !4, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !55) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !9) +// CHECK:STDOUT: !54 = !DILocation(line: 9, column: 1, scope: !52) +// CHECK:STDOUT: !55 = !{!53} +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "IntReturn__carbon_thunk", linkageName: "_CIntReturn__carbon_thunk.Other", scope: null, file: !4, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !41, retainedNodes: !59) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !6) +// CHECK:STDOUT: !58 = !DILocation(line: 12, column: 1, scope: !56) +// CHECK:STDOUT: !59 = !{!57} +// CHECK:STDOUT: !60 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !61 = !{!"omnipotent char", !60, i64 0} +// CHECK:STDOUT: !62 = !{!"bool", !61, i64 0} +// CHECK:STDOUT: !63 = !{!62, !62, i64 0} +// CHECK:STDOUT: !64 = !{!"int", !61, i64 0} +// CHECK:STDOUT: !65 = !{!64, !64, i64 0} +// CHECK:STDOUT: !66 = !{!"float", !61, i64 0} +// CHECK:STDOUT: !67 = !{!66, !66, i64 0} +// CHECK:STDOUT: !68 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !69 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !70 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !71 = !{!"__libc_errno", !64, i64 0} +// CHECK:STDOUT: !72 = !{!71, !64, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'single_file.carbon' @@ -307,23 +307,23 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: $_Z2G1v = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF__carbon_thunk.Main() #0 !dbg !16 { +// CHECK:STDOUT: define void @_CF__carbon_thunk.Main() #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !78 +// CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !18 { +// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z2G2v(), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: call void @_Z2G2v(), !dbg !80 +// CHECK:STDOUT: ret void, !dbg !81 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: inlinehint mustprogress uwtable @@ -351,29 +351,29 @@ fn H() { Cpp.G2(); } // CHECK:STDOUT: attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!74} +// CHECK:STDOUT: !llvm.module.flags = !{!68, !69, !70, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!72} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "single_file.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 1, scope: !16) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !1, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DILocation(line: 20, column: 10, scope: !18) -// CHECK:STDOUT: !20 = !DILocation(line: 20, column: 1, scope: !18) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !60 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !61 = !{!"omnipotent char", !60, i64 0} +// CHECK:STDOUT: !64 = !{!"int", !61, i64 0} +// CHECK:STDOUT: !68 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !69 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !70 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !71 = !{!"__libc_errno", !64, i64 0} +// CHECK:STDOUT: !72 = !{!71, !64, i64 0} +// CHECK:STDOUT: !73 = !DIFile(filename: "single_file.carbon", directory: "") +// CHECK:STDOUT: !74 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !73, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !73, line: 6, type: !8, spFlags: DISPFlagDefinition, unit: !74) +// CHECK:STDOUT: !76 = !DILocation(line: 6, column: 1, scope: !75) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "F__carbon_thunk", linkageName: "_CF__carbon_thunk.Main", scope: null, file: !73, line: 6, type: !8, spFlags: DISPFlagDefinition, unit: !74) +// CHECK:STDOUT: !78 = !DILocation(line: 6, column: 1, scope: !77) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !73, line: 20, type: !8, spFlags: DISPFlagDefinition, unit: !74) +// CHECK:STDOUT: !80 = !DILocation(line: 20, column: 10, scope: !79) +// CHECK:STDOUT: !81 = !DILocation(line: 20, column: 1, scope: !79) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon b/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon index cf2c03ee05ae..0441ab51a243 100644 --- a/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/export/generic.carbon @@ -142,7 +142,7 @@ fn Run() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon1AD2Ev(ptr noundef nonnull align 1 %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !12 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !71 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.A.Main"(ptr noundef nonnull align 1 %this1) // CHECK:STDOUT: ret void @@ -160,7 +160,7 @@ fn Run() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN6Carbon1BD2Ev(ptr noundef nonnull align 1 %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !15 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !73 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: call void @"_C__destroy_thunk:thunk.B.Main"(ptr noundef nonnull align 1 %this1) // CHECK:STDOUT: ret void @@ -170,76 +170,76 @@ fn Run() { // CHECK:STDOUT: declare void @llvm.lifetime.end.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CDoit.A.Main:I.Main"(ptr %self) #4 !dbg !17 { +// CHECK:STDOUT: define void @"_CDoit.A.Main:I.Main"(ptr %self) #4 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CDoit.B.Main:I.Main"(ptr %self) #4 !dbg !24 { +// CHECK:STDOUT: define void @"_CDoit.B.Main:I.Main"(ptr %self) #4 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !31 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !30 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #4 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.B.Main"(ptr %self) #5 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self), !dbg !39 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #4 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !43 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF__carbon_thunk.26f2099a79512a5d.Main(ptr %_) #4 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.6662a1ffb773360a(ptr %_), !dbg !47 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: call void @_CF.Main.6662a1ffb773360a(ptr %_), !dbg !46 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF__carbon_thunk.7a3b9f04ddf4269e.Main(ptr %_) #4 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.d53b17eed3ce903c(ptr %_), !dbg !51 -// CHECK:STDOUT: ret void, !dbg !51 +// CHECK:STDOUT: call void @_CF.Main.d53b17eed3ce903c(ptr %_), !dbg !50 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #4 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z1Gv(), !dbg !56 -// CHECK:STDOUT: ret i32 0, !dbg !57 +// CHECK:STDOUT: call void @_Z1Gv(), !dbg !53 +// CHECK:STDOUT: ret i32 0, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.6662a1ffb773360a(ptr %t) #4 !dbg !58 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.6662a1ffb773360a(ptr %t) #4 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CDoit.A.Main:I.Main"(ptr %t), !dbg !61 -// CHECK:STDOUT: ret void, !dbg !62 +// CHECK:STDOUT: call void @"_CDoit.A.Main:I.Main"(ptr %t), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.d53b17eed3ce903c(ptr %t) #4 !dbg !63 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.d53b17eed3ce903c(ptr %t) #4 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CDoit.B.Main:I.Main"(ptr %t), !dbg !66 -// CHECK:STDOUT: ret void, !dbg !67 +// CHECK:STDOUT: call void @"_CDoit.B.Main:I.Main"(ptr %t), !dbg !64 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -255,76 +255,76 @@ fn Run() { // CHECK:STDOUT: attributes #4 = { nounwind } // CHECK:STDOUT: attributes #5 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!9} +// CHECK:STDOUT: !llvm.module.flags = !{!74, !75, !76, !4, !5} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!79} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_type_impls_interface.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 _ZTSN6Carbon1AE", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!16, !16, i64 0} -// CHECK:STDOUT: !16 = !{!"p1 _ZTSN6Carbon1BE", !14, i64 0} -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Doit", linkageName: "_CDoit.A.Main:I.Main", scope: null, file: !1, line: 10, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !20} -// CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !17, type: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 10, column: 5, scope: !17) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Doit", linkageName: "_CDoit.B.Main:I.Main", scope: null, file: !1, line: 15, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !20) -// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 5, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.A.Main", scope: null, file: !1, line: 8, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !20) -// CHECK:STDOUT: !31 = !DILocation(line: 8, column: 1, scope: !28) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !1, line: 8, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !20) -// CHECK:STDOUT: !35 = !DILocation(line: 8, column: 1, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.B.Main", scope: null, file: !1, line: 13, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !20) -// CHECK:STDOUT: !39 = !DILocation(line: 13, column: 1, scope: !36) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 13, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !20) -// CHECK:STDOUT: !43 = !DILocation(line: 13, column: 1, scope: !40) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F__carbon_thunk.26f2099a79512a5d", linkageName: "_CF__carbon_thunk.26f2099a79512a5d.Main", scope: null, file: !1, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !45) -// CHECK:STDOUT: !45 = !{!46} -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !20) -// CHECK:STDOUT: !47 = !DILocation(line: 19, column: 1, scope: !44) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F__carbon_thunk.7a3b9f04ddf4269e", linkageName: "_CF__carbon_thunk.7a3b9f04ddf4269e.Main", scope: null, file: !1, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !49 = !{!50} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !48, type: !20) -// CHECK:STDOUT: !51 = !DILocation(line: 19, column: 1, scope: !48) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 32, type: !53, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !53 = !DISubroutineType(types: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !56 = !DILocation(line: 33, column: 3, scope: !52) -// CHECK:STDOUT: !57 = !DILocation(line: 32, column: 1, scope: !52) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6662a1ffb773360a", scope: null, file: !1, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !59) -// CHECK:STDOUT: !59 = !{!60} -// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !58, type: !20) -// CHECK:STDOUT: !61 = !DILocation(line: 20, column: 3, scope: !58) -// CHECK:STDOUT: !62 = !DILocation(line: 19, column: 1, scope: !58) -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.d53b17eed3ce903c", scope: null, file: !1, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !64) -// CHECK:STDOUT: !64 = !{!65} -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !63, type: !20) -// CHECK:STDOUT: !66 = !DILocation(line: 20, column: 3, scope: !63) -// CHECK:STDOUT: !67 = !DILocation(line: 19, column: 1, scope: !63) +// CHECK:STDOUT: !4 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !5 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !8 = !DIFile(filename: "generic_type_impls_interface.carbon", directory: "") +// CHECK:STDOUT: !9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !8, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !11 = !{null, !10} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !14 = !{!13} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Doit", linkageName: "_CDoit.A.Main:I.Main", scope: null, file: !8, line: 10, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !22) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !10) +// CHECK:STDOUT: !21 = !DILocation(line: 10, column: 5, scope: !18) +// CHECK:STDOUT: !22 = !{!19} +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Doit", linkageName: "_CDoit.B.Main:I.Main", scope: null, file: !8, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !27) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !10) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 5, scope: !23) +// CHECK:STDOUT: !27 = !{!24} +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.A.Main", scope: null, file: !8, line: 8, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !31) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !10) +// CHECK:STDOUT: !30 = !DILocation(line: 8, column: 1, scope: !28) +// CHECK:STDOUT: !31 = !{!29} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !8, line: 8, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !10) +// CHECK:STDOUT: !34 = !DILocation(line: 8, column: 1, scope: !32) +// CHECK:STDOUT: !35 = !{!33} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.B.Main", scope: null, file: !8, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !39) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !10) +// CHECK:STDOUT: !38 = !DILocation(line: 13, column: 1, scope: !36) +// CHECK:STDOUT: !39 = !{!37} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !8, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !10) +// CHECK:STDOUT: !42 = !DILocation(line: 13, column: 1, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F__carbon_thunk.26f2099a79512a5d", linkageName: "_CF__carbon_thunk.26f2099a79512a5d.Main", scope: null, file: !8, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !10) +// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 1, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F__carbon_thunk.7a3b9f04ddf4269e", linkageName: "_CF__carbon_thunk.7a3b9f04ddf4269e.Main", scope: null, file: !8, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !10) +// CHECK:STDOUT: !50 = !DILocation(line: 19, column: 1, scope: !48) +// CHECK:STDOUT: !51 = !{!49} +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !8, line: 32, type: !15, spFlags: DISPFlagDefinition, unit: !9) +// CHECK:STDOUT: !53 = !DILocation(line: 33, column: 3, scope: !52) +// CHECK:STDOUT: !54 = !DILocation(line: 32, column: 1, scope: !52) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6662a1ffb773360a", scope: null, file: !8, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !60) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !10) +// CHECK:STDOUT: !58 = !DILocation(line: 20, column: 3, scope: !55) +// CHECK:STDOUT: !59 = !DILocation(line: 19, column: 1, scope: !55) +// CHECK:STDOUT: !60 = !{!56} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.d53b17eed3ce903c", scope: null, file: !8, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !66) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !10) +// CHECK:STDOUT: !64 = !DILocation(line: 20, column: 3, scope: !61) +// CHECK:STDOUT: !65 = !DILocation(line: 19, column: 1, scope: !61) +// CHECK:STDOUT: !66 = !{!62} +// CHECK:STDOUT: !67 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !68 = !{!"omnipotent char", !67, i64 0} +// CHECK:STDOUT: !69 = !{!"any pointer", !68, i64 0} +// CHECK:STDOUT: !70 = !{!"p1 _ZTSN6Carbon1AE", !69, i64 0} +// CHECK:STDOUT: !71 = !{!70, !70, i64 0} +// CHECK:STDOUT: !72 = !{!"p1 _ZTSN6Carbon1BE", !69, i64 0} +// CHECK:STDOUT: !73 = !{!72, !72, i64 0} +// CHECK:STDOUT: !74 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !75 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !76 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !77 = !{!"int", !68, i64 0} +// CHECK:STDOUT: !78 = !{!"__libc_errno", !77, i64 0} +// CHECK:STDOUT: !79 = !{!78, !77, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/import/cpp_run.carbon b/toolchain/lower/testdata/interop/cpp/function/import/cpp_run.carbon index 593fab819e59..5f7d9433c4fb 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/cpp_run.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/cpp_run.carbon @@ -35,35 +35,35 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #1 !dbg !12 { +// CHECK:STDOUT: define i32 @main() #1 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN1N3RunEv(), !dbg !16 -// CHECK:STDOUT: ret i32 0, !dbg !17 +// CHECK:STDOUT: call void @_ZN1N3RunEv(), !dbg !26 +// CHECK:STDOUT: ret i32 0, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!28, !29, !30, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!35} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "carbon_run.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 8, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "carbon_run.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 9, column: 3, scope: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 8, column: 1, scope: !25) +// CHECK:STDOUT: !28 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !29 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !30 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !31 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !32 = !{!"omnipotent char", !31, i64 0} +// CHECK:STDOUT: !33 = !{!"int", !32, i64 0} +// CHECK:STDOUT: !34 = !{!"__libc_errno", !33, i64 0} +// CHECK:STDOUT: !35 = !{!34, !33, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon b/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon index f2145d326cab..351c2018ecc9 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/function_decl.carbon @@ -139,10 +139,10 @@ fn MyF() -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z3foov(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_Z3foov(), !dbg !23 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z3foov() #1 @@ -150,27 +150,27 @@ fn MyF() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_function_decl.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "import_function_decl.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !18, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !23 = !DILocation(line: 7, column: 3, scope: !22) +// CHECK:STDOUT: !24 = !DILocation(line: 6, column: 1, scope: !22) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_inline_function_decl.carbon' @@ -181,10 +181,10 @@ fn MyF() -> i32 { // CHECK:STDOUT: $_Z10foo_inlinev = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z10foo_inlinev(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_Z10foo_inlinev(), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: inlinehint mustprogress nounwind uwtable @@ -196,27 +196,27 @@ fn MyF() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!34} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_inline_function_decl.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !33 = !DIFile(filename: "import_inline_function_decl.carbon", directory: "") +// CHECK:STDOUT: !34 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !33, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !33, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 7, column: 3, scope: !35) +// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 1, scope: !35) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_inline_used_function_decl.carbon' @@ -235,10 +235,10 @@ fn MyF() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #1 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #1 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z8foo_usedv(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_Z8foo_usedv(), !dbg !41 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -247,27 +247,27 @@ fn MyF() -> i32 { // CHECK:STDOUT: attributes #0 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!39} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_inline_used_function_decl.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !38 = !DIFile(filename: "import_inline_used_function_decl.carbon", directory: "") +// CHECK:STDOUT: !39 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !38, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !38, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !39) +// CHECK:STDOUT: !41 = !DILocation(line: 7, column: 3, scope: !40) +// CHECK:STDOUT: !42 = !DILocation(line: 6, column: 1, scope: !40) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_multiple_inline_function_decls.carbon' @@ -282,12 +282,12 @@ fn MyF() -> i32 { // CHECK:STDOUT: $_Z10multi_foo3v = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z10multi_foo1v(), !dbg !15 -// CHECK:STDOUT: call void @_Z10multi_foo2v(), !dbg !16 -// CHECK:STDOUT: call void @_Z10multi_foo3v(), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: call void @_Z10multi_foo1v(), !dbg !46 +// CHECK:STDOUT: call void @_Z10multi_foo2v(), !dbg !47 +// CHECK:STDOUT: call void @_Z10multi_foo3v(), !dbg !48 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: inlinehint mustprogress nounwind uwtable @@ -311,29 +311,29 @@ fn MyF() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!44} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_multiple_inline_function_decls.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !43 = !DIFile(filename: "import_multiple_inline_function_decls.carbon", directory: "") +// CHECK:STDOUT: !44 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !43, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !43, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !44) +// CHECK:STDOUT: !46 = !DILocation(line: 7, column: 3, scope: !45) +// CHECK:STDOUT: !47 = !DILocation(line: 8, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !DILocation(line: 9, column: 3, scope: !45) +// CHECK:STDOUT: !49 = !DILocation(line: 6, column: 1, scope: !45) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_inline_recursive_function_decl.carbon' @@ -346,10 +346,10 @@ fn MyF() -> i32 { // CHECK:STDOUT: $_Z8rec_foo1v = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z8rec_foo2v(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_Z8rec_foo2v(), !dbg !53 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: inlinehint mustprogress uwtable @@ -369,27 +369,27 @@ fn MyF() -> i32 { // CHECK:STDOUT: attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!51} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_inline_recursive_function_decl.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !50 = !DIFile(filename: "import_inline_recursive_function_decl.carbon", directory: "") +// CHECK:STDOUT: !51 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !50, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !50, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !51) +// CHECK:STDOUT: !53 = !DILocation(line: 8, column: 3, scope: !52) +// CHECK:STDOUT: !54 = !DILocation(line: 6, column: 1, scope: !52) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'call_with_default_args.carbon' @@ -398,22 +398,22 @@ fn MyF() -> i32 { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CMyF.Main() #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %value.var = alloca i32, align 4, !dbg !16 -// CHECK:STDOUT: call void @_Z13NoReturnValueii.carbon_thunk.(), !dbg !17 -// CHECK:STDOUT: call void @_Z13NoReturnValueii.carbon_thunk._(i32 3), !dbg !18 -// CHECK:STDOUT: call void @_Z13NoReturnValueii(i32 3, i32 4), !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %value.var), !dbg !16 -// CHECK:STDOUT: %SimpleReturnValue__carbon_thunk.call.loc11 = call i32 @_Z17SimpleReturnValueii.carbon_thunk.(), !dbg !20 -// CHECK:STDOUT: store i32 %SimpleReturnValue__carbon_thunk.call.loc11, ptr %value.var, align 4, !dbg !16 -// CHECK:STDOUT: %SimpleReturnValue__carbon_thunk.call.loc12 = call i32 @_Z17SimpleReturnValueii.carbon_thunk._(i32 3), !dbg !21 -// CHECK:STDOUT: store i32 %SimpleReturnValue__carbon_thunk.call.loc12, ptr %value.var, align 4, !dbg !22 -// CHECK:STDOUT: %SimpleReturnValue.call = call i32 @_Z17SimpleReturnValueii(i32 3, i32 4), !dbg !23 -// CHECK:STDOUT: store i32 %SimpleReturnValue.call, ptr %value.var, align 4, !dbg !24 -// CHECK:STDOUT: %.loc14 = load i32, ptr %value.var, align 4, !dbg !25 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %value.var), !dbg !16 -// CHECK:STDOUT: ret i32 %.loc14, !dbg !26 +// CHECK:STDOUT: %value.var = alloca i32, align 4, !dbg !74 +// CHECK:STDOUT: call void @_Z13NoReturnValueii.carbon_thunk.(), !dbg !71 +// CHECK:STDOUT: call void @_Z13NoReturnValueii.carbon_thunk._(i32 3), !dbg !72 +// CHECK:STDOUT: call void @_Z13NoReturnValueii(i32 3, i32 4), !dbg !73 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %value.var), !dbg !74 +// CHECK:STDOUT: %SimpleReturnValue__carbon_thunk.call.loc11 = call i32 @_Z17SimpleReturnValueii.carbon_thunk.(), !dbg !75 +// CHECK:STDOUT: store i32 %SimpleReturnValue__carbon_thunk.call.loc11, ptr %value.var, align 4, !dbg !74 +// CHECK:STDOUT: %SimpleReturnValue__carbon_thunk.call.loc12 = call i32 @_Z17SimpleReturnValueii.carbon_thunk._(i32 3), !dbg !78 +// CHECK:STDOUT: store i32 %SimpleReturnValue__carbon_thunk.call.loc12, ptr %value.var, align 4, !dbg !77 +// CHECK:STDOUT: %SimpleReturnValue.call = call i32 @_Z17SimpleReturnValueii(i32 3, i32 4), !dbg !80 +// CHECK:STDOUT: store i32 %SimpleReturnValue.call, ptr %value.var, align 4, !dbg !79 +// CHECK:STDOUT: %.loc14 = load i32, ptr %value.var, align 4, !dbg !81 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %value.var), !dbg !74 +// CHECK:STDOUT: ret i32 %.loc14, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -427,8 +427,8 @@ fn MyF() -> i32 { // CHECK:STDOUT: define internal void @_Z13NoReturnValueii.carbon_thunk._(i32 noundef %a) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %a.addr = alloca i32, align 4 -// CHECK:STDOUT: store i32 %a, ptr %a.addr, align 4, !tbaa !27 -// CHECK:STDOUT: %0 = load i32, ptr %a.addr, align 4, !tbaa !27 +// CHECK:STDOUT: store i32 %a, ptr %a.addr, align 4, !tbaa !87 +// CHECK:STDOUT: %0 = load i32, ptr %a.addr, align 4, !tbaa !87 // CHECK:STDOUT: call void @_Z13NoReturnValueii(i32 noundef %0, i32 noundef 2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -446,8 +446,8 @@ fn MyF() -> i32 { // CHECK:STDOUT: define internal noundef i32 @_Z17SimpleReturnValueii.carbon_thunk._(i32 noundef %a) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %a.addr = alloca i32, align 4 -// CHECK:STDOUT: store i32 %a, ptr %a.addr, align 4, !tbaa !27 -// CHECK:STDOUT: %0 = load i32, ptr %a.addr, align 4, !tbaa !27 +// CHECK:STDOUT: store i32 %a, ptr %a.addr, align 4, !tbaa !87 +// CHECK:STDOUT: %0 = load i32, ptr %a.addr, align 4, !tbaa !87 // CHECK:STDOUT: %call = call noundef i32 @_Z17SimpleReturnValueii(i32 noundef %0, i32 noundef 2) // CHECK:STDOUT: ret i32 %call // CHECK:STDOUT: } @@ -455,9 +455,9 @@ fn MyF() -> i32 { // CHECK:STDOUT: declare noundef i32 @_Z17SimpleReturnValueii(i32 noundef, i32 noundef) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -472,42 +472,42 @@ fn MyF() -> i32 { // CHECK:STDOUT: attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!56} +// CHECK:STDOUT: !llvm.module.flags = !{!25, !26, !27, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!32} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call_with_default_args.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 11, column: 20, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 12, column: 11, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 13, column: 11, scope: !12) -// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !25 = !DILocation(line: 14, column: 10, scope: !12) -// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !12) -// CHECK:STDOUT: !27 = !{!9, !9, i64 0} -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 11, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !15} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !15) -// CHECK:STDOUT: !33 = !DILocation(line: 11, column: 3, scope: !28) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !25 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !26 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !27 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !32 = !{!31, !30, i64 0} +// CHECK:STDOUT: !55 = !DIFile(filename: "call_with_default_args.carbon", directory: "") +// CHECK:STDOUT: !56 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !55, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !57 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !58 = !{!57} +// CHECK:STDOUT: !59 = !DISubroutineType(types: !58) +// CHECK:STDOUT: !60 = !{null, !57} +// CHECK:STDOUT: !61 = !DISubroutineType(types: !60) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !55, line: 6, type: !59, spFlags: DISPFlagDefinition, unit: !56) +// CHECK:STDOUT: !71 = !DILocation(line: 7, column: 3, scope: !68) +// CHECK:STDOUT: !72 = !DILocation(line: 8, column: 3, scope: !68) +// CHECK:STDOUT: !73 = !DILocation(line: 9, column: 3, scope: !68) +// CHECK:STDOUT: !74 = !DILocation(line: 11, column: 3, scope: !68) +// CHECK:STDOUT: !75 = !DILocation(line: 11, column: 20, scope: !68) +// CHECK:STDOUT: !77 = !DILocation(line: 12, column: 3, scope: !68) +// CHECK:STDOUT: !78 = !DILocation(line: 12, column: 11, scope: !68) +// CHECK:STDOUT: !79 = !DILocation(line: 13, column: 3, scope: !68) +// CHECK:STDOUT: !80 = !DILocation(line: 13, column: 11, scope: !68) +// CHECK:STDOUT: !81 = !DILocation(line: 14, column: 10, scope: !68) +// CHECK:STDOUT: !82 = !DILocation(line: 14, column: 3, scope: !68) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !55, line: 11, type: !61, spFlags: DISPFlagDefinition, unit: !56, retainedNodes: !86) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !57) +// CHECK:STDOUT: !85 = !DILocation(line: 11, column: 3, scope: !83) +// CHECK:STDOUT: !86 = !{!84} +// CHECK:STDOUT: !87 = !{!30, !30, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/import/function_in_template.carbon b/toolchain/lower/testdata/interop/cpp/function/import/function_in_template.carbon index f7c1b7521dcd..a2ccfa45b783 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/function_in_template.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/function_in_template.carbon @@ -39,43 +39,43 @@ fn F() { // CHECK:STDOUT: $_ZN1XIiE1fEi = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN1XIiE1fEi(i32 42), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_ZN1XIiE1fEi(i32 42), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN1XIiE1fEi(i32 noundef %t) #1 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %t.addr = alloca i32, align 4 -// CHECK:STDOUT: store i32 %t, ptr %t.addr, align 4, !tbaa !17 +// CHECK:STDOUT: store i32 %t, ptr %t.addr, align 4, !tbaa !31 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_class_template.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !17 = !{!9, !9, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "use_class_template.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 8, column: 3, scope: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 6, column: 1, scope: !25) +// CHECK:STDOUT: !28 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !29 = !{!"omnipotent char", !28, i64 0} +// CHECK:STDOUT: !30 = !{!"int", !29, i64 0} +// CHECK:STDOUT: !31 = !{!30, !30, i64 0} +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !30, i64 0} +// CHECK:STDOUT: !36 = !{!35, !30, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon b/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon index 0b746165b3ad..b2a905e564cd 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/import_inline.carbon @@ -34,28 +34,28 @@ fn Call() -> i32 { // CHECK:STDOUT: define dso_local void @_Z1FPi(ptr noundef %p) #0 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %p.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %p, ptr %p.addr, align 8, !tbaa !12 -// CHECK:STDOUT: %0 = load ptr, ptr %p.addr, align 8, !tbaa !12 -// CHECK:STDOUT: store i32 1, ptr %0, align 4, !tbaa !15 +// CHECK:STDOUT: store ptr %p, ptr %p.addr, align 8, !tbaa !5 +// CHECK:STDOUT: %0 = load ptr, ptr %p.addr, align 8, !tbaa !5 +// CHECK:STDOUT: store i32 1, ptr %0, align 4, !tbaa !6 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCall.Main() #1 !dbg !16 { +// CHECK:STDOUT: define i32 @_CCall.Main() #1 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !20 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !20 -// CHECK:STDOUT: call void @_Z1FPi(ptr %n.var), !dbg !21 -// CHECK:STDOUT: %.loc24 = load i32, ptr %n.var, align 4, !dbg !22 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !20 -// CHECK:STDOUT: ret i32 %.loc24, !dbg !23 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !38 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !38 +// CHECK:STDOUT: call void @_Z1FPi(ptr %n.var), !dbg !42 +// CHECK:STDOUT: %.loc24 = load i32, ptr %n.var, align 4, !dbg !43 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !38 +// CHECK:STDOUT: ret i32 %.loc24, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #1 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #1 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -65,38 +65,38 @@ fn Call() -> i32 { // CHECK:STDOUT: attributes #1 = { nounwind } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!26} +// CHECK:STDOUT: !llvm.module.flags = !{!49, !50, !51, !9, !10} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!53} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_inline.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !13, i64 0} -// CHECK:STDOUT: !13 = !{!"p1 int", !14, i64 0} -// CHECK:STDOUT: !14 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !15 = !{!9, !9, i64 0} -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 21, type: !17, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DISubroutineType(types: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !20 = !DILocation(line: 22, column: 3, scope: !16) -// CHECK:STDOUT: !21 = !DILocation(line: 23, column: 3, scope: !16) -// CHECK:STDOUT: !22 = !DILocation(line: 24, column: 10, scope: !16) -// CHECK:STDOUT: !23 = !DILocation(line: 24, column: 3, scope: !16) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 22, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{null, !19} -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !24, type: !19) -// CHECK:STDOUT: !29 = !DILocation(line: 22, column: 3, scope: !24) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"any pointer", !1, i64 0} +// CHECK:STDOUT: !4 = !{!"p1 int", !3, i64 0} +// CHECK:STDOUT: !5 = !{!4, !4, i64 0} +// CHECK:STDOUT: !6 = !{!2, !2, i64 0} +// CHECK:STDOUT: !9 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !10 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !25 = !DIFile(filename: "import_inline.carbon", directory: "") +// CHECK:STDOUT: !26 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !25, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !28 = !{!27} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !33 = !{null, !27} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !25, line: 21, type: !29, spFlags: DISPFlagDefinition, unit: !26) +// CHECK:STDOUT: !38 = !DILocation(line: 22, column: 3, scope: !35) +// CHECK:STDOUT: !42 = !DILocation(line: 23, column: 3, scope: !35) +// CHECK:STDOUT: !43 = !DILocation(line: 24, column: 10, scope: !35) +// CHECK:STDOUT: !44 = !DILocation(line: 24, column: 3, scope: !35) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !25, line: 22, type: !34, spFlags: DISPFlagDefinition, unit: !26, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !27) +// CHECK:STDOUT: !47 = !DILocation(line: 22, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} +// CHECK:STDOUT: !49 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !50 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !51 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !52 = !{!"__libc_errno", !2, i64 0} +// CHECK:STDOUT: !53 = !{!52, !2, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon b/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon index 09652204feec..5102ade4d56f 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/parameters.carbon @@ -122,23 +122,23 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_19.3.temp = alloca i8, align 1, !dbg !15 -// CHECK:STDOUT: %.loc7_22.3.temp = alloca i16, align 2, !dbg !16 -// CHECK:STDOUT: %.loc9_21.3.temp = alloca i8, align 1, !dbg !17 -// CHECK:STDOUT: %.loc9_24.3.temp = alloca i16, align 2, !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.3.temp), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_22.3.temp), !dbg !16 -// CHECK:STDOUT: call void @_Z11pass_signedasil.carbon_thunk.____(ptr @int_1.f1e, ptr @int_2.5c2, i32 3, i64 4), !dbg !19 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr @int_2.5c2), !dbg !16 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.3.temp), !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_24.3.temp), !dbg !18 -// CHECK:STDOUT: call void @_Z13pass_unsignedhtjm.carbon_thunk.____(ptr @int_1.067, ptr @int_2.ec3, i32 3, i64 4), !dbg !20 -// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr @int_2.ec3), !dbg !18 -// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr @int_1.067), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %.loc7_19.3.temp = alloca i8, align 1, !dbg !62 +// CHECK:STDOUT: %.loc7_22.3.temp = alloca i16, align 2, !dbg !63 +// CHECK:STDOUT: %.loc9_21.3.temp = alloca i8, align 1, !dbg !65 +// CHECK:STDOUT: %.loc9_24.3.temp = alloca i16, align 2, !dbg !66 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.3.temp), !dbg !62 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_22.3.temp), !dbg !63 +// CHECK:STDOUT: call void @_Z11pass_signedasil.carbon_thunk.____(ptr @int_1.f1e, ptr @int_2.5c2, i32 3, i64 4), !dbg !64 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr @int_2.5c2), !dbg !63 +// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr @int_1.f1e), !dbg !62 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.3.temp), !dbg !65 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_24.3.temp), !dbg !66 +// CHECK:STDOUT: call void @_Z13pass_unsignedhtjm.carbon_thunk.____(ptr @int_1.067, ptr @int_2.ec3, i32 3, i64 4), !dbg !67 +// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr @int_2.ec3), !dbg !66 +// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr @int_1.067), !dbg !65 +// CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -148,30 +148,30 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: %.addr1 = alloca ptr, align 8 // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %.addr3 = alloca i64, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !22 -// CHECK:STDOUT: store ptr %1, ptr %.addr1, align 8, !tbaa !25 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !27 -// CHECK:STDOUT: store i64 %3, ptr %.addr3, align 8, !tbaa !28 -// CHECK:STDOUT: %4 = load ptr, ptr %.addr, align 8, !tbaa !22 -// CHECK:STDOUT: %5 = load i8, ptr %4, align 1, !tbaa !30 -// CHECK:STDOUT: %6 = load ptr, ptr %.addr1, align 8, !tbaa !25 -// CHECK:STDOUT: %7 = load i16, ptr %6, align 2, !tbaa !31 -// CHECK:STDOUT: %8 = load i32, ptr %.addr2, align 4, !tbaa !27 -// CHECK:STDOUT: %9 = load i64, ptr %.addr3, align 8, !tbaa !28 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: store ptr %1, ptr %.addr1, align 8, !tbaa !111 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !113 +// CHECK:STDOUT: store i64 %3, ptr %.addr3, align 8, !tbaa !115 +// CHECK:STDOUT: %4 = load ptr, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: %5 = load i8, ptr %4, align 1, !tbaa !116 +// CHECK:STDOUT: %6 = load ptr, ptr %.addr1, align 8, !tbaa !111 +// CHECK:STDOUT: %7 = load i16, ptr %6, align 2, !tbaa !117 +// CHECK:STDOUT: %8 = load i32, ptr %.addr2, align 4, !tbaa !113 +// CHECK:STDOUT: %9 = load i64, ptr %.addr3, align 8, !tbaa !115 // CHECK:STDOUT: call void @_Z11pass_signedasil(i8 noundef signext %5, i16 noundef signext %7, i32 noundef %8, i64 noundef %9) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !46 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -181,70 +181,70 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: %.addr1 = alloca ptr, align 8 // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %.addr3 = alloca i64, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !22 -// CHECK:STDOUT: store ptr %1, ptr %.addr1, align 8, !tbaa !25 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !27 -// CHECK:STDOUT: store i64 %3, ptr %.addr3, align 8, !tbaa !28 -// CHECK:STDOUT: %4 = load ptr, ptr %.addr, align 8, !tbaa !22 -// CHECK:STDOUT: %5 = load i8, ptr %4, align 1, !tbaa !30 -// CHECK:STDOUT: %6 = load ptr, ptr %.addr1, align 8, !tbaa !25 -// CHECK:STDOUT: %7 = load i16, ptr %6, align 2, !tbaa !31 -// CHECK:STDOUT: %8 = load i32, ptr %.addr2, align 4, !tbaa !27 -// CHECK:STDOUT: %9 = load i64, ptr %.addr3, align 8, !tbaa !28 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: store ptr %1, ptr %.addr1, align 8, !tbaa !111 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !113 +// CHECK:STDOUT: store i64 %3, ptr %.addr3, align 8, !tbaa !115 +// CHECK:STDOUT: %4 = load ptr, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: %5 = load i8, ptr %4, align 1, !tbaa !116 +// CHECK:STDOUT: %6 = load ptr, ptr %.addr1, align 8, !tbaa !111 +// CHECK:STDOUT: %7 = load i16, ptr %6, align 2, !tbaa !117 +// CHECK:STDOUT: %8 = load i32, ptr %.addr2, align 4, !tbaa !113 +// CHECK:STDOUT: %9 = load i64, ptr %.addr3, align 8, !tbaa !115 // CHECK:STDOUT: call void @_Z13pass_unsignedhtjm(i8 noundef zeroext %5, i16 noundef zeroext %7, i32 noundef %8, i64 noundef %9) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %self) #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !53 +// CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i16 @_CMakeShort.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassShort.Main(i16 %a, ptr %b) #0 !dbg !61 { +// CHECK:STDOUT: define void @_CPassShort.Main(i16 %a, ptr %b) #0 !dbg !85 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17_18.1.temp = alloca i16, align 2, !dbg !68 -// CHECK:STDOUT: %.loc18_18.3.temp = alloca i16, align 2, !dbg !69 -// CHECK:STDOUT: %.loc19_18.2.temp = alloca i16, align 2, !dbg !70 -// CHECK:STDOUT: %.loc20_28.3.temp = alloca i16, align 2, !dbg !71 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_18.1.temp), !dbg !68 -// CHECK:STDOUT: store i16 %a, ptr %.loc17_18.1.temp, align 2, !dbg !68 -// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc17_18.1.temp), !dbg !72 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc17_18.1.temp), !dbg !68 -// CHECK:STDOUT: %.loc18_18.2 = load i16, ptr %b, align 2, !dbg !69 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_18.3.temp), !dbg !69 -// CHECK:STDOUT: store i16 %.loc18_18.2, ptr %.loc18_18.3.temp, align 2, !dbg !69 -// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc18_18.3.temp), !dbg !73 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc18_18.3.temp), !dbg !69 -// CHECK:STDOUT: %.loc19_18.1 = load i16, ptr @_Cc.Main, align 2, !dbg !70 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_18.2.temp), !dbg !70 -// CHECK:STDOUT: store i16 %.loc19_18.1, ptr %.loc19_18.2.temp, align 2, !dbg !70 -// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc19_18.2.temp), !dbg !74 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc19_18.2.temp), !dbg !70 -// CHECK:STDOUT: %MakeShort.call = call i16 @_CMakeShort.Main(), !dbg !71 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_28.3.temp), !dbg !71 -// CHECK:STDOUT: store i16 %MakeShort.call, ptr %.loc20_28.3.temp, align 2, !dbg !71 -// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc20_28.3.temp), !dbg !75 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc20_28.3.temp), !dbg !71 -// CHECK:STDOUT: ret void, !dbg !76 +// CHECK:STDOUT: %.loc17_18.1.temp = alloca i16, align 2, !dbg !90 +// CHECK:STDOUT: %.loc18_18.3.temp = alloca i16, align 2, !dbg !93 +// CHECK:STDOUT: %.loc19_18.2.temp = alloca i16, align 2, !dbg !95 +// CHECK:STDOUT: %.loc20_28.3.temp = alloca i16, align 2, !dbg !97 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_18.1.temp), !dbg !90 +// CHECK:STDOUT: store i16 %a, ptr %.loc17_18.1.temp, align 2, !dbg !90 +// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc17_18.1.temp), !dbg !91 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc17_18.1.temp), !dbg !90 +// CHECK:STDOUT: %.loc18_18.2 = load i16, ptr %b, align 2, !dbg !93 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_18.3.temp), !dbg !93 +// CHECK:STDOUT: store i16 %.loc18_18.2, ptr %.loc18_18.3.temp, align 2, !dbg !93 +// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc18_18.3.temp), !dbg !94 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc18_18.3.temp), !dbg !93 +// CHECK:STDOUT: %.loc19_18.1 = load i16, ptr @_Cc.Main, align 2, !dbg !95 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_18.2.temp), !dbg !95 +// CHECK:STDOUT: store i16 %.loc19_18.1, ptr %.loc19_18.2.temp, align 2, !dbg !95 +// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc19_18.2.temp), !dbg !96 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc19_18.2.temp), !dbg !95 +// CHECK:STDOUT: %MakeShort.call = call i16 @_CMakeShort.Main(), !dbg !97 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_28.3.temp), !dbg !97 +// CHECK:STDOUT: store i16 %MakeShort.call, ptr %.loc20_28.3.temp, align 2, !dbg !97 +// CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc20_28.3.temp), !dbg !98 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc20_28.3.temp), !dbg !97 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z10pass_shorts.carbon_thunk._(ptr noundef %0) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !25 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !25 -// CHECK:STDOUT: %2 = load i16, ptr %1, align 2, !tbaa !31 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !111 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !111 +// CHECK:STDOUT: %2 = load i16, ptr %1, align 2, !tbaa !117 // CHECK:STDOUT: call void @_Z10pass_shorts(i16 noundef signext %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -253,10 +253,10 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !77 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !101 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i16 poison, ptr @_Cc.Main, align 2, !dbg !78 -// CHECK:STDOUT: ret void, !dbg !79 +// CHECK:STDOUT: store i16 poison, ptr @_Cc.Main, align 2, !dbg !102 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z11pass_signedasil(i8 noundef signext, i16 noundef signext, i32 noundef, i64 noundef) #3 @@ -274,90 +274,90 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} +// CHECK:STDOUT: !llvm.module.flags = !{!118, !119, !120, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!122} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_ints.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 19, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 22, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 21, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 9, column: 24, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !22 = !{!23, !23, i64 0} -// CHECK:STDOUT: !23 = !{!"p1 omnipotent char", !24, i64 0} -// CHECK:STDOUT: !24 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !25 = !{!26, !26, i64 0} -// CHECK:STDOUT: !26 = !{!"p1 short", !24, i64 0} -// CHECK:STDOUT: !27 = !{!9, !9, i64 0} -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"long", !10, i64 0} -// CHECK:STDOUT: !30 = !{!10, !10, i64 0} -// CHECK:STDOUT: !31 = !{!32, !32, i64 0} -// CHECK:STDOUT: !32 = !{!"short", !10, i64 0} -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !1, line: 7, type: !34, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !34 = !DISubroutineType(types: !35) -// CHECK:STDOUT: !35 = !{null, !36} -// CHECK:STDOUT: !36 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !33, type: !36) -// CHECK:STDOUT: !39 = !DILocation(line: 7, column: 22, scope: !33) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !1, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !41 = !DISubroutineType(types: !42) -// CHECK:STDOUT: !42 = !{null, !43} -// CHECK:STDOUT: !43 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !40, type: !43) -// CHECK:STDOUT: !46 = !DILocation(line: 7, column: 19, scope: !40) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d38552e658b9d7ce:core.Destroy.Core", scope: null, file: !1, line: 9, type: !48, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !48 = !DISubroutineType(types: !49) -// CHECK:STDOUT: !49 = !{null, !50} -// CHECK:STDOUT: !50 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !51 = !{!52} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !47, type: !50) -// CHECK:STDOUT: !53 = !DILocation(line: 9, column: 24, scope: !47) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !1, line: 9, type: !55, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !55 = !DISubroutineType(types: !56) -// CHECK:STDOUT: !56 = !{null, !57} -// CHECK:STDOUT: !57 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !54, type: !57) -// CHECK:STDOUT: !60 = !DILocation(line: 9, column: 21, scope: !54) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "PassShort", linkageName: "_CPassShort.Main", scope: null, file: !1, line: 16, type: !62, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !65) -// CHECK:STDOUT: !62 = !DISubroutineType(types: !63) -// CHECK:STDOUT: !63 = !{null, !36, !64} -// CHECK:STDOUT: !64 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !65 = !{!66, !67} -// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !61, type: !36) -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 2, scope: !61, type: !64) -// CHECK:STDOUT: !68 = !DILocation(line: 17, column: 18, scope: !61) -// CHECK:STDOUT: !69 = !DILocation(line: 18, column: 18, scope: !61) -// CHECK:STDOUT: !70 = !DILocation(line: 19, column: 18, scope: !61) -// CHECK:STDOUT: !71 = !DILocation(line: 20, column: 18, scope: !61) -// CHECK:STDOUT: !72 = !DILocation(line: 17, column: 3, scope: !61) -// CHECK:STDOUT: !73 = !DILocation(line: 18, column: 3, scope: !61) -// CHECK:STDOUT: !74 = !DILocation(line: 19, column: 3, scope: !61) -// CHECK:STDOUT: !75 = !DILocation(line: 20, column: 3, scope: !61) -// CHECK:STDOUT: !76 = !DILocation(line: 16, column: 1, scope: !61) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !78 = !DILocation(line: 14, column: 1, scope: !77) -// CHECK:STDOUT: !79 = !DILocation(line: 0, scope: !77) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !32 = !DIFile(filename: "import_ints.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !36 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) +// CHECK:STDOUT: !37 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !39 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !45 = !{null, !37} +// CHECK:STDOUT: !46 = !DISubroutineType(types: !45) +// CHECK:STDOUT: !47 = !{null, !36} +// CHECK:STDOUT: !48 = !DISubroutineType(types: !47) +// CHECK:STDOUT: !51 = !{null, !39} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = !{null, !8} +// CHECK:STDOUT: !54 = !DISubroutineType(types: !53) +// CHECK:STDOUT: !57 = !{null, !37, !42} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !32, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !62 = !DILocation(line: 7, column: 19, scope: !61) +// CHECK:STDOUT: !63 = !DILocation(line: 7, column: 22, scope: !61) +// CHECK:STDOUT: !64 = !DILocation(line: 7, column: 3, scope: !61) +// CHECK:STDOUT: !65 = !DILocation(line: 9, column: 21, scope: !61) +// CHECK:STDOUT: !66 = !DILocation(line: 9, column: 24, scope: !61) +// CHECK:STDOUT: !67 = !DILocation(line: 9, column: 3, scope: !61) +// CHECK:STDOUT: !68 = !DILocation(line: 6, column: 1, scope: !61) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !32, line: 7, type: !46, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !72) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !69, type: !37) +// CHECK:STDOUT: !71 = !DILocation(line: 7, column: 22, scope: !69) +// CHECK:STDOUT: !72 = !{!70} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !32, line: 7, type: !48, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !76) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !36) +// CHECK:STDOUT: !75 = !DILocation(line: 7, column: 19, scope: !73) +// CHECK:STDOUT: !76 = !{!74} +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d38552e658b9d7ce:core.Destroy.Core", scope: null, file: !32, line: 9, type: !52, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !80) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !39) +// CHECK:STDOUT: !79 = !DILocation(line: 9, column: 24, scope: !77) +// CHECK:STDOUT: !80 = !{!78} +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !32, line: 9, type: !54, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !84) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !8) +// CHECK:STDOUT: !83 = !DILocation(line: 9, column: 21, scope: !81) +// CHECK:STDOUT: !84 = !{!82} +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "PassShort", linkageName: "_CPassShort.Main", scope: null, file: !32, line: 16, type: !58, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !100) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !85, type: !37) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 2, scope: !85, type: !42) +// CHECK:STDOUT: !90 = !DILocation(line: 17, column: 18, scope: !85) +// CHECK:STDOUT: !91 = !DILocation(line: 17, column: 3, scope: !85) +// CHECK:STDOUT: !93 = !DILocation(line: 18, column: 18, scope: !85) +// CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !85) +// CHECK:STDOUT: !95 = !DILocation(line: 19, column: 18, scope: !85) +// CHECK:STDOUT: !96 = !DILocation(line: 19, column: 3, scope: !85) +// CHECK:STDOUT: !97 = !DILocation(line: 20, column: 18, scope: !85) +// CHECK:STDOUT: !98 = !DILocation(line: 20, column: 3, scope: !85) +// CHECK:STDOUT: !99 = !DILocation(line: 16, column: 1, scope: !85) +// CHECK:STDOUT: !100 = !{!86, !87} +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !32, type: !41, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !102 = !DILocation(line: 14, column: 1, scope: !101) +// CHECK:STDOUT: !103 = !DILocation(line: 0, scope: !101) +// CHECK:STDOUT: !104 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !105 = !{!"omnipotent char", !104, i64 0} +// CHECK:STDOUT: !106 = !{!"any pointer", !105, i64 0} +// CHECK:STDOUT: !107 = !{!"p1 omnipotent char", !106, i64 0} +// CHECK:STDOUT: !108 = !{!107, !107, i64 0} +// CHECK:STDOUT: !109 = !{!"short", !105, i64 0} +// CHECK:STDOUT: !110 = !{!"p1 short", !106, i64 0} +// CHECK:STDOUT: !111 = !{!110, !110, i64 0} +// CHECK:STDOUT: !112 = !{!"int", !105, i64 0} +// CHECK:STDOUT: !113 = !{!112, !112, i64 0} +// CHECK:STDOUT: !114 = !{!"long", !105, i64 0} +// CHECK:STDOUT: !115 = !{!114, !114, i64 0} +// CHECK:STDOUT: !116 = !{!105, !105, i64 0} +// CHECK:STDOUT: !117 = !{!109, !109, i64 0} +// CHECK:STDOUT: !118 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !119 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !120 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !121 = !{!"__libc_errno", !112, i64 0} +// CHECK:STDOUT: !122 = !{!121, !112, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_struct.carbon' @@ -368,35 +368,35 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: %struct.X = type { i32, i32, i32 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CTest.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CTest.Main() #0 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca [12 x i8], align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1"(ptr %x.var), !dbg !15 -// CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 0, !dbg !16 -// CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !16 -// CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 4, !dbg !17 -// CHECK:STDOUT: store i32 2, ptr %.loc9_4.b, align 4, !dbg !17 -// CHECK:STDOUT: %.loc10_4.c = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 8, !dbg !18 -// CHECK:STDOUT: store i32 3, ptr %.loc10_4.c, align 4, !dbg !18 -// CHECK:STDOUT: call void @_Z11pass_struct1X.carbon_thunk._(ptr %x.var), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %x.var = alloca [12 x i8], align 4, !dbg !128 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !128 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1"(ptr %x.var), !dbg !128 +// CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 0, !dbg !130 +// CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !130 +// CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 4, !dbg !131 +// CHECK:STDOUT: store i32 2, ptr %.loc9_4.b, align 4, !dbg !131 +// CHECK:STDOUT: %.loc10_4.c = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 8, !dbg !132 +// CHECK:STDOUT: store i32 3, ptr %.loc10_4.c, align 4, !dbg !132 +// CHECK:STDOUT: call void @_Z11pass_struct1X.carbon_thunk._(ptr %x.var), !dbg !134 +// CHECK:STDOUT: ret void, !dbg !135 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN1XC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !21 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !145 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !145 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp"(ptr sret([12 x i8]) %return) #2 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp"(ptr sret([12 x i8]) %return) #2 !dbg !137 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN1XC1Ev.carbon_thunk.(ptr %return), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: call void @_ZN1XC1Ev.carbon_thunk.(ptr %return), !dbg !138 +// CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -405,9 +405,9 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.X, align 4 // CHECK:STDOUT: %agg.tmp.coerce = alloca { i64, i32 }, align 4 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 12, i1 false), !tbaa.struct !30 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !145 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !145 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 12, i1 false), !tbaa.struct !147 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp.coerce, ptr align 4 %agg.tmp, i64 12, i1 false) // CHECK:STDOUT: %2 = getelementptr inbounds nuw { i64, i32 }, ptr %agg.tmp.coerce, i32 0, i32 0 // CHECK:STDOUT: %3 = load i64, ptr %2, align 4 @@ -421,9 +421,9 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1"(ptr sret([12 x i8]) %return) #0 !dbg !32 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp"(ptr %return), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1"(ptr sret([12 x i8]) %return) #0 !dbg !139 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp"(ptr %return), !dbg !142 +// CHECK:STDOUT: ret void, !dbg !143 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z11pass_struct1X(i64, i32) #5 @@ -441,46 +441,46 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!124} +// CHECK:STDOUT: !llvm.module.flags = !{!118, !119, !120, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!122} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_struct.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 10, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS1X", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp", scope: null, file: !25, line: 2, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !25 = !DIFile(filename: "./struct.h", directory: "") -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !29 = !DILocation(line: 2, column: 8, scope: !24) -// CHECK:STDOUT: !30 = !{i64 0, i64 4, !31, i64 4, i64 4, !31, i64 8, i64 4, !31} -// CHECK:STDOUT: !31 = !{!9, !9, i64 0} -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1", scope: null, file: !33, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !33 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") -// CHECK:STDOUT: !34 = !DILocation(line: 9, column: 28, scope: !32) -// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 21, scope: !32) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !26 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !104 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !105 = !{!"omnipotent char", !104, i64 0} +// CHECK:STDOUT: !106 = !{!"any pointer", !105, i64 0} +// CHECK:STDOUT: !112 = !{!"int", !105, i64 0} +// CHECK:STDOUT: !113 = !{!112, !112, i64 0} +// CHECK:STDOUT: !118 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !119 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !120 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !121 = !{!"__libc_errno", !112, i64 0} +// CHECK:STDOUT: !122 = !{!121, !112, i64 0} +// CHECK:STDOUT: !123 = !DIFile(filename: "import_struct.carbon", directory: "") +// CHECK:STDOUT: !124 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !123, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !125 = !{!42} +// CHECK:STDOUT: !126 = !DISubroutineType(types: !125) +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !123, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !124) +// CHECK:STDOUT: !128 = !DILocation(line: 7, column: 3, scope: !127) +// CHECK:STDOUT: !130 = !DILocation(line: 8, column: 3, scope: !127) +// CHECK:STDOUT: !131 = !DILocation(line: 9, column: 3, scope: !127) +// CHECK:STDOUT: !132 = !DILocation(line: 10, column: 3, scope: !127) +// CHECK:STDOUT: !134 = !DILocation(line: 11, column: 3, scope: !127) +// CHECK:STDOUT: !135 = !DILocation(line: 6, column: 1, scope: !127) +// CHECK:STDOUT: !136 = !DIFile(filename: "./struct.h", directory: "") +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp", scope: null, file: !136, line: 2, type: !126, spFlags: DISPFlagDefinition, unit: !124) +// CHECK:STDOUT: !138 = !DILocation(line: 2, column: 8, scope: !137) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1", scope: null, file: !26, line: 9, type: !126, spFlags: DISPFlagDefinition, unit: !124) +// CHECK:STDOUT: !142 = !DILocation(line: 9, column: 28, scope: !139) +// CHECK:STDOUT: !143 = !DILocation(line: 9, column: 21, scope: !139) +// CHECK:STDOUT: !144 = !{!"p1 _ZTS1X", !106, i64 0} +// CHECK:STDOUT: !145 = !{!144, !144, i64 0} +// CHECK:STDOUT: !147 = !{i64 0, i64 4, !113, i64 4, i64 4, !113, i64 8, i64 4, !113} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_class_with_nontrivial_copy.carbon' @@ -491,18 +491,18 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: %class.Y = type { i32, i32, i32 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassRefExpr.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassRefExpr.Main() #0 !dbg !150 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %y.var = alloca [12 x i8], align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !15 -// CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %y.var, i32 0, i32 0, !dbg !16 -// CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !16 -// CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %y.var, i32 0, i32 4, !dbg !17 -// CHECK:STDOUT: store i32 2, ptr %.loc9_4.b, align 4, !dbg !17 -// CHECK:STDOUT: %.loc10_4.c = getelementptr inbounds nuw [12 x i8], ptr %y.var, i32 0, i32 8, !dbg !18 -// CHECK:STDOUT: store i32 3, ptr %.loc10_4.c, align 4, !dbg !18 -// CHECK:STDOUT: call void @_Z11pass_struct1Y.carbon_thunk._(ptr %y.var), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %y.var = alloca [12 x i8], align 4, !dbg !151 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !151 +// CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %y.var, i32 0, i32 0, !dbg !153 +// CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !153 +// CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %y.var, i32 0, i32 4, !dbg !154 +// CHECK:STDOUT: store i32 2, ptr %.loc9_4.b, align 4, !dbg !154 +// CHECK:STDOUT: %.loc10_4.c = getelementptr inbounds nuw [12 x i8], ptr %y.var, i32 0, i32 8, !dbg !155 +// CHECK:STDOUT: store i32 3, ptr %.loc10_4.c, align 4, !dbg !155 +// CHECK:STDOUT: call void @_Z11pass_struct1Y.carbon_thunk._(ptr %y.var), !dbg !157 +// CHECK:STDOUT: ret void, !dbg !158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -510,36 +510,36 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.Y, align 4 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !21 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !171 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !171 // CHECK:STDOUT: call void @_ZN1YC1ERKS_(ptr noundef nonnull align 4 dereferenceable(12) %agg.tmp, ptr noundef nonnull align 4 dereferenceable(12) %1) -// CHECK:STDOUT: call void @_Z11pass_struct1Y(ptr noundef align 4 dead_on_return %agg.tmp) +// CHECK:STDOUT: call void @_Z11pass_struct1Y(ptr nofreeobj noundef align 4 dead_on_return dereferenceable(12) %agg.tmp) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.Main(ptr sret([12 x i8])) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassInitExpr.Main() #0 !dbg !24 { +// CHECK:STDOUT: define void @_CPassInitExpr.Main() #0 !dbg !159 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17_24.1.temp = alloca [12 x i8], align 4, !dbg !25 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_24.1.temp), !dbg !25 -// CHECK:STDOUT: call void @_CMake.Main(ptr %.loc17_24.1.temp), !dbg !25 -// CHECK:STDOUT: call void @_Z11pass_struct1Y.carbon_thunk._(ptr %.loc17_24.1.temp), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: %.loc17_24.1.temp = alloca [12 x i8], align 4, !dbg !160 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_24.1.temp), !dbg !160 +// CHECK:STDOUT: call void @_CMake.Main(ptr %.loc17_24.1.temp), !dbg !160 +// CHECK:STDOUT: call void @_Z11pass_struct1Y.carbon_thunk._(ptr %.loc17_24.1.temp), !dbg !161 +// CHECK:STDOUT: ret void, !dbg !162 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassValueExpr.Main(ptr %y) #0 !dbg !28 { +// CHECK:STDOUT: define void @_CPassValueExpr.Main(ptr %y) #0 !dbg !163 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z11pass_struct1Y.carbon_thunk._(ptr %y), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !35 +// CHECK:STDOUT: call void @_Z11pass_struct1Y.carbon_thunk._(ptr %y), !dbg !167 +// CHECK:STDOUT: ret void, !dbg !168 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_Z11pass_struct1Y(ptr noundef align 4 dead_on_return) #3 +// CHECK:STDOUT: declare void @_Z11pass_struct1Y(ptr nofreeobj noundef align 4 dead_on_return dereferenceable(12)) #3 // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN1YC1ERKS_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #3 // CHECK:STDOUT: @@ -551,44 +551,44 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!149} +// CHECK:STDOUT: !llvm.module.flags = !{!118, !119, !120, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!122} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_class_with_nontrivial_copy.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassRefExpr", linkageName: "_CPassRefExpr.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 10, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS1Y", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "PassInitExpr", linkageName: "_CPassInitExpr.Main", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 19, scope: !24) -// CHECK:STDOUT: !26 = !DILocation(line: 17, column: 3, scope: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 16, column: 1, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "PassValueExpr", linkageName: "_CPassValueExpr.Main", scope: null, file: !1, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{null, !31} -// CHECK:STDOUT: !31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !28, type: !31) -// CHECK:STDOUT: !34 = !DILocation(line: 21, column: 3, scope: !28) -// CHECK:STDOUT: !35 = !DILocation(line: 20, column: 1, scope: !28) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !40 = !{null} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !59 = !{null, !42} +// CHECK:STDOUT: !60 = !DISubroutineType(types: !59) +// CHECK:STDOUT: !104 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !105 = !{!"omnipotent char", !104, i64 0} +// CHECK:STDOUT: !106 = !{!"any pointer", !105, i64 0} +// CHECK:STDOUT: !112 = !{!"int", !105, i64 0} +// CHECK:STDOUT: !118 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !119 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !120 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !121 = !{!"__libc_errno", !112, i64 0} +// CHECK:STDOUT: !122 = !{!121, !112, i64 0} +// CHECK:STDOUT: !148 = !DIFile(filename: "import_class_with_nontrivial_copy.carbon", directory: "") +// CHECK:STDOUT: !149 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !148, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !150 = distinct !DISubprogram(name: "PassRefExpr", linkageName: "_CPassRefExpr.Main", scope: null, file: !148, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !149) +// CHECK:STDOUT: !151 = !DILocation(line: 7, column: 3, scope: !150) +// CHECK:STDOUT: !153 = !DILocation(line: 8, column: 3, scope: !150) +// CHECK:STDOUT: !154 = !DILocation(line: 9, column: 3, scope: !150) +// CHECK:STDOUT: !155 = !DILocation(line: 10, column: 3, scope: !150) +// CHECK:STDOUT: !157 = !DILocation(line: 11, column: 3, scope: !150) +// CHECK:STDOUT: !158 = !DILocation(line: 6, column: 1, scope: !150) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "PassInitExpr", linkageName: "_CPassInitExpr.Main", scope: null, file: !148, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !149) +// CHECK:STDOUT: !160 = !DILocation(line: 17, column: 19, scope: !159) +// CHECK:STDOUT: !161 = !DILocation(line: 17, column: 3, scope: !159) +// CHECK:STDOUT: !162 = !DILocation(line: 16, column: 1, scope: !159) +// CHECK:STDOUT: !163 = distinct !DISubprogram(name: "PassValueExpr", linkageName: "_CPassValueExpr.Main", scope: null, file: !148, line: 20, type: !60, spFlags: DISPFlagDefinition, unit: !149, retainedNodes: !169) +// CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !163, type: !42) +// CHECK:STDOUT: !167 = !DILocation(line: 21, column: 3, scope: !163) +// CHECK:STDOUT: !168 = !DILocation(line: 20, column: 1, scope: !163) +// CHECK:STDOUT: !169 = !{!164} +// CHECK:STDOUT: !170 = !{!"p1 _ZTS1Y", !106, i64 0} +// CHECK:STDOUT: !171 = !{!170, !170, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/function/import/return.carbon b/toolchain/lower/testdata/interop/cpp/function/import/return.carbon index df3588bb0498..b028b0428293 100644 --- a/toolchain/lower/testdata/interop/cpp/function/import/return.carbon +++ b/toolchain/lower/testdata/interop/cpp/function/import/return.carbon @@ -119,121 +119,121 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @_CGetU8.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i8 @_CGetU8.Main() #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc6_40.1.temp = alloca i8, align 1, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc6_40.1.temp), !dbg !16 -// CHECK:STDOUT: call void @_Z8ReturnU8v.carbon_thunk.(ptr %.loc6_40.1.temp), !dbg !16 -// CHECK:STDOUT: %0 = load i8, ptr %.loc6_40.1.temp, align 1, !dbg !17 -// CHECK:STDOUT: ret i8 %0, !dbg !17 +// CHECK:STDOUT: %.loc6_40.1.temp = alloca i8, align 1, !dbg !56 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc6_40.1.temp), !dbg !56 +// CHECK:STDOUT: call void @_Z8ReturnU8v.carbon_thunk.(ptr %.loc6_40.1.temp), !dbg !56 +// CHECK:STDOUT: %0 = load i8, ptr %.loc6_40.1.temp, align 1, !dbg !57 +// CHECK:STDOUT: ret i8 %0, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z8ReturnU8v.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !199 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !199 // CHECK:STDOUT: %call = call noundef zeroext i8 @_Z8ReturnU8v() -// CHECK:STDOUT: store i8 %call, ptr %0, align 1, !tbaa !21 +// CHECK:STDOUT: store i8 %call, ptr %0, align 1, !tbaa !200 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CGetU16.Main() #0 !dbg !22 { +// CHECK:STDOUT: define i16 @_CGetU16.Main() #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_43.1.temp = alloca i16, align 2, !dbg !26 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_43.1.temp), !dbg !26 -// CHECK:STDOUT: call void @_Z9ReturnU16v.carbon_thunk.(ptr %.loc7_43.1.temp), !dbg !26 -// CHECK:STDOUT: %0 = load i16, ptr %.loc7_43.1.temp, align 2, !dbg !27 -// CHECK:STDOUT: ret i16 %0, !dbg !27 +// CHECK:STDOUT: %.loc7_43.1.temp = alloca i16, align 2, !dbg !61 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_43.1.temp), !dbg !61 +// CHECK:STDOUT: call void @_Z9ReturnU16v.carbon_thunk.(ptr %.loc7_43.1.temp), !dbg !61 +// CHECK:STDOUT: %0 = load i16, ptr %.loc7_43.1.temp, align 2, !dbg !62 +// CHECK:STDOUT: ret i16 %0, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z9ReturnU16v.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !28 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !28 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !203 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !203 // CHECK:STDOUT: %call = call noundef zeroext i16 @_Z9ReturnU16v() -// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !30 +// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !204 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CGetU32.Main() #0 !dbg !32 { +// CHECK:STDOUT: define i32 @_CGetU32.Main() #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnU32.call = call i32 @_Z9ReturnU32v(), !dbg !36 -// CHECK:STDOUT: ret i32 %ReturnU32.call, !dbg !37 +// CHECK:STDOUT: %ReturnU32.call = call i32 @_Z9ReturnU32v(), !dbg !66 +// CHECK:STDOUT: ret i32 %ReturnU32.call, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef i32 @_Z9ReturnU32v() #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CGetU64.Main() #0 !dbg !38 { +// CHECK:STDOUT: define i64 @_CGetU64.Main() #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnU64.call = call i64 @_Z9ReturnU64v(), !dbg !42 -// CHECK:STDOUT: ret i64 %ReturnU64.call, !dbg !43 +// CHECK:STDOUT: %ReturnU64.call = call i64 @_Z9ReturnU64v(), !dbg !71 +// CHECK:STDOUT: ret i64 %ReturnU64.call, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef i64 @_Z9ReturnU64v() #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @_CGetI8.Main() #0 !dbg !44 { +// CHECK:STDOUT: define i8 @_CGetI8.Main() #0 !dbg !73 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_40.1.temp = alloca i8, align 1, !dbg !48 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_40.1.temp), !dbg !48 -// CHECK:STDOUT: call void @_Z8ReturnI8v.carbon_thunk.(ptr %.loc11_40.1.temp), !dbg !48 -// CHECK:STDOUT: %0 = load i8, ptr %.loc11_40.1.temp, align 1, !dbg !49 -// CHECK:STDOUT: ret i8 %0, !dbg !49 +// CHECK:STDOUT: %.loc11_40.1.temp = alloca i8, align 1, !dbg !76 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_40.1.temp), !dbg !76 +// CHECK:STDOUT: call void @_Z8ReturnI8v.carbon_thunk.(ptr %.loc11_40.1.temp), !dbg !76 +// CHECK:STDOUT: %0 = load i8, ptr %.loc11_40.1.temp, align 1, !dbg !77 +// CHECK:STDOUT: ret i8 %0, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z8ReturnI8v.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !199 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !199 // CHECK:STDOUT: %call = call noundef signext i8 @_Z8ReturnI8v() -// CHECK:STDOUT: store i8 %call, ptr %0, align 1, !tbaa !21 +// CHECK:STDOUT: store i8 %call, ptr %0, align 1, !tbaa !200 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CGetI16.Main() #0 !dbg !50 { +// CHECK:STDOUT: define i16 @_CGetI16.Main() #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_43.1.temp = alloca i16, align 2, !dbg !54 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_43.1.temp), !dbg !54 -// CHECK:STDOUT: call void @_Z9ReturnI16v.carbon_thunk.(ptr %.loc12_43.1.temp), !dbg !54 -// CHECK:STDOUT: %0 = load i16, ptr %.loc12_43.1.temp, align 2, !dbg !55 -// CHECK:STDOUT: ret i16 %0, !dbg !55 +// CHECK:STDOUT: %.loc12_43.1.temp = alloca i16, align 2, !dbg !81 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_43.1.temp), !dbg !81 +// CHECK:STDOUT: call void @_Z9ReturnI16v.carbon_thunk.(ptr %.loc12_43.1.temp), !dbg !81 +// CHECK:STDOUT: %0 = load i16, ptr %.loc12_43.1.temp, align 2, !dbg !82 +// CHECK:STDOUT: ret i16 %0, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z9ReturnI16v.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !28 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !28 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !203 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !203 // CHECK:STDOUT: %call = call noundef signext i16 @_Z9ReturnI16v() -// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !30 +// CHECK:STDOUT: store i16 %call, ptr %0, align 2, !tbaa !204 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CGetI32.Main() #0 !dbg !56 { +// CHECK:STDOUT: define i32 @_CGetI32.Main() #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !60 -// CHECK:STDOUT: ret i32 %ReturnI32.call, !dbg !61 +// CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !86 +// CHECK:STDOUT: ret i32 %ReturnI32.call, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef i32 @_Z9ReturnI32v() #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CGetI64.Main() #0 !dbg !62 { +// CHECK:STDOUT: define i64 @_CGetI64.Main() #0 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !66 -// CHECK:STDOUT: ret i64 %ReturnI64.call, !dbg !67 +// CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !91 +// CHECK:STDOUT: ret i64 %ReturnI64.call, !dbg !92 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef i64 @_Z9ReturnI64v() #2 @@ -241,133 +241,133 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: declare void @_CUse.Main(i8, i16, i32, i64, i8, i16, i32, i64) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CLets.Main() #0 !dbg !68 { +// CHECK:STDOUT: define void @_CLets.Main() #0 !dbg !93 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc19_32.1.temp = alloca i8, align 1, !dbg !71 -// CHECK:STDOUT: %.loc20_35.1.temp = alloca i16, align 2, !dbg !72 -// CHECK:STDOUT: %.loc24_32.1.temp = alloca i8, align 1, !dbg !73 -// CHECK:STDOUT: %.loc25_35.1.temp = alloca i16, align 2, !dbg !74 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_32.1.temp), !dbg !71 -// CHECK:STDOUT: call void @_Z8ReturnU8v.carbon_thunk.(ptr %.loc19_32.1.temp), !dbg !71 -// CHECK:STDOUT: %.loc19_32.4 = load i8, ptr %.loc19_32.1.temp, align 1, !dbg !71 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_35.1.temp), !dbg !72 -// CHECK:STDOUT: call void @_Z9ReturnU16v.carbon_thunk.(ptr %.loc20_35.1.temp), !dbg !72 -// CHECK:STDOUT: %.loc20_35.4 = load i16, ptr %.loc20_35.1.temp, align 2, !dbg !72 -// CHECK:STDOUT: %ReturnU32.call = call i32 @_Z9ReturnU32v(), !dbg !75 -// CHECK:STDOUT: %ReturnU64.call = call i64 @_Z9ReturnU64v(), !dbg !76 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_32.1.temp), !dbg !73 -// CHECK:STDOUT: call void @_Z8ReturnI8v.carbon_thunk.(ptr %.loc24_32.1.temp), !dbg !73 -// CHECK:STDOUT: %.loc24_32.4 = load i8, ptr %.loc24_32.1.temp, align 1, !dbg !73 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_35.1.temp), !dbg !74 -// CHECK:STDOUT: call void @_Z9ReturnI16v.carbon_thunk.(ptr %.loc25_35.1.temp), !dbg !74 -// CHECK:STDOUT: %.loc25_35.4 = load i16, ptr %.loc25_35.1.temp, align 2, !dbg !74 -// CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !77 -// CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !78 -// CHECK:STDOUT: call void @_CUse.Main(i8 %.loc19_32.4, i16 %.loc20_35.4, i32 %ReturnU32.call, i64 %ReturnU64.call, i8 %.loc24_32.4, i16 %.loc25_35.4, i32 %ReturnI32.call, i64 %ReturnI64.call), !dbg !79 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc25_35.1.temp), !dbg !74 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %.loc24_32.1.temp), !dbg !73 -// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %.loc20_35.1.temp), !dbg !72 -// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !71 -// CHECK:STDOUT: ret void, !dbg !80 +// CHECK:STDOUT: %.loc19_32.1.temp = alloca i8, align 1, !dbg !94 +// CHECK:STDOUT: %.loc20_35.1.temp = alloca i16, align 2, !dbg !97 +// CHECK:STDOUT: %.loc24_32.1.temp = alloca i8, align 1, !dbg !106 +// CHECK:STDOUT: %.loc25_35.1.temp = alloca i16, align 2, !dbg !109 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_32.1.temp), !dbg !94 +// CHECK:STDOUT: call void @_Z8ReturnU8v.carbon_thunk.(ptr %.loc19_32.1.temp), !dbg !94 +// CHECK:STDOUT: %.loc19_32.4 = load i8, ptr %.loc19_32.1.temp, align 1, !dbg !94 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_35.1.temp), !dbg !97 +// CHECK:STDOUT: call void @_Z9ReturnU16v.carbon_thunk.(ptr %.loc20_35.1.temp), !dbg !97 +// CHECK:STDOUT: %.loc20_35.4 = load i16, ptr %.loc20_35.1.temp, align 2, !dbg !97 +// CHECK:STDOUT: %ReturnU32.call = call i32 @_Z9ReturnU32v(), !dbg !100 +// CHECK:STDOUT: %ReturnU64.call = call i64 @_Z9ReturnU64v(), !dbg !103 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_32.1.temp), !dbg !106 +// CHECK:STDOUT: call void @_Z8ReturnI8v.carbon_thunk.(ptr %.loc24_32.1.temp), !dbg !106 +// CHECK:STDOUT: %.loc24_32.4 = load i8, ptr %.loc24_32.1.temp, align 1, !dbg !106 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_35.1.temp), !dbg !109 +// CHECK:STDOUT: call void @_Z9ReturnI16v.carbon_thunk.(ptr %.loc25_35.1.temp), !dbg !109 +// CHECK:STDOUT: %.loc25_35.4 = load i16, ptr %.loc25_35.1.temp, align 2, !dbg !109 +// CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !112 +// CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !115 +// CHECK:STDOUT: call void @_CUse.Main(i8 %.loc19_32.4, i16 %.loc20_35.4, i32 %ReturnU32.call, i64 %ReturnU64.call, i8 %.loc24_32.4, i16 %.loc25_35.4, i32 %ReturnI32.call, i64 %ReturnI64.call), !dbg !126 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %.loc25_35.1.temp), !dbg !109 +// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %.loc24_32.1.temp), !dbg !106 +// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %.loc20_35.1.temp), !dbg !97 +// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !94 +// CHECK:STDOUT: ret void, !dbg !127 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: define weak_odr void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %self) #0 !dbg !128 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !86 +// CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !87 { +// CHECK:STDOUT: define weak_odr void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %self) #0 !dbg !132 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !92 +// CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %self) #0 !dbg !93 { +// CHECK:STDOUT: define weak_odr void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %self) #0 !dbg !136 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !98 +// CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !99 { +// CHECK:STDOUT: define weak_odr void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %self) #0 !dbg !140 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !104 +// CHECK:STDOUT: ret void, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CVars.Main() #0 !dbg !105 { +// CHECK:STDOUT: define void @_CVars.Main() #0 !dbg !144 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %my_u8.var = alloca i8, align 1, !dbg !106 -// CHECK:STDOUT: %my_u16.var = alloca i16, align 2, !dbg !107 -// CHECK:STDOUT: %my_u32.var = alloca i32, align 4, !dbg !108 -// CHECK:STDOUT: %my_u64.var = alloca i64, align 8, !dbg !109 -// CHECK:STDOUT: %my_i8.var = alloca i8, align 1, !dbg !110 -// CHECK:STDOUT: %my_i16.var = alloca i16, align 2, !dbg !111 -// CHECK:STDOUT: %my_i32.var = alloca i32, align 4, !dbg !112 -// CHECK:STDOUT: %my_i64.var = alloca i64, align 8, !dbg !113 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u8.var), !dbg !106 -// CHECK:STDOUT: call void @_Z8ReturnU8v.carbon_thunk.(ptr %my_u8.var), !dbg !114 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u16.var), !dbg !107 -// CHECK:STDOUT: call void @_Z9ReturnU16v.carbon_thunk.(ptr %my_u16.var), !dbg !115 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u32.var), !dbg !108 -// CHECK:STDOUT: %ReturnU32.call = call i32 @_Z9ReturnU32v(), !dbg !116 -// CHECK:STDOUT: store i32 %ReturnU32.call, ptr %my_u32.var, align 4, !dbg !108 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u64.var), !dbg !109 -// CHECK:STDOUT: %ReturnU64.call = call i64 @_Z9ReturnU64v(), !dbg !117 -// CHECK:STDOUT: store i64 %ReturnU64.call, ptr %my_u64.var, align 8, !dbg !109 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i8.var), !dbg !110 -// CHECK:STDOUT: call void @_Z8ReturnI8v.carbon_thunk.(ptr %my_i8.var), !dbg !118 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i16.var), !dbg !111 -// CHECK:STDOUT: call void @_Z9ReturnI16v.carbon_thunk.(ptr %my_i16.var), !dbg !119 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i32.var), !dbg !112 -// CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !120 -// CHECK:STDOUT: store i32 %ReturnI32.call, ptr %my_i32.var, align 4, !dbg !112 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i64.var), !dbg !113 -// CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !121 -// CHECK:STDOUT: store i64 %ReturnI64.call, ptr %my_i64.var, align 8, !dbg !113 -// CHECK:STDOUT: %.loc43_7 = load i8, ptr %my_u8.var, align 1, !dbg !122 -// CHECK:STDOUT: %.loc43_14 = load i16, ptr %my_u16.var, align 2, !dbg !123 -// CHECK:STDOUT: %.loc43_22 = load i32, ptr %my_u32.var, align 4, !dbg !124 -// CHECK:STDOUT: %.loc43_30 = load i64, ptr %my_u64.var, align 8, !dbg !125 -// CHECK:STDOUT: %.loc43_38 = load i8, ptr %my_i8.var, align 1, !dbg !126 -// CHECK:STDOUT: %.loc43_45 = load i16, ptr %my_i16.var, align 2, !dbg !127 -// CHECK:STDOUT: %.loc43_53 = load i32, ptr %my_i32.var, align 4, !dbg !128 -// CHECK:STDOUT: %.loc43_61 = load i64, ptr %my_i64.var, align 8, !dbg !129 -// CHECK:STDOUT: call void @_CUse.Main(i8 %.loc43_7, i16 %.loc43_14, i32 %.loc43_22, i64 %.loc43_30, i8 %.loc43_38, i16 %.loc43_45, i32 %.loc43_53, i64 %.loc43_61), !dbg !130 -// CHECK:STDOUT: call void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %my_i64.var), !dbg !113 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %my_i32.var), !dbg !112 -// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %my_i16.var), !dbg !111 -// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %my_i8.var), !dbg !110 -// CHECK:STDOUT: call void @"_COp.8423634153f3fb6c:core.Destroy.Core"(ptr %my_u64.var), !dbg !109 -// CHECK:STDOUT: call void @"_COp.77fcb7cb81390d28:core.Destroy.Core"(ptr %my_u32.var), !dbg !108 -// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %my_u16.var), !dbg !107 -// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %my_u8.var), !dbg !106 -// CHECK:STDOUT: ret void, !dbg !131 +// CHECK:STDOUT: %my_u8.var = alloca i8, align 1, !dbg !145 +// CHECK:STDOUT: %my_u16.var = alloca i16, align 2, !dbg !148 +// CHECK:STDOUT: %my_u32.var = alloca i32, align 4, !dbg !151 +// CHECK:STDOUT: %my_u64.var = alloca i64, align 8, !dbg !154 +// CHECK:STDOUT: %my_i8.var = alloca i8, align 1, !dbg !157 +// CHECK:STDOUT: %my_i16.var = alloca i16, align 2, !dbg !160 +// CHECK:STDOUT: %my_i32.var = alloca i32, align 4, !dbg !163 +// CHECK:STDOUT: %my_i64.var = alloca i64, align 8, !dbg !166 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u8.var), !dbg !145 +// CHECK:STDOUT: call void @_Z8ReturnU8v.carbon_thunk.(ptr %my_u8.var), !dbg !146 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u16.var), !dbg !148 +// CHECK:STDOUT: call void @_Z9ReturnU16v.carbon_thunk.(ptr %my_u16.var), !dbg !149 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u32.var), !dbg !151 +// CHECK:STDOUT: %ReturnU32.call = call i32 @_Z9ReturnU32v(), !dbg !152 +// CHECK:STDOUT: store i32 %ReturnU32.call, ptr %my_u32.var, align 4, !dbg !151 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_u64.var), !dbg !154 +// CHECK:STDOUT: %ReturnU64.call = call i64 @_Z9ReturnU64v(), !dbg !155 +// CHECK:STDOUT: store i64 %ReturnU64.call, ptr %my_u64.var, align 8, !dbg !154 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i8.var), !dbg !157 +// CHECK:STDOUT: call void @_Z8ReturnI8v.carbon_thunk.(ptr %my_i8.var), !dbg !158 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i16.var), !dbg !160 +// CHECK:STDOUT: call void @_Z9ReturnI16v.carbon_thunk.(ptr %my_i16.var), !dbg !161 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i32.var), !dbg !163 +// CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !164 +// CHECK:STDOUT: store i32 %ReturnI32.call, ptr %my_i32.var, align 4, !dbg !163 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %my_i64.var), !dbg !166 +// CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !167 +// CHECK:STDOUT: store i64 %ReturnI64.call, ptr %my_i64.var, align 8, !dbg !166 +// CHECK:STDOUT: %.loc43_7 = load i8, ptr %my_u8.var, align 1, !dbg !169 +// CHECK:STDOUT: %.loc43_14 = load i16, ptr %my_u16.var, align 2, !dbg !170 +// CHECK:STDOUT: %.loc43_22 = load i32, ptr %my_u32.var, align 4, !dbg !171 +// CHECK:STDOUT: %.loc43_30 = load i64, ptr %my_u64.var, align 8, !dbg !172 +// CHECK:STDOUT: %.loc43_38 = load i8, ptr %my_i8.var, align 1, !dbg !173 +// CHECK:STDOUT: %.loc43_45 = load i16, ptr %my_i16.var, align 2, !dbg !174 +// CHECK:STDOUT: %.loc43_53 = load i32, ptr %my_i32.var, align 4, !dbg !175 +// CHECK:STDOUT: %.loc43_61 = load i64, ptr %my_i64.var, align 8, !dbg !176 +// CHECK:STDOUT: call void @_CUse.Main(i8 %.loc43_7, i16 %.loc43_14, i32 %.loc43_22, i64 %.loc43_30, i8 %.loc43_38, i16 %.loc43_45, i32 %.loc43_53, i64 %.loc43_61), !dbg !177 +// CHECK:STDOUT: call void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %my_i64.var), !dbg !166 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %my_i32.var), !dbg !163 +// CHECK:STDOUT: call void @"_COp.91f16365ca65525e:core.Destroy.Core"(ptr %my_i16.var), !dbg !160 +// CHECK:STDOUT: call void @"_COp.136cbc434fe80552:core.Destroy.Core"(ptr %my_i8.var), !dbg !157 +// CHECK:STDOUT: call void @"_COp.8423634153f3fb6c:core.Destroy.Core"(ptr %my_u64.var), !dbg !154 +// CHECK:STDOUT: call void @"_COp.77fcb7cb81390d28:core.Destroy.Core"(ptr %my_u32.var), !dbg !151 +// CHECK:STDOUT: call void @"_COp.d38552e658b9d7ce:core.Destroy.Core"(ptr %my_u16.var), !dbg !148 +// CHECK:STDOUT: call void @"_COp.becc1452ae1d9d7b:core.Destroy.Core"(ptr %my_u8.var), !dbg !145 +// CHECK:STDOUT: ret void, !dbg !178 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %self) #0 !dbg !132 { +// CHECK:STDOUT: define weak_odr void @"_COp.5f42013854821c52:core.Destroy.Core"(ptr %self) #0 !dbg !179 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !137 +// CHECK:STDOUT: ret void, !dbg !181 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !138 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !183 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !143 +// CHECK:STDOUT: ret void, !dbg !185 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8423634153f3fb6c:core.Destroy.Core"(ptr %self) #0 !dbg !144 { +// CHECK:STDOUT: define weak_odr void @"_COp.8423634153f3fb6c:core.Destroy.Core"(ptr %self) #0 !dbg !187 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !149 +// CHECK:STDOUT: ret void, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.77fcb7cb81390d28:core.Destroy.Core"(ptr %self) #0 !dbg !150 { +// CHECK:STDOUT: define weak_odr void @"_COp.77fcb7cb81390d28:core.Destroy.Core"(ptr %self) #0 !dbg !191 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !155 +// CHECK:STDOUT: ret void, !dbg !193 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -389,166 +389,166 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!205, !206, !207, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!210} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_ints.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "GetU8", linkageName: "_CGetU8.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 27, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 20, scope: !12) -// CHECK:STDOUT: !18 = !{!19, !19, i64 0} -// CHECK:STDOUT: !19 = !{!"p1 omnipotent char", !20, i64 0} -// CHECK:STDOUT: !20 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !21 = !{!10, !10, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "GetU16", linkageName: "_CGetU16.Main", scope: null, file: !1, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !26 = !DILocation(line: 7, column: 29, scope: !22) -// CHECK:STDOUT: !27 = !DILocation(line: 7, column: 22, scope: !22) -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"p1 short", !20, i64 0} -// CHECK:STDOUT: !30 = !{!31, !31, i64 0} -// CHECK:STDOUT: !31 = !{!"short", !10, i64 0} -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "GetU32", linkageName: "_CGetU32.Main", scope: null, file: !1, line: 8, type: !33, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !33 = !DISubroutineType(types: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !36 = !DILocation(line: 8, column: 29, scope: !32) -// CHECK:STDOUT: !37 = !DILocation(line: 8, column: 22, scope: !32) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "GetU64", linkageName: "_CGetU64.Main", scope: null, file: !1, line: 9, type: !39, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !39 = !DISubroutineType(types: !40) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !42 = !DILocation(line: 9, column: 29, scope: !38) -// CHECK:STDOUT: !43 = !DILocation(line: 9, column: 22, scope: !38) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "GetI8", linkageName: "_CGetI8.Main", scope: null, file: !1, line: 11, type: !45, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !45 = !DISubroutineType(types: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) -// CHECK:STDOUT: !48 = !DILocation(line: 11, column: 27, scope: !44) -// CHECK:STDOUT: !49 = !DILocation(line: 11, column: 20, scope: !44) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "GetI16", linkageName: "_CGetI16.Main", scope: null, file: !1, line: 12, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !51 = !DISubroutineType(types: !52) -// CHECK:STDOUT: !52 = !{!53} -// CHECK:STDOUT: !53 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !54 = !DILocation(line: 12, column: 29, scope: !50) -// CHECK:STDOUT: !55 = !DILocation(line: 12, column: 22, scope: !50) -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "GetI32", linkageName: "_CGetI32.Main", scope: null, file: !1, line: 13, type: !57, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !57 = !DISubroutineType(types: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !60 = !DILocation(line: 13, column: 29, scope: !56) -// CHECK:STDOUT: !61 = !DILocation(line: 13, column: 22, scope: !56) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "GetI64", linkageName: "_CGetI64.Main", scope: null, file: !1, line: 14, type: !63, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !63 = !DISubroutineType(types: !64) -// CHECK:STDOUT: !64 = !{!65} -// CHECK:STDOUT: !65 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !66 = !DILocation(line: 14, column: 29, scope: !62) -// CHECK:STDOUT: !67 = !DILocation(line: 14, column: 22, scope: !62) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Lets", linkageName: "_CLets.Main", scope: null, file: !1, line: 18, type: !69, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !69 = !DISubroutineType(types: !70) -// CHECK:STDOUT: !70 = !{null} -// CHECK:STDOUT: !71 = !DILocation(line: 19, column: 19, scope: !68) -// CHECK:STDOUT: !72 = !DILocation(line: 20, column: 21, scope: !68) -// CHECK:STDOUT: !73 = !DILocation(line: 24, column: 19, scope: !68) -// CHECK:STDOUT: !74 = !DILocation(line: 25, column: 21, scope: !68) -// CHECK:STDOUT: !75 = !DILocation(line: 21, column: 21, scope: !68) -// CHECK:STDOUT: !76 = !DILocation(line: 22, column: 21, scope: !68) -// CHECK:STDOUT: !77 = !DILocation(line: 26, column: 21, scope: !68) -// CHECK:STDOUT: !78 = !DILocation(line: 27, column: 21, scope: !68) -// CHECK:STDOUT: !79 = !DILocation(line: 29, column: 3, scope: !68) -// CHECK:STDOUT: !80 = !DILocation(line: 18, column: 1, scope: !68) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !1, line: 25, type: !82, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !84) -// CHECK:STDOUT: !82 = !DISubroutineType(types: !83) -// CHECK:STDOUT: !83 = !{null, !53} -// CHECK:STDOUT: !84 = !{!85} -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !81, type: !53) -// CHECK:STDOUT: !86 = !DILocation(line: 25, column: 21, scope: !81) -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !1, line: 24, type: !88, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !90) -// CHECK:STDOUT: !88 = !DISubroutineType(types: !89) -// CHECK:STDOUT: !89 = !{null, !47} -// CHECK:STDOUT: !90 = !{!91} -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !87, type: !47) -// CHECK:STDOUT: !92 = !DILocation(line: 24, column: 19, scope: !87) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d38552e658b9d7ce:core.Destroy.Core", scope: null, file: !1, line: 20, type: !94, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !96) -// CHECK:STDOUT: !94 = !DISubroutineType(types: !95) -// CHECK:STDOUT: !95 = !{null, !25} -// CHECK:STDOUT: !96 = !{!97} -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !93, type: !25) -// CHECK:STDOUT: !98 = !DILocation(line: 20, column: 21, scope: !93) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !1, line: 19, type: !100, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !102) -// CHECK:STDOUT: !100 = !DISubroutineType(types: !101) -// CHECK:STDOUT: !101 = !{null, !15} -// CHECK:STDOUT: !102 = !{!103} -// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !99, type: !15) -// CHECK:STDOUT: !104 = !DILocation(line: 19, column: 19, scope: !99) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Vars", linkageName: "_CVars.Main", scope: null, file: !1, line: 32, type: !69, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !106 = !DILocation(line: 33, column: 3, scope: !105) -// CHECK:STDOUT: !107 = !DILocation(line: 34, column: 3, scope: !105) -// CHECK:STDOUT: !108 = !DILocation(line: 35, column: 3, scope: !105) -// CHECK:STDOUT: !109 = !DILocation(line: 36, column: 3, scope: !105) -// CHECK:STDOUT: !110 = !DILocation(line: 38, column: 3, scope: !105) -// CHECK:STDOUT: !111 = !DILocation(line: 39, column: 3, scope: !105) -// CHECK:STDOUT: !112 = !DILocation(line: 40, column: 3, scope: !105) -// CHECK:STDOUT: !113 = !DILocation(line: 41, column: 3, scope: !105) -// CHECK:STDOUT: !114 = !DILocation(line: 33, column: 19, scope: !105) -// CHECK:STDOUT: !115 = !DILocation(line: 34, column: 21, scope: !105) -// CHECK:STDOUT: !116 = !DILocation(line: 35, column: 21, scope: !105) -// CHECK:STDOUT: !117 = !DILocation(line: 36, column: 21, scope: !105) -// CHECK:STDOUT: !118 = !DILocation(line: 38, column: 19, scope: !105) -// CHECK:STDOUT: !119 = !DILocation(line: 39, column: 21, scope: !105) -// CHECK:STDOUT: !120 = !DILocation(line: 40, column: 21, scope: !105) -// CHECK:STDOUT: !121 = !DILocation(line: 41, column: 21, scope: !105) -// CHECK:STDOUT: !122 = !DILocation(line: 43, column: 7, scope: !105) -// CHECK:STDOUT: !123 = !DILocation(line: 43, column: 14, scope: !105) -// CHECK:STDOUT: !124 = !DILocation(line: 43, column: 22, scope: !105) -// CHECK:STDOUT: !125 = !DILocation(line: 43, column: 30, scope: !105) -// CHECK:STDOUT: !126 = !DILocation(line: 43, column: 38, scope: !105) -// CHECK:STDOUT: !127 = !DILocation(line: 43, column: 45, scope: !105) -// CHECK:STDOUT: !128 = !DILocation(line: 43, column: 53, scope: !105) -// CHECK:STDOUT: !129 = !DILocation(line: 43, column: 61, scope: !105) -// CHECK:STDOUT: !130 = !DILocation(line: 43, column: 3, scope: !105) -// CHECK:STDOUT: !131 = !DILocation(line: 32, column: 1, scope: !105) -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f42013854821c52:core.Destroy.Core", scope: null, file: !1, line: 41, type: !133, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !135) -// CHECK:STDOUT: !133 = !DISubroutineType(types: !134) -// CHECK:STDOUT: !134 = !{null, !65} -// CHECK:STDOUT: !135 = !{!136} -// CHECK:STDOUT: !136 = !DILocalVariable(arg: 1, scope: !132, type: !65) -// CHECK:STDOUT: !137 = !DILocation(line: 41, column: 3, scope: !132) -// CHECK:STDOUT: !138 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 40, type: !139, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !141) -// CHECK:STDOUT: !139 = !DISubroutineType(types: !140) -// CHECK:STDOUT: !140 = !{null, !59} -// CHECK:STDOUT: !141 = !{!142} -// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !138, type: !59) -// CHECK:STDOUT: !143 = !DILocation(line: 40, column: 3, scope: !138) -// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8423634153f3fb6c:core.Destroy.Core", scope: null, file: !1, line: 36, type: !145, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !147) -// CHECK:STDOUT: !145 = !DISubroutineType(types: !146) -// CHECK:STDOUT: !146 = !{null, !41} -// CHECK:STDOUT: !147 = !{!148} -// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !144, type: !41) -// CHECK:STDOUT: !149 = !DILocation(line: 36, column: 3, scope: !144) -// CHECK:STDOUT: !150 = distinct !DISubprogram(name: "Op", linkageName: "_COp.77fcb7cb81390d28:core.Destroy.Core", scope: null, file: !1, line: 35, type: !151, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !153) -// CHECK:STDOUT: !151 = !DISubroutineType(types: !152) -// CHECK:STDOUT: !152 = !{null, !35} -// CHECK:STDOUT: !153 = !{!154} -// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !150, type: !35) -// CHECK:STDOUT: !155 = !DILocation(line: 35, column: 3, scope: !150) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "import_ints.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !9 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !10 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) +// CHECK:STDOUT: !11 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !14 = !{!6} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !19 = !{!7} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !{!8} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{!9} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !{!10} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = !{!11} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !29 = !{!12} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !31 = !{!13} +// CHECK:STDOUT: !32 = !DISubroutineType(types: !31) +// CHECK:STDOUT: !35 = !{null} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !{null, !11} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !{null, !10} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = !{null, !7} +// CHECK:STDOUT: !42 = !DISubroutineType(types: !41) +// CHECK:STDOUT: !43 = !{null, !6} +// CHECK:STDOUT: !44 = !DISubroutineType(types: !43) +// CHECK:STDOUT: !45 = !{null, !13} +// CHECK:STDOUT: !46 = !DISubroutineType(types: !45) +// CHECK:STDOUT: !47 = !{null, !12} +// CHECK:STDOUT: !48 = !DISubroutineType(types: !47) +// CHECK:STDOUT: !49 = !{null, !9} +// CHECK:STDOUT: !50 = !DISubroutineType(types: !49) +// CHECK:STDOUT: !51 = !{null, !8} +// CHECK:STDOUT: !52 = !DISubroutineType(types: !51) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "GetU8", linkageName: "_CGetU8.Main", scope: null, file: !4, line: 6, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !56 = !DILocation(line: 6, column: 27, scope: !53) +// CHECK:STDOUT: !57 = !DILocation(line: 6, column: 20, scope: !53) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "GetU16", linkageName: "_CGetU16.Main", scope: null, file: !4, line: 7, type: !20, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !61 = !DILocation(line: 7, column: 29, scope: !58) +// CHECK:STDOUT: !62 = !DILocation(line: 7, column: 22, scope: !58) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "GetU32", linkageName: "_CGetU32.Main", scope: null, file: !4, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !66 = !DILocation(line: 8, column: 29, scope: !63) +// CHECK:STDOUT: !67 = !DILocation(line: 8, column: 22, scope: !63) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "GetU64", linkageName: "_CGetU64.Main", scope: null, file: !4, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !71 = !DILocation(line: 9, column: 29, scope: !68) +// CHECK:STDOUT: !72 = !DILocation(line: 9, column: 22, scope: !68) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "GetI8", linkageName: "_CGetI8.Main", scope: null, file: !4, line: 11, type: !26, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !76 = !DILocation(line: 11, column: 27, scope: !73) +// CHECK:STDOUT: !77 = !DILocation(line: 11, column: 20, scope: !73) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "GetI16", linkageName: "_CGetI16.Main", scope: null, file: !4, line: 12, type: !28, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !81 = !DILocation(line: 12, column: 29, scope: !78) +// CHECK:STDOUT: !82 = !DILocation(line: 12, column: 22, scope: !78) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "GetI32", linkageName: "_CGetI32.Main", scope: null, file: !4, line: 13, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !86 = !DILocation(line: 13, column: 29, scope: !83) +// CHECK:STDOUT: !87 = !DILocation(line: 13, column: 22, scope: !83) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "GetI64", linkageName: "_CGetI64.Main", scope: null, file: !4, line: 14, type: !32, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !91 = !DILocation(line: 14, column: 29, scope: !88) +// CHECK:STDOUT: !92 = !DILocation(line: 14, column: 22, scope: !88) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Lets", linkageName: "_CLets.Main", scope: null, file: !4, line: 18, type: !36, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !94 = !DILocation(line: 19, column: 19, scope: !93) +// CHECK:STDOUT: !97 = !DILocation(line: 20, column: 21, scope: !93) +// CHECK:STDOUT: !100 = !DILocation(line: 21, column: 21, scope: !93) +// CHECK:STDOUT: !103 = !DILocation(line: 22, column: 21, scope: !93) +// CHECK:STDOUT: !106 = !DILocation(line: 24, column: 19, scope: !93) +// CHECK:STDOUT: !109 = !DILocation(line: 25, column: 21, scope: !93) +// CHECK:STDOUT: !112 = !DILocation(line: 26, column: 21, scope: !93) +// CHECK:STDOUT: !115 = !DILocation(line: 27, column: 21, scope: !93) +// CHECK:STDOUT: !126 = !DILocation(line: 29, column: 3, scope: !93) +// CHECK:STDOUT: !127 = !DILocation(line: 18, column: 1, scope: !93) +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "Op", linkageName: "_COp.91f16365ca65525e:core.Destroy.Core", scope: null, file: !4, line: 25, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !131) +// CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !128, type: !11) +// CHECK:STDOUT: !130 = !DILocation(line: 25, column: 21, scope: !128) +// CHECK:STDOUT: !131 = !{!129} +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Op", linkageName: "_COp.136cbc434fe80552:core.Destroy.Core", scope: null, file: !4, line: 24, type: !40, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !135) +// CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !132, type: !10) +// CHECK:STDOUT: !134 = !DILocation(line: 24, column: 19, scope: !132) +// CHECK:STDOUT: !135 = !{!133} +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d38552e658b9d7ce:core.Destroy.Core", scope: null, file: !4, line: 20, type: !42, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !139) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !7) +// CHECK:STDOUT: !138 = !DILocation(line: 20, column: 21, scope: !136) +// CHECK:STDOUT: !139 = !{!137} +// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Op", linkageName: "_COp.becc1452ae1d9d7b:core.Destroy.Core", scope: null, file: !4, line: 19, type: !44, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !143) +// CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !140, type: !6) +// CHECK:STDOUT: !142 = !DILocation(line: 19, column: 19, scope: !140) +// CHECK:STDOUT: !143 = !{!141} +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Vars", linkageName: "_CVars.Main", scope: null, file: !4, line: 32, type: !36, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !145 = !DILocation(line: 33, column: 3, scope: !144) +// CHECK:STDOUT: !146 = !DILocation(line: 33, column: 19, scope: !144) +// CHECK:STDOUT: !148 = !DILocation(line: 34, column: 3, scope: !144) +// CHECK:STDOUT: !149 = !DILocation(line: 34, column: 21, scope: !144) +// CHECK:STDOUT: !151 = !DILocation(line: 35, column: 3, scope: !144) +// CHECK:STDOUT: !152 = !DILocation(line: 35, column: 21, scope: !144) +// CHECK:STDOUT: !154 = !DILocation(line: 36, column: 3, scope: !144) +// CHECK:STDOUT: !155 = !DILocation(line: 36, column: 21, scope: !144) +// CHECK:STDOUT: !157 = !DILocation(line: 38, column: 3, scope: !144) +// CHECK:STDOUT: !158 = !DILocation(line: 38, column: 19, scope: !144) +// CHECK:STDOUT: !160 = !DILocation(line: 39, column: 3, scope: !144) +// CHECK:STDOUT: !161 = !DILocation(line: 39, column: 21, scope: !144) +// CHECK:STDOUT: !163 = !DILocation(line: 40, column: 3, scope: !144) +// CHECK:STDOUT: !164 = !DILocation(line: 40, column: 21, scope: !144) +// CHECK:STDOUT: !166 = !DILocation(line: 41, column: 3, scope: !144) +// CHECK:STDOUT: !167 = !DILocation(line: 41, column: 21, scope: !144) +// CHECK:STDOUT: !169 = !DILocation(line: 43, column: 7, scope: !144) +// CHECK:STDOUT: !170 = !DILocation(line: 43, column: 14, scope: !144) +// CHECK:STDOUT: !171 = !DILocation(line: 43, column: 22, scope: !144) +// CHECK:STDOUT: !172 = !DILocation(line: 43, column: 30, scope: !144) +// CHECK:STDOUT: !173 = !DILocation(line: 43, column: 38, scope: !144) +// CHECK:STDOUT: !174 = !DILocation(line: 43, column: 45, scope: !144) +// CHECK:STDOUT: !175 = !DILocation(line: 43, column: 53, scope: !144) +// CHECK:STDOUT: !176 = !DILocation(line: 43, column: 61, scope: !144) +// CHECK:STDOUT: !177 = !DILocation(line: 43, column: 3, scope: !144) +// CHECK:STDOUT: !178 = !DILocation(line: 32, column: 1, scope: !144) +// CHECK:STDOUT: !179 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5f42013854821c52:core.Destroy.Core", scope: null, file: !4, line: 41, type: !46, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !182) +// CHECK:STDOUT: !180 = !DILocalVariable(arg: 1, scope: !179, type: !13) +// CHECK:STDOUT: !181 = !DILocation(line: 41, column: 3, scope: !179) +// CHECK:STDOUT: !182 = !{!180} +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 40, type: !48, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !186) +// CHECK:STDOUT: !184 = !DILocalVariable(arg: 1, scope: !183, type: !12) +// CHECK:STDOUT: !185 = !DILocation(line: 40, column: 3, scope: !183) +// CHECK:STDOUT: !186 = !{!184} +// CHECK:STDOUT: !187 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8423634153f3fb6c:core.Destroy.Core", scope: null, file: !4, line: 36, type: !50, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !190) +// CHECK:STDOUT: !188 = !DILocalVariable(arg: 1, scope: !187, type: !9) +// CHECK:STDOUT: !189 = !DILocation(line: 36, column: 3, scope: !187) +// CHECK:STDOUT: !190 = !{!188} +// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "Op", linkageName: "_COp.77fcb7cb81390d28:core.Destroy.Core", scope: null, file: !4, line: 35, type: !52, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) +// CHECK:STDOUT: !192 = !DILocalVariable(arg: 1, scope: !191, type: !8) +// CHECK:STDOUT: !193 = !DILocation(line: 35, column: 3, scope: !191) +// CHECK:STDOUT: !194 = !{!192} +// CHECK:STDOUT: !195 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !196 = !{!"omnipotent char", !195, i64 0} +// CHECK:STDOUT: !197 = !{!"any pointer", !196, i64 0} +// CHECK:STDOUT: !198 = !{!"p1 omnipotent char", !197, i64 0} +// CHECK:STDOUT: !199 = !{!198, !198, i64 0} +// CHECK:STDOUT: !200 = !{!196, !196, i64 0} +// CHECK:STDOUT: !201 = !{!"short", !196, i64 0} +// CHECK:STDOUT: !202 = !{!"p1 short", !197, i64 0} +// CHECK:STDOUT: !203 = !{!202, !202, i64 0} +// CHECK:STDOUT: !204 = !{!201, !201, i64 0} +// CHECK:STDOUT: !205 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !206 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !207 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !208 = !{!"int", !196, i64 0} +// CHECK:STDOUT: !209 = !{!"__libc_errno", !208, i64 0} +// CHECK:STDOUT: !210 = !{!209, !208, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_class.carbon' @@ -559,43 +559,43 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %struct.X = type { ptr, ptr } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CGetX.Main(ptr sret([16 x i8]) %return) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CGetX.Main(ptr sret([16 x i8]) %return) #0 !dbg !215 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z4Makev.carbon_thunk.(ptr %return), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @_Z4Makev.carbon_thunk.(ptr %return), !dbg !218 +// CHECK:STDOUT: ret void, !dbg !219 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z4Makev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !231 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !231 // CHECK:STDOUT: call void @_Z4Makev(ptr dead_on_unwind writable sret(%struct.X) align 8 %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CLet.Main() #0 !dbg !21 { +// CHECK:STDOUT: define void @_CLet.Main() #0 !dbg !220 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_27.1.temp = alloca [16 x i8], align 8, !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_27.1.temp), !dbg !24 -// CHECK:STDOUT: call void @_Z4Makev.carbon_thunk.(ptr %.loc9_27.1.temp), !dbg !24 -// CHECK:STDOUT: call void @_ZN1XD1Ev(ptr %.loc9_27.1.temp), !dbg !24 -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: %.loc9_27.1.temp = alloca [16 x i8], align 8, !dbg !221 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_27.1.temp), !dbg !221 +// CHECK:STDOUT: call void @_Z4Makev.carbon_thunk.(ptr %.loc9_27.1.temp), !dbg !221 +// CHECK:STDOUT: call void @_ZN1XD1Ev(ptr %.loc9_27.1.temp), !dbg !221 +// CHECK:STDOUT: ret void, !dbg !224 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: declare void @_ZN1XD1Ev(ptr noundef nonnull align 8 dead_on_return(16) dereferenceable(16)) unnamed_addr #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CVar.Main() #0 !dbg !26 { +// CHECK:STDOUT: define void @_CVar.Main() #0 !dbg !225 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !27 -// CHECK:STDOUT: call void @_Z4Makev.carbon_thunk.(ptr %_.var), !dbg !28 -// CHECK:STDOUT: call void @_ZN1XD1Ev(ptr %_.var), !dbg !27 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !226 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !226 +// CHECK:STDOUT: call void @_Z4Makev.carbon_thunk.(ptr %_.var), !dbg !227 +// CHECK:STDOUT: call void @_ZN1XD1Ev(ptr %_.var), !dbg !226 +// CHECK:STDOUT: ret void, !dbg !229 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -612,40 +612,40 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!212} +// CHECK:STDOUT: !llvm.module.flags = !{!205, !206, !207, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!210} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_class.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "GetX", linkageName: "_CGetX.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 29, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 22, scope: !12) -// CHECK:STDOUT: !18 = !{!19, !19, i64 0} -// CHECK:STDOUT: !19 = !{!"p1 _ZTS1X", !20, i64 0} -// CHECK:STDOUT: !20 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Let", linkageName: "_CLet.Main", scope: null, file: !1, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null} -// CHECK:STDOUT: !24 = !DILocation(line: 9, column: 18, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 8, column: 1, scope: !21) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Var", linkageName: "_CVar.Main", scope: null, file: !1, line: 12, type: !22, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !27 = !DILocation(line: 13, column: 3, scope: !26) -// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 18, scope: !26) -// CHECK:STDOUT: !29 = !DILocation(line: 12, column: 1, scope: !26) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !195 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !196 = !{!"omnipotent char", !195, i64 0} +// CHECK:STDOUT: !197 = !{!"any pointer", !196, i64 0} +// CHECK:STDOUT: !205 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !206 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !207 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !208 = !{!"int", !196, i64 0} +// CHECK:STDOUT: !209 = !{!"__libc_errno", !208, i64 0} +// CHECK:STDOUT: !210 = !{!209, !208, i64 0} +// CHECK:STDOUT: !211 = !DIFile(filename: "import_class.carbon", directory: "") +// CHECK:STDOUT: !212 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !211, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !213 = !{!16} +// CHECK:STDOUT: !214 = !DISubroutineType(types: !213) +// CHECK:STDOUT: !215 = distinct !DISubprogram(name: "GetX", linkageName: "_CGetX.Main", scope: null, file: !211, line: 6, type: !214, spFlags: DISPFlagDefinition, unit: !212) +// CHECK:STDOUT: !218 = !DILocation(line: 6, column: 29, scope: !215) +// CHECK:STDOUT: !219 = !DILocation(line: 6, column: 22, scope: !215) +// CHECK:STDOUT: !220 = distinct !DISubprogram(name: "Let", linkageName: "_CLet.Main", scope: null, file: !211, line: 8, type: !36, spFlags: DISPFlagDefinition, unit: !212) +// CHECK:STDOUT: !221 = !DILocation(line: 9, column: 18, scope: !220) +// CHECK:STDOUT: !224 = !DILocation(line: 8, column: 1, scope: !220) +// CHECK:STDOUT: !225 = distinct !DISubprogram(name: "Var", linkageName: "_CVar.Main", scope: null, file: !211, line: 12, type: !36, spFlags: DISPFlagDefinition, unit: !212) +// CHECK:STDOUT: !226 = !DILocation(line: 13, column: 3, scope: !225) +// CHECK:STDOUT: !227 = !DILocation(line: 13, column: 18, scope: !225) +// CHECK:STDOUT: !229 = !DILocation(line: 12, column: 1, scope: !225) +// CHECK:STDOUT: !230 = !{!"p1 _ZTS1X", !197, i64 0} +// CHECK:STDOUT: !231 = !{!230, !230, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'indirect_return_with_args.carbon' @@ -657,10 +657,10 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %class.C = type { i8 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr sret({}) %return, ptr %x) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall.Main(ptr sret({}) %return, ptr %x) #0 !dbg !239 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z1f1D.carbon_thunk._(ptr %x, ptr %return), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z1f1D.carbon_thunk._(ptr %x, ptr %return), !dbg !245 +// CHECK:STDOUT: ret void, !dbg !246 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -670,10 +670,10 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.D, align 1 // CHECK:STDOUT: %undef.agg.tmp = alloca %class.C, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !20 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !23 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !23 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !249 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !251 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !251 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !249 // CHECK:STDOUT: call void @_Z1f1D() // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -684,33 +684,33 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: attributes #1 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!234} +// CHECK:STDOUT: !llvm.module.flags = !{!205, !206, !207, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!210} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "indirect_return_with_args.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 11, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS1D", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = !{!24, !24, i64 0} -// CHECK:STDOUT: !24 = !{!"p1 _ZTS1C", !22, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !195 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !196 = !{!"omnipotent char", !195, i64 0} +// CHECK:STDOUT: !197 = !{!"any pointer", !196, i64 0} +// CHECK:STDOUT: !205 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !206 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !207 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !208 = !{!"int", !196, i64 0} +// CHECK:STDOUT: !209 = !{!"__libc_errno", !208, i64 0} +// CHECK:STDOUT: !210 = !{!209, !208, i64 0} +// CHECK:STDOUT: !233 = !DIFile(filename: "indirect_return_with_args.carbon", directory: "") +// CHECK:STDOUT: !234 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !233, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !235 = !{!16, !16} +// CHECK:STDOUT: !236 = !DISubroutineType(types: !235) +// CHECK:STDOUT: !239 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !233, line: 10, type: !236, spFlags: DISPFlagDefinition, unit: !234, retainedNodes: !247) +// CHECK:STDOUT: !240 = !DILocalVariable(arg: 1, scope: !239, type: !16) +// CHECK:STDOUT: !245 = !DILocation(line: 11, column: 10, scope: !239) +// CHECK:STDOUT: !246 = !DILocation(line: 11, column: 3, scope: !239) +// CHECK:STDOUT: !247 = !{!240} +// CHECK:STDOUT: !248 = !{!"p1 _ZTS1D", !197, i64 0} +// CHECK:STDOUT: !249 = !{!248, !248, i64 0} +// CHECK:STDOUT: !250 = !{!"p1 _ZTS1C", !197, i64 0} +// CHECK:STDOUT: !251 = !{!250, !250, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/globals.carbon b/toolchain/lower/testdata/interop/cpp/globals.carbon index 703ca76f855a..32c493e90b1e 100644 --- a/toolchain/lower/testdata/interop/cpp/globals.carbon +++ b/toolchain/lower/testdata/interop/cpp/globals.carbon @@ -165,33 +165,33 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: @global = dso_local global %class.C zeroinitializer, align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CMyF.Main() #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!24} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_global.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !1 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !2 = !{!"omnipotent char", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"int", !2, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !23 = !DIFile(filename: "import_global.carbon", directory: "") +// CHECK:STDOUT: !24 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !23, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !25 = !{null} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "MyF", linkageName: "_CMyF.Main", scope: null, file: !23, line: 6, type: !26, spFlags: DISPFlagDefinition, unit: !24) +// CHECK:STDOUT: !31 = !DILocation(line: 6, column: 1, scope: !27) +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !3, i64 0} +// CHECK:STDOUT: !36 = !{!35, !3, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_inline.carbon' @@ -273,10 +273,10 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: declare void @__cxa_guard_release(ptr) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallF.Main() #1 !dbg !12 { +// CHECK:STDOUT: define void @_CCallF.Main() #1 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN7InlineC1fEv(ptr @inline_global), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_ZN7InlineC1fEv(ptr @inline_global), !dbg !43 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_ZN7InlineC1fEv(ptr noundef nonnull align 1 dereferenceable(1)) #2 @@ -290,27 +290,27 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!38} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_inline.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 1, scope: !12) +// CHECK:STDOUT: !1 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !2 = !{!"omnipotent char", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"int", !2, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !25 = !{null} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !3, i64 0} +// CHECK:STDOUT: !36 = !{!35, !3, i64 0} +// CHECK:STDOUT: !37 = !DIFile(filename: "import_inline.carbon", directory: "") +// CHECK:STDOUT: !38 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !37, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !37, line: 6, type: !26, spFlags: DISPFlagDefinition, unit: !38) +// CHECK:STDOUT: !43 = !DILocation(line: 7, column: 3, scope: !42) +// CHECK:STDOUT: !44 = !DILocation(line: 6, column: 1, scope: !42) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'todo_import_thread_local.carbon' @@ -333,7 +333,7 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: entry: // CHECK:STDOUT: %call = call noundef i32 @_Z4initv() // CHECK:STDOUT: %0 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @thread_local_global_with_init) -// CHECK:STDOUT: store i32 %call, ptr %0, align 4, !tbaa !12 +// CHECK:STDOUT: store i32 %call, ptr %0, align 4, !tbaa !4 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -343,17 +343,17 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CThreadLocalStore.Main() #3 !dbg !13 { +// CHECK:STDOUT: define void @_CThreadLocalStore.Main() #3 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 42, ptr @thread_local_global, align 4, !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: store i32 42, ptr @thread_local_global, align 4, !dbg !51 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CThreadLocalTriggerInit.Main() #3 !dbg !18 { +// CHECK:STDOUT: define i32 @_CThreadLocalTriggerInit.Main() #3 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14 = load i32, ptr @thread_local_global_with_init, align 4, !dbg !22 -// CHECK:STDOUT: ret i32 %.loc14, !dbg !23 +// CHECK:STDOUT: %.loc14 = load i32, ptr @thread_local_global_with_init, align 4, !dbg !56 +// CHECK:STDOUT: ret i32 %.loc14, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: uwtable @@ -361,7 +361,7 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: entry: // CHECK:STDOUT: %0 = load i8, ptr @__tls_guard, align 1 // CHECK:STDOUT: %guard.uninitialized = icmp eq i8 %0, 0 -// CHECK:STDOUT: br i1 %guard.uninitialized, label %init, label %exit, !prof !24 +// CHECK:STDOUT: br i1 %guard.uninitialized, label %init, label %exit, !prof !58 // CHECK:STDOUT: // CHECK:STDOUT: init: ; preds = %entry // CHECK:STDOUT: store i8 1, ptr @__tls_guard, align 1 @@ -396,35 +396,35 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #5 = { uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!46} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "todo_import_thread_local.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!9, !9, i64 0} -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "ThreadLocalStore", linkageName: "_CThreadLocalStore.Main", scope: null, file: !1, line: 9, type: !14, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null} -// CHECK:STDOUT: !16 = !DILocation(line: 10, column: 3, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 1, scope: !13) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "ThreadLocalTriggerInit", linkageName: "_CThreadLocalTriggerInit.Main", scope: null, file: !1, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !22 = !DILocation(line: 14, column: 10, scope: !18) -// CHECK:STDOUT: !23 = !DILocation(line: 14, column: 3, scope: !18) -// CHECK:STDOUT: !24 = !{!"branch_weights", i32 1, i32 1023} +// CHECK:STDOUT: !1 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !2 = !{!"omnipotent char", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"int", !2, i64 0} +// CHECK:STDOUT: !4 = !{!3, !3, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !25 = !{null} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !3, i64 0} +// CHECK:STDOUT: !36 = !{!35, !3, i64 0} +// CHECK:STDOUT: !45 = !DIFile(filename: "todo_import_thread_local.carbon", directory: "") +// CHECK:STDOUT: !46 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !45, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !47 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !48 = !{!47} +// CHECK:STDOUT: !49 = !DISubroutineType(types: !48) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "ThreadLocalStore", linkageName: "_CThreadLocalStore.Main", scope: null, file: !45, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !46) +// CHECK:STDOUT: !51 = !DILocation(line: 10, column: 3, scope: !50) +// CHECK:STDOUT: !52 = !DILocation(line: 9, column: 1, scope: !50) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "ThreadLocalTriggerInit", linkageName: "_CThreadLocalTriggerInit.Main", scope: null, file: !45, line: 13, type: !49, spFlags: DISPFlagDefinition, unit: !46) +// CHECK:STDOUT: !56 = !DILocation(line: 14, column: 10, scope: !53) +// CHECK:STDOUT: !57 = !DILocation(line: 14, column: 3, scope: !53) +// CHECK:STDOUT: !58 = !{!"branch_weights", i32 1, i32 1023} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_static.carbon' @@ -437,36 +437,36 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: @_ZN1X1nE = linkonce_odr dso_local global i32 42, comdat, align 4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CReadStatic.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CReadStatic.Main() #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7 = load i32, ptr @_ZN1X1nE, align 4, !dbg !16 -// CHECK:STDOUT: ret i32 %.loc7, !dbg !17 +// CHECK:STDOUT: %.loc7 = load i32, ptr @_ZN1X1nE, align 4, !dbg !64 +// CHECK:STDOUT: ret i32 %.loc7, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!60} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_static.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ReadStatic", linkageName: "_CReadStatic.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !12) +// CHECK:STDOUT: !1 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !2 = !{!"omnipotent char", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"int", !2, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !3, i64 0} +// CHECK:STDOUT: !36 = !{!35, !3, i64 0} +// CHECK:STDOUT: !47 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !48 = !{!47} +// CHECK:STDOUT: !49 = !DISubroutineType(types: !48) +// CHECK:STDOUT: !59 = !DIFile(filename: "import_static.carbon", directory: "") +// CHECK:STDOUT: !60 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !59, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "ReadStatic", linkageName: "_CReadStatic.Main", scope: null, file: !59, line: 6, type: !49, spFlags: DISPFlagDefinition, unit: !60) +// CHECK:STDOUT: !64 = !DILocation(line: 7, column: 10, scope: !61) +// CHECK:STDOUT: !65 = !DILocation(line: 7, column: 3, scope: !61) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_var_template.carbon' @@ -480,47 +480,47 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: @_Z4tmplI1YE = external global %struct.Y, align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CReadVarTemplate.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CReadVarTemplate.Main() #0 !dbg !70 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7 = load i32, ptr @_Z4tmplIiE, align 4, !dbg !16 -// CHECK:STDOUT: ret i32 %.loc7, !dbg !17 +// CHECK:STDOUT: %.loc7 = load i32, ptr @_Z4tmplIiE, align 4, !dbg !73 +// CHECK:STDOUT: ret i32 %.loc7, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReadVarTemplateWithConstructor.Main() #0 !dbg !18 { +// CHECK:STDOUT: define ptr @_CReadVarTemplateWithConstructor.Main() #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_Z4tmplI1YE, !dbg !22 +// CHECK:STDOUT: ret ptr @_Z4tmplI1YE, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!67} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_var_template.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ReadVarTemplate", linkageName: "_CReadVarTemplate.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "ReadVarTemplateWithConstructor", linkageName: "_CReadVarTemplateWithConstructor.Main", scope: null, file: !1, line: 10, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 3, scope: !18) +// CHECK:STDOUT: !1 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !2 = !{!"omnipotent char", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"int", !2, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !3, i64 0} +// CHECK:STDOUT: !36 = !{!35, !3, i64 0} +// CHECK:STDOUT: !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !47 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !48 = !{!47} +// CHECK:STDOUT: !49 = !DISubroutineType(types: !48) +// CHECK:STDOUT: !66 = !DIFile(filename: "import_var_template.carbon", directory: "") +// CHECK:STDOUT: !67 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !66, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !68 = !{!39} +// CHECK:STDOUT: !69 = !DISubroutineType(types: !68) +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "ReadVarTemplate", linkageName: "_CReadVarTemplate.Main", scope: null, file: !66, line: 6, type: !49, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !73 = !DILocation(line: 7, column: 10, scope: !70) +// CHECK:STDOUT: !74 = !DILocation(line: 7, column: 3, scope: !70) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "ReadVarTemplateWithConstructor", linkageName: "_CReadVarTemplateWithConstructor.Main", scope: null, file: !66, line: 10, type: !69, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !78 = !DILocation(line: 11, column: 3, scope: !75) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_static_template.carbon' @@ -534,45 +534,45 @@ fn ReadStaticVarTemplateWithConstructor() -> Cpp.Y* { // CHECK:STDOUT: @_ZN11StaticTmplX11static_tmplI1YEE = external global %struct.Y.26, align 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CReadStaticVarTemplate.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CReadStaticVarTemplate.Main() #0 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7 = load i32, ptr @_ZN11StaticTmplX11static_tmplIiEE, align 4, !dbg !16 -// CHECK:STDOUT: ret i32 %.loc7, !dbg !17 +// CHECK:STDOUT: %.loc7 = load i32, ptr @_ZN11StaticTmplX11static_tmplIiEE, align 4, !dbg !84 +// CHECK:STDOUT: ret i32 %.loc7, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReadStaticVarTemplateWithConstructor.Main() #0 !dbg !18 { +// CHECK:STDOUT: define ptr @_CReadStaticVarTemplateWithConstructor.Main() #0 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_ZN11StaticTmplX11static_tmplI1YEE, !dbg !22 +// CHECK:STDOUT: ret ptr @_ZN11StaticTmplX11static_tmplI1YEE, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!80} +// CHECK:STDOUT: !llvm.module.flags = !{!32, !33, !34, !7, !8} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!36} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_static_template.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ReadStaticVarTemplate", linkageName: "_CReadStaticVarTemplate.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "ReadStaticVarTemplateWithConstructor", linkageName: "_CReadStaticVarTemplateWithConstructor.Main", scope: null, file: !1, line: 10, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 3, scope: !18) +// CHECK:STDOUT: !1 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !2 = !{!"omnipotent char", !1, i64 0} +// CHECK:STDOUT: !3 = !{!"int", !2, i64 0} +// CHECK:STDOUT: !7 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !8 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !33 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !34 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !35 = !{!"__libc_errno", !3, i64 0} +// CHECK:STDOUT: !36 = !{!35, !3, i64 0} +// CHECK:STDOUT: !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !47 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !48 = !{!47} +// CHECK:STDOUT: !49 = !DISubroutineType(types: !48) +// CHECK:STDOUT: !68 = !{!39} +// CHECK:STDOUT: !69 = !DISubroutineType(types: !68) +// CHECK:STDOUT: !79 = !DIFile(filename: "import_static_template.carbon", directory: "") +// CHECK:STDOUT: !80 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !79, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "ReadStaticVarTemplate", linkageName: "_CReadStaticVarTemplate.Main", scope: null, file: !79, line: 6, type: !49, spFlags: DISPFlagDefinition, unit: !80) +// CHECK:STDOUT: !84 = !DILocation(line: 7, column: 10, scope: !81) +// CHECK:STDOUT: !85 = !DILocation(line: 7, column: 3, scope: !81) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "ReadStaticVarTemplateWithConstructor", linkageName: "_CReadStaticVarTemplateWithConstructor.Main", scope: null, file: !79, line: 10, type: !69, spFlags: DISPFlagDefinition, unit: !80) +// CHECK:STDOUT: !89 = !DILocation(line: 11, column: 3, scope: !86) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/issue7142.carbon b/toolchain/lower/testdata/interop/cpp/issue7142.carbon index 63067d3c2830..604f9b959983 100644 --- a/toolchain/lower/testdata/interop/cpp/issue7142.carbon +++ b/toolchain/lower/testdata/interop/cpp/issue7142.carbon @@ -49,7 +49,7 @@ void f() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %call = call noundef ptr @_ZN6CarbonL3GetEv() // CHECK:STDOUT: %price = getelementptr inbounds nuw %"class.Carbon::A", ptr %call, i32 0, i32 0 -// CHECK:STDOUT: %0 = load i32, ptr %price, align 4, !tbaa !12 +// CHECK:STDOUT: %0 = load i32, ptr %price, align 4, !tbaa !38 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -58,34 +58,34 @@ void f() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CGet__carbon_thunk.Main(ptr %_) #1 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Get.call = call ptr @_CGet.Main(), !dbg !20 -// CHECK:STDOUT: store ptr %Get.call, ptr %_, align 8, !dbg !20 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %Get.call = call ptr @_CGet.Main(), !dbg !16 +// CHECK:STDOUT: store ptr %Get.call, ptr %_, align 8, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #2 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #2 !dbg !18 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !20 +// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #1 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self), !dbg !24 // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #1 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.7a7bf93ecb3607ea:core.Destroy.Core"(ptr %self) #1 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7a7bf93ecb3607ea:core.Destroy.Core"(ptr %self) #1 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #1 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !35 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e649d414b9e7644a:core.Destroy.Core"(ptr %self) #1 !dbg !36 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable @@ -102,48 +102,48 @@ void f() { // CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } // CHECK:STDOUT: attributes #3 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!41, !42, !43, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!45} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "issue7142.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!13, !9, i64 0} -// CHECK:STDOUT: !13 = !{!"_ZTSN6Carbon1AE", !9, i64 0} -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Get__carbon_thunk", linkageName: "_CGet__carbon_thunk.Main", scope: null, file: !1, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 16, column: 1, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.A.Main", scope: null, file: !1, line: 15, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !17) -// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 1, scope: !21) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{null, !28} -// CHECK:STDOUT: !28 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !28) -// CHECK:STDOUT: !31 = !DILocation(line: 15, column: 1, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7a7bf93ecb3607ea:core.Destroy.Core", scope: null, file: !1, line: 15, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !33 = !{!34} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !17) -// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !1, line: 15, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !17) -// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 1, scope: !36) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "issue7142.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !7} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Get__carbon_thunk", linkageName: "_CGet__carbon_thunk.Main", scope: null, file: !4, line: 16, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !17) +// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !14, type: !7) +// CHECK:STDOUT: !16 = !DILocation(line: 16, column: 1, scope: !14) +// CHECK:STDOUT: !17 = !{!15} +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "__destroy_thunk", linkageName: "_C__destroy_thunk:thunk.A.Main", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !7) +// CHECK:STDOUT: !20 = !DILocation(line: 15, column: 1, scope: !18) +// CHECK:STDOUT: !21 = !{!19} +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) +// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 1, scope: !22) +// CHECK:STDOUT: !25 = !{!23} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7a7bf93ecb3607ea:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !7) +// CHECK:STDOUT: !28 = !DILocation(line: 15, column: 1, scope: !26) +// CHECK:STDOUT: !29 = !{!27} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e649d414b9e7644a:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !7) +// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !33 = !{!31} +// CHECK:STDOUT: !34 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !35 = !{!"omnipotent char", !34, i64 0} +// CHECK:STDOUT: !36 = !{!"int", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"_ZTSN6Carbon1AE", !36, i64 0} +// CHECK:STDOUT: !38 = !{!37, !36, i64 0} +// CHECK:STDOUT: !41 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !43 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !44 = !{!"__libc_errno", !36, i64 0} +// CHECK:STDOUT: !45 = !{!44, !36, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/nullptr.carbon b/toolchain/lower/testdata/interop/cpp/nullptr.carbon index c35ed78e9eb6..13e6e0dc7dab 100644 --- a/toolchain/lower/testdata/interop/cpp/nullptr.carbon +++ b/toolchain/lower/testdata/interop/cpp/nullptr.carbon @@ -56,50 +56,50 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassNullptr.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassNullptr.Main() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_18.2.temp = alloca ptr, align 8, !dbg !15 -// CHECK:STDOUT: %.loc14_22.1.temp = alloca ptr, align 8, !dbg !16 -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr poison), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_18.2.temp), !dbg !15 -// CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, ptr %.loc12_18.2.temp, align 8, !dbg !15 -// CHECK:STDOUT: %.loc12_18.4 = load ptr, ptr %.loc12_18.2.temp, align 8, !dbg !15 -// CHECK:STDOUT: call void @_Z7TakePtrPi(ptr %.loc12_18.4), !dbg !17 -// CHECK:STDOUT: call void @"_COp.77d64100f3a87f7e:core.Destroy.Core"(ptr %.loc12_18.2.temp), !dbg !15 -// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_22.1.temp), !dbg !16 -// CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call, ptr %.loc14_22.1.temp, align 8, !dbg !16 -// CHECK:STDOUT: call void @_Z11TakeNullptrDn.carbon_thunk._(ptr %.loc14_22.1.temp), !dbg !18 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %.loc14_22.1.temp), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: %.loc12_18.2.temp = alloca ptr, align 8, !dbg !17 +// CHECK:STDOUT: %.loc14_22.1.temp = alloca ptr, align 8, !dbg !19 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr poison), !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_18.2.temp), !dbg !17 +// CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, ptr %.loc12_18.2.temp, align 8, !dbg !17 +// CHECK:STDOUT: %.loc12_18.4 = load ptr, ptr %.loc12_18.2.temp, align 8, !dbg !17 +// CHECK:STDOUT: call void @_Z7TakePtrPi(ptr %.loc12_18.4), !dbg !18 +// CHECK:STDOUT: call void @"_COp.77d64100f3a87f7e:core.Destroy.Core"(ptr %.loc12_18.2.temp), !dbg !17 +// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_22.1.temp), !dbg !19 +// CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call, ptr %.loc14_22.1.temp, align 8, !dbg !19 +// CHECK:STDOUT: call void @_Z11TakeNullptrDn.carbon_thunk._(ptr %.loc14_22.1.temp), !dbg !20 +// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %.loc14_22.1.temp), !dbg !19 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z7TakePtrPi(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8da6098981b7fee3:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.8da6098981b7fee3:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.59abebc75eab0036:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.59abebc75eab0036:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.77d64100f3a87f7e:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.77d64100f3a87f7e:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z11TakeNullptrDn.carbon_thunk._(ptr noundef %n) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %n.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %n, ptr %n.addr, align 8, !tbaa !35 -// CHECK:STDOUT: %0 = load ptr, ptr %n.addr, align 8, !tbaa !35 +// CHECK:STDOUT: store ptr %n, ptr %n.addr, align 8, !tbaa !96 +// CHECK:STDOUT: %0 = load ptr, ptr %n.addr, align 8, !tbaa !96 // CHECK:STDOUT: call void @_Z11TakeNullptrDn(ptr null) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -107,89 +107,89 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: declare ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2bb3ddafbe2fe5d2:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.2bb3ddafbe2fe5d2:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !41 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !49 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnNullptr.Main() #0 !dbg !50 { +// CHECK:STDOUT: define ptr @_CReturnNullptr.Main() #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !53 -// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.Copy.impl.Op.call, !dbg !54 +// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !49 +// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.Copy.impl.Op.call, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnNullptrCopy.Main() #0 !dbg !55 { +// CHECK:STDOUT: define ptr @_CReturnNullptrCopy.Main() #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca ptr, align 8, !dbg !56 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !56 -// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call.loc22 = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !57 -// CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc22, ptr %a.var, align 8, !dbg !56 -// CHECK:STDOUT: %.loc23 = load ptr, ptr %a.var, align 8, !dbg !58 -// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23 = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr %.loc23), !dbg !58 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %a.var), !dbg !56 -// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23, !dbg !59 +// CHECK:STDOUT: %a.var = alloca ptr, align 8, !dbg !54 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !54 +// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call.loc22 = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr poison), !dbg !55 +// CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc22, ptr %a.var, align 8, !dbg !54 +// CHECK:STDOUT: %.loc23 = load ptr, ptr %a.var, align 8, !dbg !57 +// CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23 = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr %.loc23), !dbg !57 +// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %a.var), !dbg !54 +// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnConvertedNullptrIndirectly.Main() #0 !dbg !60 { +// CHECK:STDOUT: define ptr @_CReturnConvertedNullptrIndirectly.Main() #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca ptr, align 8, !dbg !61 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !61 -// CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %a.var), !dbg !62 -// CHECK:STDOUT: %.loc28_10 = load ptr, ptr %a.var, align 8, !dbg !63 -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %.loc28_10), !dbg !64 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %a.var), !dbg !61 -// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !64 +// CHECK:STDOUT: %a.var = alloca ptr, align 8, !dbg !62 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !62 +// CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %a.var), !dbg !63 +// CHECK:STDOUT: %.loc28_10 = load ptr, ptr %a.var, align 8, !dbg !65 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %.loc28_10), !dbg !66 +// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %a.var), !dbg !62 +// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z13ReturnNullptrv.carbon_thunk.(ptr noundef %return) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !35 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !35 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !96 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !96 // CHECK:STDOUT: %call = call ptr @_Z13ReturnNullptrv() -// CHECK:STDOUT: store ptr %call, ptr %0, align 8, !tbaa !65 +// CHECK:STDOUT: store ptr %call, ptr %0, align 8, !tbaa !97 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define ptr @_CReturnConvertedNullptrDirectly.Main() #0 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc32_28.1.temp = alloca ptr, align 8, !dbg !68 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc32_28.1.temp), !dbg !68 -// CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %.loc32_28.1.temp), !dbg !68 -// CHECK:STDOUT: %.loc32_28.4 = load ptr, ptr %.loc32_28.1.temp, align 8, !dbg !68 -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %.loc32_28.4), !dbg !69 -// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %.loc32_28.1.temp), !dbg !68 -// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !69 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CConvertNullptrConstant.Main() #0 !dbg !70 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr poison), !dbg !71 +// CHECK:STDOUT: %.loc32_28.1.temp = alloca ptr, align 8, !dbg !70 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc32_28.1.temp), !dbg !70 +// CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %.loc32_28.1.temp), !dbg !70 +// CHECK:STDOUT: %.loc32_28.4 = load ptr, ptr %.loc32_28.1.temp, align 8, !dbg !70 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %.loc32_28.4), !dbg !71 +// CHECK:STDOUT: call void @"_COp.b2c31a0c2505b4b7:core.Destroy.Core"(ptr %.loc32_28.1.temp), !dbg !70 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %self) #0 !dbg !72 { -// CHECK:STDOUT: %1 = call ptr @_CNone.Optional.Core.6e9e957697159b53(), !dbg !78 -// CHECK:STDOUT: ret ptr %1, !dbg !79 +// CHECK:STDOUT: define ptr @_CConvertNullptrConstant.Main() #0 !dbg !72 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr poison), !dbg !75 +// CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !75 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: %1 = call ptr @_CNone.Optional.Core.6e9e957697159b53(), !dbg !82 +// CHECK:STDOUT: ret ptr %1, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -198,8 +198,8 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: declare ptr @_CMake.NullptrT.CppCompat.Core() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.6e9e957697159b53() #0 !dbg !80 { -// CHECK:STDOUT: ret ptr null, !dbg !82 +// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.6e9e957697159b53() #0 !dbg !86 { +// CHECK:STDOUT: ret ptr null, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z11TakeNullptrDn(ptr) #1 @@ -215,91 +215,91 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!98, !99, !100, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!103} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassNullptr", linkageName: "_CPassNullptr.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 12, column: 15, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 14, column: 19, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 11, column: 1, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8da6098981b7fee3:core.Destroy.Core", scope: null, file: !1, line: 12, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 12, column: 15, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.59abebc75eab0036:core.Destroy.Core", scope: null, file: !1, line: 12, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) -// CHECK:STDOUT: !30 = !DILocation(line: 12, column: 15, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.77d64100f3a87f7e:core.Destroy.Core", scope: null, file: !1, line: 12, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !23) -// CHECK:STDOUT: !34 = !DILocation(line: 12, column: 15, scope: !31) -// CHECK:STDOUT: !35 = !{!36, !36, i64 0} -// CHECK:STDOUT: !36 = !{!"p1 std::nullptr_t", !37, i64 0} -// CHECK:STDOUT: !37 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2bb3ddafbe2fe5d2:core.Destroy.Core", scope: null, file: !1, line: 14, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !23) -// CHECK:STDOUT: !41 = !DILocation(line: 14, column: 19, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.24996695b716f57d:core.Destroy.Core", scope: null, file: !1, line: 14, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !23) -// CHECK:STDOUT: !45 = !DILocation(line: 14, column: 19, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b2c31a0c2505b4b7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !47) -// CHECK:STDOUT: !47 = !{!48} -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !23) -// CHECK:STDOUT: !49 = !DILocation(line: 14, column: 19, scope: !46) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "ReturnNullptr", linkageName: "_CReturnNullptr.Main", scope: null, file: !1, line: 17, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !51 = !DISubroutineType(types: !52) -// CHECK:STDOUT: !52 = !{!23} -// CHECK:STDOUT: !53 = !DILocation(line: 18, column: 10, scope: !50) -// CHECK:STDOUT: !54 = !DILocation(line: 18, column: 3, scope: !50) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "ReturnNullptrCopy", linkageName: "_CReturnNullptrCopy.Main", scope: null, file: !1, line: 21, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !56 = !DILocation(line: 22, column: 3, scope: !55) -// CHECK:STDOUT: !57 = !DILocation(line: 22, column: 26, scope: !55) -// CHECK:STDOUT: !58 = !DILocation(line: 23, column: 10, scope: !55) -// CHECK:STDOUT: !59 = !DILocation(line: 23, column: 3, scope: !55) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "ReturnConvertedNullptrIndirectly", linkageName: "_CReturnConvertedNullptrIndirectly.Main", scope: null, file: !1, line: 26, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !61 = !DILocation(line: 27, column: 3, scope: !60) -// CHECK:STDOUT: !62 = !DILocation(line: 27, column: 26, scope: !60) -// CHECK:STDOUT: !63 = !DILocation(line: 28, column: 10, scope: !60) -// CHECK:STDOUT: !64 = !DILocation(line: 28, column: 3, scope: !60) -// CHECK:STDOUT: !65 = !{!66, !66, i64 0} -// CHECK:STDOUT: !66 = !{!"std::nullptr_t", !10, i64 0} -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "ReturnConvertedNullptrDirectly", linkageName: "_CReturnConvertedNullptrDirectly.Main", scope: null, file: !1, line: 31, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !68 = !DILocation(line: 32, column: 10, scope: !67) -// CHECK:STDOUT: !69 = !DILocation(line: 32, column: 3, scope: !67) -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "ConvertNullptrConstant", linkageName: "_CConvertNullptrConstant.Main", scope: null, file: !1, line: 35, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !71 = !DILocation(line: 36, column: 3, scope: !70) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba", scope: null, file: !73, line: 51, type: !74, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !76) -// CHECK:STDOUT: !73 = !DIFile(filename: "{{.*}}/prelude/types/cpp/nullptr.carbon", directory: "") -// CHECK:STDOUT: !74 = !DISubroutineType(types: !75) -// CHECK:STDOUT: !75 = !{!23, !23} -// CHECK:STDOUT: !76 = !{!77} -// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !72, type: !23) -// CHECK:STDOUT: !78 = !DILocation(line: 52, column: 14, scope: !72) -// CHECK:STDOUT: !79 = !DILocation(line: 52, column: 7, scope: !72) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.6e9e957697159b53", scope: null, file: !81, line: 30, type: !51, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !81 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !82 = !DILocation(line: 31, column: 5, scope: !80) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "simple.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{!9, !9} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{!9} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "PassNullptr", linkageName: "_CPassNullptr.Main", scope: null, file: !4, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 15, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 3, scope: !16) +// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 19, scope: !16) +// CHECK:STDOUT: !20 = !DILocation(line: 14, column: 3, scope: !16) +// CHECK:STDOUT: !21 = !DILocation(line: 11, column: 1, scope: !16) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8da6098981b7fee3:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !9) +// CHECK:STDOUT: !24 = !DILocation(line: 12, column: 15, scope: !22) +// CHECK:STDOUT: !25 = !{!23} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.59abebc75eab0036:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !9) +// CHECK:STDOUT: !28 = !DILocation(line: 12, column: 15, scope: !26) +// CHECK:STDOUT: !29 = !{!27} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.77d64100f3a87f7e:core.Destroy.Core", scope: null, file: !4, line: 12, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !9) +// CHECK:STDOUT: !32 = !DILocation(line: 12, column: 15, scope: !30) +// CHECK:STDOUT: !33 = !{!31} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2bb3ddafbe2fe5d2:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !9) +// CHECK:STDOUT: !36 = !DILocation(line: 14, column: 19, scope: !34) +// CHECK:STDOUT: !37 = !{!35} +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.24996695b716f57d:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !9) +// CHECK:STDOUT: !40 = !DILocation(line: 14, column: 19, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b2c31a0c2505b4b7:core.Destroy.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !9) +// CHECK:STDOUT: !44 = !DILocation(line: 14, column: 19, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "ReturnNullptr", linkageName: "_CReturnNullptr.Main", scope: null, file: !4, line: 17, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !49 = !DILocation(line: 18, column: 10, scope: !46) +// CHECK:STDOUT: !50 = !DILocation(line: 18, column: 3, scope: !46) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "ReturnNullptrCopy", linkageName: "_CReturnNullptrCopy.Main", scope: null, file: !4, line: 21, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !54 = !DILocation(line: 22, column: 3, scope: !51) +// CHECK:STDOUT: !55 = !DILocation(line: 22, column: 26, scope: !51) +// CHECK:STDOUT: !57 = !DILocation(line: 23, column: 10, scope: !51) +// CHECK:STDOUT: !58 = !DILocation(line: 23, column: 3, scope: !51) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "ReturnConvertedNullptrIndirectly", linkageName: "_CReturnConvertedNullptrIndirectly.Main", scope: null, file: !4, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !62 = !DILocation(line: 27, column: 3, scope: !59) +// CHECK:STDOUT: !63 = !DILocation(line: 27, column: 26, scope: !59) +// CHECK:STDOUT: !65 = !DILocation(line: 28, column: 10, scope: !59) +// CHECK:STDOUT: !66 = !DILocation(line: 28, column: 3, scope: !59) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "ReturnConvertedNullptrDirectly", linkageName: "_CReturnConvertedNullptrDirectly.Main", scope: null, file: !4, line: 31, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !70 = !DILocation(line: 32, column: 10, scope: !67) +// CHECK:STDOUT: !71 = !DILocation(line: 32, column: 3, scope: !67) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "ConvertNullptrConstant", linkageName: "_CConvertNullptrConstant.Main", scope: null, file: !4, line: 35, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !75 = !DILocation(line: 36, column: 3, scope: !72) +// CHECK:STDOUT: !76 = !DIFile(filename: "{{.*}}/prelude/types/cpp/nullptr.carbon", directory: "") +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.NullptrT.CppCompat.Core:ImplicitAs.49279a15ecfc119b.Core.84588f41d61dafba", scope: null, file: !76, line: 51, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !9) +// CHECK:STDOUT: !82 = !DILocation(line: 52, column: 14, scope: !77) +// CHECK:STDOUT: !83 = !DILocation(line: 52, column: 7, scope: !77) +// CHECK:STDOUT: !84 = !{!78} +// CHECK:STDOUT: !85 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.6e9e957697159b53", scope: null, file: !85, line: 30, type: !15, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !90 = !DILocation(line: 31, column: 5, scope: !86) +// CHECK:STDOUT: !91 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !92 = !{!"omnipotent char", !91, i64 0} +// CHECK:STDOUT: !93 = !{!"std::nullptr_t", !92, i64 0} +// CHECK:STDOUT: !94 = !{!"any pointer", !92, i64 0} +// CHECK:STDOUT: !95 = !{!"p1 std::nullptr_t", !94, i64 0} +// CHECK:STDOUT: !96 = !{!95, !95, i64 0} +// CHECK:STDOUT: !97 = !{!93, !93, i64 0} +// CHECK:STDOUT: !98 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !99 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !100 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !101 = !{!"int", !92, i64 0} +// CHECK:STDOUT: !102 = !{!"__libc_errno", !101, i64 0} +// CHECK:STDOUT: !103 = !{!102, !101, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/operators.carbon b/toolchain/lower/testdata/interop/cpp/operators.carbon index fa643198deda..dafce666a65f 100644 --- a/toolchain/lower/testdata/interop/cpp/operators.carbon +++ b/toolchain/lower/testdata/interop/cpp/operators.carbon @@ -87,10 +87,10 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: $_Zne3EqAS_ = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCheckEqWith.Main.5d19350ce19a6fbd(ptr %x, ptr %y), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: call void @_CCheckEqWith.Main.5d19350ce19a6fbd(ptr %x, ptr %y), !dbg !21 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -101,21 +101,21 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.EqA, align 4 // CHECK:STDOUT: %agg.tmp1 = alloca %struct.EqA, align 4 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !51 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !51 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive = getelementptr inbounds nuw %struct.EqA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load i32, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive2 = getelementptr inbounds nuw %struct.EqA, ptr %agg.tmp1, i32 0, i32 0 // CHECK:STDOUT: %4 = load i32, ptr %coerce.dive2, align 4 // CHECK:STDOUT: %call = call noundef zeroext i1 @_Zeq3EqAS_(i32 %3, i32 %4) // CHECK:STDOUT: %storedv = zext i1 %call to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !28 +// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !59 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -127,50 +127,50 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.EqA, align 4 // CHECK:STDOUT: %agg.tmp1 = alloca %struct.EqA, align 4 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !51 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !51 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive = getelementptr inbounds nuw %struct.EqA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load i32, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive2 = getelementptr inbounds nuw %struct.EqA, ptr %agg.tmp1, i32 0, i32 0 // CHECK:STDOUT: %4 = load i32, ptr %coerce.dive2, align 4 // CHECK:STDOUT: %call = call noundef zeroext i1 @_Zne3EqAS_(i32 %3, i32 %4) // CHECK:STDOUT: %storedv = zext i1 %call to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !28 +// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !59 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !30 { +// CHECK:STDOUT: define weak_odr i1 @"_CEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !36 -// CHECK:STDOUT: call void @_Zeq3EqAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !36 -// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !36 -// CHECK:STDOUT: ret i1 %0, !dbg !36 +// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !28 +// CHECK:STDOUT: call void @_Zeq3EqAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !28 +// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !28 +// CHECK:STDOUT: ret i1 %0, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !37 { +// CHECK:STDOUT: define weak_odr i1 @"_CNotEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !41 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !41 -// CHECK:STDOUT: call void @_Zne3EqAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !41 -// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !41 -// CHECK:STDOUT: ret i1 %0, !dbg !41 +// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !34 +// CHECK:STDOUT: call void @_Zne3EqAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !34 +// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !34 +// CHECK:STDOUT: ret i1 %0, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCheckEqWith.Main.5d19350ce19a6fbd(ptr %x, ptr %y) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr void @_CCheckEqWith.Main.5d19350ce19a6fbd(ptr %x, ptr %y) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %x, ptr %y), !dbg !46 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call = call i1 @"_CNotEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %x, ptr %y), !dbg !47 -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %x, ptr %y), !dbg !41 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call = call i1 @"_CNotEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp"(ptr %x, ptr %y), !dbg !43 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -186,9 +186,9 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %coerce.dive1 = getelementptr inbounds nuw %struct.EqA, ptr %y, i32 0, i32 0 // CHECK:STDOUT: store i32 %y.coerce, ptr %coerce.dive1, align 4 // CHECK:STDOUT: %value = getelementptr inbounds nuw %struct.EqA, ptr %x, i32 0, i32 0 -// CHECK:STDOUT: %0 = load i32, ptr %value, align 4, !tbaa !49 +// CHECK:STDOUT: %0 = load i32, ptr %value, align 4, !tbaa !60 // CHECK:STDOUT: %value2 = getelementptr inbounds nuw %struct.EqA, ptr %y, i32 0, i32 0 -// CHECK:STDOUT: %1 = load i32, ptr %value2, align 4, !tbaa !49 +// CHECK:STDOUT: %1 = load i32, ptr %value2, align 4, !tbaa !60 // CHECK:STDOUT: %cmp = icmp eq i32 %0, %1 // CHECK:STDOUT: ret i1 %cmp // CHECK:STDOUT: } @@ -207,8 +207,8 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: store i32 %x.coerce, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive1 = getelementptr inbounds nuw %struct.EqA, ptr %y, i32 0, i32 0 // CHECK:STDOUT: store i32 %y.coerce, ptr %coerce.dive1, align 4 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive3 = getelementptr inbounds nuw %struct.EqA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %0 = load i32, ptr %coerce.dive3, align 4 // CHECK:STDOUT: %coerce.dive4 = getelementptr inbounds nuw %struct.EqA, ptr %agg.tmp2, i32 0, i32 0 @@ -228,61 +228,61 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!61, !62, !63, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!65} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "eq_with.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Driver", linkageName: "_CDriver.Main", scope: null, file: !1, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17, !18} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 2, scope: !12, type: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 24, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 23, column: 1, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS3EqA", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = !{!25, !25, i64 0} -// CHECK:STDOUT: !25 = !{!"p1 bool", !23, i64 0} -// CHECK:STDOUT: !26 = !{i64 0, i64 4, !27} -// CHECK:STDOUT: !27 = !{!9, !9, i64 0} -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"bool", !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp", scope: null, file: !1, line: 8, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!15, !15, !15} -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !30, type: !15) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !30, type: !15) -// CHECK:STDOUT: !36 = !DILocation(line: 8, column: 15, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp", scope: null, file: !1, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39, !40} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !15) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !37, type: !15) -// CHECK:STDOUT: !41 = !DILocation(line: 12, column: 15, scope: !37) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "CheckEqWith", linkageName: "_CCheckEqWith.Main.5d19350ce19a6fbd", scope: null, file: !1, line: 18, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44, !45} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !15) -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !42, type: !15) -// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 3, scope: !42) -// CHECK:STDOUT: !47 = !DILocation(line: 20, column: 3, scope: !42) -// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 1, scope: !42) -// CHECK:STDOUT: !49 = !{!50, !9, i64 0} -// CHECK:STDOUT: !50 = !{!"_ZTS3EqA", !9, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "eq_with.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{null, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !12 = !{!7, !7, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Driver", linkageName: "_CDriver.Main", scope: null, file: !4, line: 23, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !23) +// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !14, type: !7) +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !14, type: !7) +// CHECK:STDOUT: !21 = !DILocation(line: 24, column: 3, scope: !14) +// CHECK:STDOUT: !22 = !DILocation(line: 23, column: 1, scope: !14) +// CHECK:STDOUT: !23 = !{!15, !16} +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp", scope: null, file: !4, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !7) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 2, scope: !24, type: !7) +// CHECK:STDOUT: !28 = !DILocation(line: 8, column: 15, scope: !24) +// CHECK:STDOUT: !29 = !{!25, !26} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.c41e21bae407dec8.Core:Cpp", scope: null, file: !4, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !7) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 2, scope: !30, type: !7) +// CHECK:STDOUT: !34 = !DILocation(line: 12, column: 15, scope: !30) +// CHECK:STDOUT: !35 = !{!31, !32} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "CheckEqWith", linkageName: "_CCheckEqWith.Main.5d19350ce19a6fbd", scope: null, file: !4, line: 18, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !7) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !36, type: !7) +// CHECK:STDOUT: !41 = !DILocation(line: 19, column: 3, scope: !36) +// CHECK:STDOUT: !43 = !DILocation(line: 20, column: 3, scope: !36) +// CHECK:STDOUT: !45 = !DILocation(line: 18, column: 1, scope: !36) +// CHECK:STDOUT: !46 = !{!37, !38} +// CHECK:STDOUT: !47 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !48 = !{!"omnipotent char", !47, i64 0} +// CHECK:STDOUT: !49 = !{!"any pointer", !48, i64 0} +// CHECK:STDOUT: !50 = !{!"p1 _ZTS3EqA", !49, i64 0} +// CHECK:STDOUT: !51 = !{!50, !50, i64 0} +// CHECK:STDOUT: !52 = !{!"bool", !48, i64 0} +// CHECK:STDOUT: !53 = !{!"p1 bool", !49, i64 0} +// CHECK:STDOUT: !54 = !{!53, !53, i64 0} +// CHECK:STDOUT: !55 = !{!"int", !48, i64 0} +// CHECK:STDOUT: !56 = !{!"_ZTS3EqA", !55, i64 0} +// CHECK:STDOUT: !57 = !{!55, !55, i64 0} +// CHECK:STDOUT: !58 = !{i64 0, i64 4, !57} +// CHECK:STDOUT: !59 = !{!52, !52, i64 0} +// CHECK:STDOUT: !60 = !{!56, !55, i64 0} +// CHECK:STDOUT: !61 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !62 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !63 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !64 = !{!"__libc_errno", !55, i64 0} +// CHECK:STDOUT: !65 = !{!64, !55, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'ordered_with.carbon' @@ -301,10 +301,10 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: $_Zge8OrderedAS_ = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCheckOrderedWith.Main.f3d1df67aae0c1db(ptr %x, ptr %y), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: call void @_CCheckOrderedWith.Main.f3d1df67aae0c1db(ptr %x, ptr %y), !dbg !75 +// CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -315,21 +315,21 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.OrderedA, align 4 // CHECK:STDOUT: %agg.tmp1 = alloca %struct.OrderedA, align 4 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load i32, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive2 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp1, i32 0, i32 0 // CHECK:STDOUT: %4 = load i32, ptr %coerce.dive2, align 4 // CHECK:STDOUT: %call = call noundef zeroext i1 @_Zlt8OrderedAS_(i32 %3, i32 %4) // CHECK:STDOUT: %storedv = zext i1 %call to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !28 +// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !59 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -341,21 +341,21 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.OrderedA, align 4 // CHECK:STDOUT: %agg.tmp1 = alloca %struct.OrderedA, align 4 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load i32, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive2 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp1, i32 0, i32 0 // CHECK:STDOUT: %4 = load i32, ptr %coerce.dive2, align 4 // CHECK:STDOUT: %call = call noundef zeroext i1 @_Zle8OrderedAS_(i32 %3, i32 %4) // CHECK:STDOUT: %storedv = zext i1 %call to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !28 +// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !59 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -367,21 +367,21 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.OrderedA, align 4 // CHECK:STDOUT: %agg.tmp1 = alloca %struct.OrderedA, align 4 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load i32, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive2 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp1, i32 0, i32 0 // CHECK:STDOUT: %4 = load i32, ptr %coerce.dive2, align 4 // CHECK:STDOUT: %call = call noundef zeroext i1 @_Zgt8OrderedAS_(i32 %3, i32 %4) // CHECK:STDOUT: %storedv = zext i1 %call to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !28 +// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !59 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: @@ -393,72 +393,72 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %struct.OrderedA, align 4 // CHECK:STDOUT: %agg.tmp1 = alloca %struct.OrderedA, align 4 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !21 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %y, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !54 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %1, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: %2 = load ptr, ptr %y.addr, align 8, !tbaa !118 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp1, ptr align 4 %2, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load i32, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive2 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp1, i32 0, i32 0 // CHECK:STDOUT: %4 = load i32, ptr %coerce.dive2, align 4 // CHECK:STDOUT: %call = call noundef zeroext i1 @_Zge8OrderedAS_(i32 %3, i32 %4) // CHECK:STDOUT: %storedv = zext i1 %call to i8 -// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !28 +// CHECK:STDOUT: store i8 %storedv, ptr %0, align 1, !tbaa !59 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CLess:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !30 { +// CHECK:STDOUT: define weak_odr i1 @"_CLess:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !36 -// CHECK:STDOUT: call void @_Zlt8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !36 -// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !36 -// CHECK:STDOUT: ret i1 %0, !dbg !36 +// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !82 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !82 +// CHECK:STDOUT: call void @_Zlt8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !82 +// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !82 +// CHECK:STDOUT: ret i1 %0, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CLessOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !37 { +// CHECK:STDOUT: define weak_odr i1 @"_CLessOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !41 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !41 -// CHECK:STDOUT: call void @_Zle8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !41 -// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !41 -// CHECK:STDOUT: ret i1 %0, !dbg !41 +// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !88 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !88 +// CHECK:STDOUT: call void @_Zle8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !88 +// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !88 +// CHECK:STDOUT: ret i1 %0, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CGreater:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !42 { +// CHECK:STDOUT: define weak_odr i1 @"_CGreater:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !90 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !46 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !46 -// CHECK:STDOUT: call void @_Zgt8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !46 -// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !46 -// CHECK:STDOUT: ret i1 %0, !dbg !46 +// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !94 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !94 +// CHECK:STDOUT: call void @_Zgt8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !94 +// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !94 +// CHECK:STDOUT: ret i1 %0, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !47 { +// CHECK:STDOUT: define weak_odr i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !96 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !51 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !51 -// CHECK:STDOUT: call void @_Zge8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !51 -// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !51 -// CHECK:STDOUT: ret i1 %0, !dbg !51 +// CHECK:STDOUT: %.6.temp = alloca i1, align 1, !dbg !100 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.6.temp), !dbg !100 +// CHECK:STDOUT: call void @_Zge8OrderedAS_.carbon_thunk.__(ptr %self, ptr %other, ptr %.6.temp), !dbg !100 +// CHECK:STDOUT: %0 = load i1, ptr %.6.temp, align 1, !dbg !100 +// CHECK:STDOUT: ret i1 %0, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCheckOrderedWith.Main.f3d1df67aae0c1db(ptr %x, ptr %y) #0 !dbg !52 { +// CHECK:STDOUT: define linkonce_odr void @_CCheckOrderedWith.Main.f3d1df67aae0c1db(ptr %x, ptr %y) #0 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.call = call i1 @"_CLess:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !56 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call = call i1 @"_CGreater:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !57 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call = call i1 @"_CLessOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !58 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call = call i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !59 -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.call = call i1 @"_CLess:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !107 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call = call i1 @"_CGreater:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !109 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call = call i1 @"_CLessOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !111 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call = call i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp"(ptr %x, ptr %y), !dbg !113 +// CHECK:STDOUT: ret void, !dbg !115 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -474,9 +474,9 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: %coerce.dive1 = getelementptr inbounds nuw %struct.OrderedA, ptr %y, i32 0, i32 0 // CHECK:STDOUT: store i32 %y.coerce, ptr %coerce.dive1, align 4 // CHECK:STDOUT: %value = getelementptr inbounds nuw %struct.OrderedA, ptr %x, i32 0, i32 0 -// CHECK:STDOUT: %0 = load i32, ptr %value, align 4, !tbaa !61 +// CHECK:STDOUT: %0 = load i32, ptr %value, align 4, !tbaa !120 // CHECK:STDOUT: %value2 = getelementptr inbounds nuw %struct.OrderedA, ptr %y, i32 0, i32 0 -// CHECK:STDOUT: %1 = load i32, ptr %value2, align 4, !tbaa !61 +// CHECK:STDOUT: %1 = load i32, ptr %value2, align 4, !tbaa !120 // CHECK:STDOUT: %cmp = icmp slt i32 %0, %1 // CHECK:STDOUT: ret i1 %cmp // CHECK:STDOUT: } @@ -495,8 +495,8 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: store i32 %x.coerce, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive1 = getelementptr inbounds nuw %struct.OrderedA, ptr %y, i32 0, i32 0 // CHECK:STDOUT: store i32 %y.coerce, ptr %coerce.dive1, align 4 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive3 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %0 = load i32, ptr %coerce.dive3, align 4 // CHECK:STDOUT: %coerce.dive4 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp2, i32 0, i32 0 @@ -517,8 +517,8 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: store i32 %x.coerce, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive1 = getelementptr inbounds nuw %struct.OrderedA, ptr %y, i32 0, i32 0 // CHECK:STDOUT: store i32 %y.coerce, ptr %coerce.dive1, align 4 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive3 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %0 = load i32, ptr %coerce.dive3, align 4 // CHECK:STDOUT: %coerce.dive4 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp2, i32 0, i32 0 @@ -538,8 +538,8 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: store i32 %x.coerce, ptr %coerce.dive, align 4 // CHECK:STDOUT: %coerce.dive1 = getelementptr inbounds nuw %struct.OrderedA, ptr %y, i32 0, i32 0 // CHECK:STDOUT: store i32 %y.coerce, ptr %coerce.dive1, align 4 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !26 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !26 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp, ptr align 4 %x, i64 4, i1 false), !tbaa.struct !58 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.tmp2, ptr align 4 %y, i64 4, i1 false), !tbaa.struct !58 // CHECK:STDOUT: %coerce.dive3 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %0 = load i32, ptr %coerce.dive3, align 4 // CHECK:STDOUT: %coerce.dive4 = getelementptr inbounds nuw %struct.OrderedA, ptr %agg.tmp2, i32 0, i32 0 @@ -559,71 +559,71 @@ fn Driver(x: Cpp.OrderedA, y: Cpp.OrderedA) { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!67} +// CHECK:STDOUT: !llvm.module.flags = !{!61, !62, !63, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!65} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "ordered_with.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Driver", linkageName: "_CDriver.Main", scope: null, file: !1, line: 33, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17, !18} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 2, scope: !12, type: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 34, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 33, column: 1, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS8OrderedA", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = !{!25, !25, i64 0} -// CHECK:STDOUT: !25 = !{!"p1 bool", !23, i64 0} -// CHECK:STDOUT: !26 = !{i64 0, i64 4, !27} -// CHECK:STDOUT: !27 = !{!9, !9, i64 0} -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"bool", !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Less", linkageName: "_CLess:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !1, line: 8, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!15, !15, !15} -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !30, type: !15) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !30, type: !15) -// CHECK:STDOUT: !36 = !DILocation(line: 8, column: 15, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "LessOrEquivalent", linkageName: "_CLessOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !1, line: 16, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39, !40} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !15) -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 2, scope: !37, type: !15) -// CHECK:STDOUT: !41 = !DILocation(line: 16, column: 15, scope: !37) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Greater", linkageName: "_CGreater:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !1, line: 12, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44, !45} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !15) -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !42, type: !15) -// CHECK:STDOUT: !46 = !DILocation(line: 12, column: 15, scope: !42) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "GreaterOrEquivalent", linkageName: "_CGreaterOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !1, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !48) -// CHECK:STDOUT: !48 = !{!49, !50} -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !15) -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !47, type: !15) -// CHECK:STDOUT: !51 = !DILocation(line: 20, column: 15, scope: !47) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "CheckOrderedWith", linkageName: "_CCheckOrderedWith.Main.f3d1df67aae0c1db", scope: null, file: !1, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !53) -// CHECK:STDOUT: !53 = !{!54, !55} -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !15) -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 2, scope: !52, type: !15) -// CHECK:STDOUT: !56 = !DILocation(line: 27, column: 3, scope: !52) -// CHECK:STDOUT: !57 = !DILocation(line: 28, column: 3, scope: !52) -// CHECK:STDOUT: !58 = !DILocation(line: 29, column: 3, scope: !52) -// CHECK:STDOUT: !59 = !DILocation(line: 30, column: 3, scope: !52) -// CHECK:STDOUT: !60 = !DILocation(line: 26, column: 1, scope: !52) -// CHECK:STDOUT: !61 = !{!62, !9, i64 0} -// CHECK:STDOUT: !62 = !{!"_ZTS8OrderedA", !9, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{null, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !12 = !{!7, !7, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !47 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !48 = !{!"omnipotent char", !47, i64 0} +// CHECK:STDOUT: !49 = !{!"any pointer", !48, i64 0} +// CHECK:STDOUT: !52 = !{!"bool", !48, i64 0} +// CHECK:STDOUT: !53 = !{!"p1 bool", !49, i64 0} +// CHECK:STDOUT: !54 = !{!53, !53, i64 0} +// CHECK:STDOUT: !55 = !{!"int", !48, i64 0} +// CHECK:STDOUT: !57 = !{!55, !55, i64 0} +// CHECK:STDOUT: !58 = !{i64 0, i64 4, !57} +// CHECK:STDOUT: !59 = !{!52, !52, i64 0} +// CHECK:STDOUT: !61 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !62 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !63 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !64 = !{!"__libc_errno", !55, i64 0} +// CHECK:STDOUT: !65 = !{!64, !55, i64 0} +// CHECK:STDOUT: !66 = !DIFile(filename: "ordered_with.carbon", directory: "") +// CHECK:STDOUT: !67 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !66, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Driver", linkageName: "_CDriver.Main", scope: null, file: !66, line: 33, type: !9, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !77) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !7) +// CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !68, type: !7) +// CHECK:STDOUT: !75 = !DILocation(line: 34, column: 3, scope: !68) +// CHECK:STDOUT: !76 = !DILocation(line: 33, column: 1, scope: !68) +// CHECK:STDOUT: !77 = !{!69, !70} +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Less", linkageName: "_CLess:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !66, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !83) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !7) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 2, scope: !78, type: !7) +// CHECK:STDOUT: !82 = !DILocation(line: 8, column: 15, scope: !78) +// CHECK:STDOUT: !83 = !{!79, !80} +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "LessOrEquivalent", linkageName: "_CLessOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !66, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !89) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !84, type: !7) +// CHECK:STDOUT: !86 = !DILocalVariable(arg: 2, scope: !84, type: !7) +// CHECK:STDOUT: !88 = !DILocation(line: 16, column: 15, scope: !84) +// CHECK:STDOUT: !89 = !{!85, !86} +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Greater", linkageName: "_CGreater:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !66, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !95) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !7) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 2, scope: !90, type: !7) +// CHECK:STDOUT: !94 = !DILocation(line: 12, column: 15, scope: !90) +// CHECK:STDOUT: !95 = !{!91, !92} +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "GreaterOrEquivalent", linkageName: "_CGreaterOrEquivalent:thunk:OrderedWith.f150fc1157a5293b.Core:Cpp", scope: null, file: !66, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !101) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !7) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 2, scope: !96, type: !7) +// CHECK:STDOUT: !100 = !DILocation(line: 20, column: 15, scope: !96) +// CHECK:STDOUT: !101 = !{!97, !98} +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "CheckOrderedWith", linkageName: "_CCheckOrderedWith.Main.f3d1df67aae0c1db", scope: null, file: !66, line: 26, type: !9, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !116) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !7) +// CHECK:STDOUT: !104 = !DILocalVariable(arg: 2, scope: !102, type: !7) +// CHECK:STDOUT: !107 = !DILocation(line: 27, column: 3, scope: !102) +// CHECK:STDOUT: !109 = !DILocation(line: 28, column: 3, scope: !102) +// CHECK:STDOUT: !111 = !DILocation(line: 29, column: 3, scope: !102) +// CHECK:STDOUT: !113 = !DILocation(line: 30, column: 3, scope: !102) +// CHECK:STDOUT: !115 = !DILocation(line: 26, column: 1, scope: !102) +// CHECK:STDOUT: !116 = !{!103, !104} +// CHECK:STDOUT: !117 = !{!"p1 _ZTS8OrderedA", !49, i64 0} +// CHECK:STDOUT: !118 = !{!117, !117, i64 0} +// CHECK:STDOUT: !119 = !{!"_ZTS8OrderedA", !55, i64 0} +// CHECK:STDOUT: !120 = !{!119, !55, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/pointer.carbon b/toolchain/lower/testdata/interop/cpp/pointer.carbon index f8be0d5f5e95..836172d980c2 100644 --- a/toolchain/lower/testdata/interop/cpp/pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/pointer.carbon @@ -111,45 +111,45 @@ fn Convert() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassPtr.Main(ptr %p) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassPtr.Main(ptr %p) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z14TakeNonnullPtrP8NonnullC(ptr %p), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z14TakeNonnullPtrP8NonnullC(ptr %p), !dbg !15 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z14TakeNonnullPtrP8NonnullC(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnPtr.Main() #0 !dbg !20 { +// CHECK:STDOUT: define ptr @_CReturnPtr.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnNonnullPtr.call = call ptr @_Z16ReturnNonnullPtrv(), !dbg !23 -// CHECK:STDOUT: ret ptr %ReturnNonnullPtr.call, !dbg !24 +// CHECK:STDOUT: %ReturnNonnullPtr.call = call ptr @_Z16ReturnNonnullPtrv(), !dbg !21 +// CHECK:STDOUT: ret ptr %ReturnNonnullPtr.call, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef ptr @_Z16ReturnNonnullPtrv() #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassPtrWithThunk.Main(ptr %p) #0 !dbg !25 { +// CHECK:STDOUT: define void @_CPassPtrWithThunk.Main(ptr %p) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z23TakeNonnullPtrWithThunkP8NonnullCi.carbon_thunk._(ptr %p), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: call void @_Z23TakeNonnullPtrWithThunkP8NonnullCi.carbon_thunk._(ptr %p), !dbg !27 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z23TakeNonnullPtrWithThunkP8NonnullCi.carbon_thunk._(ptr noundef %0) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !30 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !30 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !39 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !39 // CHECK:STDOUT: call void @_Z23TakeNonnullPtrWithThunkP8NonnullCi(ptr noundef %1, i32 noundef 0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnPtrWithThunk.Main() #0 !dbg !33 { +// CHECK:STDOUT: define ptr @_CReturnPtrWithThunk.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnNonnullPtrWithThunk__carbon_thunk.call = call ptr @_Z25ReturnNonnullPtrWithThunki.carbon_thunk.(), !dbg !34 -// CHECK:STDOUT: ret ptr %ReturnNonnullPtrWithThunk__carbon_thunk.call, !dbg !35 +// CHECK:STDOUT: %ReturnNonnullPtrWithThunk__carbon_thunk.call = call ptr @_Z25ReturnNonnullPtrWithThunki.carbon_thunk.(), !dbg !33 +// CHECK:STDOUT: ret ptr %ReturnNonnullPtrWithThunk__carbon_thunk.call, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -167,46 +167,46 @@ fn Convert() { // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!45} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nonnull.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassPtr", linkageName: "_CPassPtr.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 1, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "ReturnPtr", linkageName: "_CReturnPtr.Main", scope: null, file: !1, line: 18, type: !21, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{!15} -// CHECK:STDOUT: !23 = !DILocation(line: 19, column: 10, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 19, column: 3, scope: !20) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "PassPtrWithThunk", linkageName: "_CPassPtrWithThunk.Main", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !15) -// CHECK:STDOUT: !28 = !DILocation(line: 23, column: 3, scope: !25) -// CHECK:STDOUT: !29 = !DILocation(line: 22, column: 1, scope: !25) -// CHECK:STDOUT: !30 = !{!31, !31, i64 0} -// CHECK:STDOUT: !31 = !{!"p1 _ZTS8NonnullC", !32, i64 0} -// CHECK:STDOUT: !32 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !1, line: 26, type: !21, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !34 = !DILocation(line: 27, column: 10, scope: !33) -// CHECK:STDOUT: !35 = !DILocation(line: 27, column: 3, scope: !33) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "nonnull.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !7 = !{null, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{!6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "PassPtr", linkageName: "_CPassPtr.Main", scope: null, file: !4, line: 14, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !17) +// CHECK:STDOUT: !12 = !DILocalVariable(arg: 1, scope: !11, type: !6) +// CHECK:STDOUT: !15 = !DILocation(line: 15, column: 3, scope: !11) +// CHECK:STDOUT: !16 = !DILocation(line: 14, column: 1, scope: !11) +// CHECK:STDOUT: !17 = !{!12} +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "ReturnPtr", linkageName: "_CReturnPtr.Main", scope: null, file: !4, line: 18, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !21 = !DILocation(line: 19, column: 10, scope: !18) +// CHECK:STDOUT: !22 = !DILocation(line: 19, column: 3, scope: !18) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "PassPtrWithThunk", linkageName: "_CPassPtrWithThunk.Main", scope: null, file: !4, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) +// CHECK:STDOUT: !27 = !DILocation(line: 23, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 22, column: 1, scope: !23) +// CHECK:STDOUT: !29 = !{!24} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !4, line: 26, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !33 = !DILocation(line: 27, column: 10, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 27, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !36 = !{!"omnipotent char", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"any pointer", !36, i64 0} +// CHECK:STDOUT: !38 = !{!"p1 _ZTS8NonnullC", !37, i64 0} +// CHECK:STDOUT: !39 = !{!38, !38, i64 0} +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"int", !36, i64 0} +// CHECK:STDOUT: !44 = !{!"__libc_errno", !43, i64 0} +// CHECK:STDOUT: !45 = !{!44, !43, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'nullable.carbon' @@ -215,87 +215,87 @@ fn Convert() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassPtr.Main(ptr %_) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassPtr.Main(ptr %_) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassNonnullPtr.Main(ptr %p) #0 !dbg !19 { +// CHECK:STDOUT: define void @_CPassNonnullPtr.Main(ptr %p) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22_23.2.temp = alloca ptr, align 8, !dbg !22 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5"(ptr %p), !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.2.temp), !dbg !22 -// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_23.2.temp, align 8, !dbg !22 -// CHECK:STDOUT: %.loc22_23.4 = load ptr, ptr %.loc22_23.2.temp, align 8, !dbg !22 -// CHECK:STDOUT: call void @_Z15TakeNullablePtrP9NullableC(ptr %.loc22_23.4), !dbg !23 -// CHECK:STDOUT: call void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %.loc22_23.2.temp), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc22_23.2.temp = alloca ptr, align 8, !dbg !56 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5"(ptr %p), !dbg !56 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.2.temp), !dbg !56 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_23.2.temp, align 8, !dbg !56 +// CHECK:STDOUT: %.loc22_23.4 = load ptr, ptr %.loc22_23.2.temp, align 8, !dbg !56 +// CHECK:STDOUT: call void @_Z15TakeNullablePtrP9NullableC(ptr %.loc22_23.4), !dbg !59 +// CHECK:STDOUT: call void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %.loc22_23.2.temp), !dbg !56 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z15TakeNullablePtrP9NullableC(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c4feefb53715d971:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.c4feefb53715d971:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1a4db661cca0482a:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.1a4db661cca0482a:core.Destroy.Core"(ptr %self) #0 !dbg !66 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %self) #0 !dbg !70 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnPtr.Main() #0 !dbg !37 { +// CHECK:STDOUT: define ptr @_CReturnPtr.Main() #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnNullablePtr.call = call ptr @_Z17ReturnNullablePtrv(), !dbg !40 -// CHECK:STDOUT: ret ptr %ReturnNullablePtr.call, !dbg !41 +// CHECK:STDOUT: %ReturnNullablePtr.call = call ptr @_Z17ReturnNullablePtrv(), !dbg !77 +// CHECK:STDOUT: ret ptr %ReturnNullablePtr.call, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef ptr @_Z17ReturnNullablePtrv() #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassPtrWithThunk.Main(ptr %_) #0 !dbg !42 { +// CHECK:STDOUT: define void @_CPassPtrWithThunk.Main(ptr %_) #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassNonnullPtrWithThunk.Main(ptr %p) #0 !dbg !46 { +// CHECK:STDOUT: define void @_CPassNonnullPtrWithThunk.Main(ptr %p) #0 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc35_32.2.temp = alloca ptr, align 8, !dbg !49 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5"(ptr %p), !dbg !49 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc35_32.2.temp), !dbg !49 -// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_32.2.temp, align 8, !dbg !49 -// CHECK:STDOUT: %.loc35_32.4 = load ptr, ptr %.loc35_32.2.temp, align 8, !dbg !49 -// CHECK:STDOUT: call void @_Z24TakeNullablePtrWithThunkP9NullableCi.carbon_thunk._(ptr %.loc35_32.4), !dbg !50 -// CHECK:STDOUT: call void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %.loc35_32.2.temp), !dbg !49 -// CHECK:STDOUT: ret void, !dbg !51 +// CHECK:STDOUT: %.loc35_32.2.temp = alloca ptr, align 8, !dbg !87 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5"(ptr %p), !dbg !87 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc35_32.2.temp), !dbg !87 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_32.2.temp, align 8, !dbg !87 +// CHECK:STDOUT: %.loc35_32.4 = load ptr, ptr %.loc35_32.2.temp, align 8, !dbg !87 +// CHECK:STDOUT: call void @_Z24TakeNullablePtrWithThunkP9NullableCi.carbon_thunk._(ptr %.loc35_32.4), !dbg !88 +// CHECK:STDOUT: call void @"_COp.af4d0379a4c35228:core.Destroy.Core"(ptr %.loc35_32.2.temp), !dbg !87 +// CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z24TakeNullablePtrWithThunkP9NullableCi.carbon_thunk._(ptr noundef %0) #2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !52 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !52 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !136 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !136 // CHECK:STDOUT: call void @_Z24TakeNullablePtrWithThunkP9NullableCi(ptr noundef %1, i32 noundef 0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReturnPtrWithThunk.Main() #0 !dbg !55 { +// CHECK:STDOUT: define ptr @_CReturnPtrWithThunk.Main() #0 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnNullablePtrWithThunk__carbon_thunk.call = call ptr @_Z26ReturnNullablePtrWithThunki.carbon_thunk.(), !dbg !56 -// CHECK:STDOUT: ret ptr %ReturnNullablePtrWithThunk__carbon_thunk.call, !dbg !57 +// CHECK:STDOUT: %ReturnNullablePtrWithThunk__carbon_thunk.call = call ptr @_Z26ReturnNullablePtrWithThunki.carbon_thunk.(), !dbg !94 +// CHECK:STDOUT: ret ptr %ReturnNullablePtrWithThunk__carbon_thunk.call, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -306,35 +306,35 @@ fn Convert() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5"(ptr %self) #0 !dbg !58 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.e83c25d1d2fd22c2"(ptr %self), !dbg !64 -// CHECK:STDOUT: ret ptr %1, !dbg !65 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5"(ptr %self) #0 !dbg !97 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.e83c25d1d2fd22c2"(ptr %self), !dbg !102 +// CHECK:STDOUT: ret ptr %1, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.e83c25d1d2fd22c2"(ptr %self) #0 !dbg !66 { -// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.e83c25d1d2fd22c2(ptr %self), !dbg !69 -// CHECK:STDOUT: ret ptr %1, !dbg !70 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.e83c25d1d2fd22c2"(ptr %self) #0 !dbg !105 { +// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.e83c25d1d2fd22c2(ptr %self), !dbg !111 +// CHECK:STDOUT: ret ptr %1, !dbg !112 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.e83c25d1d2fd22c2(ptr %value) #0 !dbg !71 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.77dd513e5db6ef8d"(ptr %value), !dbg !74 -// CHECK:STDOUT: ret ptr %1, !dbg !75 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.e83c25d1d2fd22c2(ptr %value) #0 !dbg !114 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.77dd513e5db6ef8d"(ptr %value), !dbg !119 +// CHECK:STDOUT: ret ptr %1, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.77dd513e5db6ef8d"(ptr %self) #0 !dbg !76 { -// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !79 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !79 -// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !79 -// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !80 -// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !81 -// CHECK:STDOUT: call void @"_COp.1a4db661cca0482a:core.Destroy.Core"(ptr %1), !dbg !79 -// CHECK:STDOUT: ret ptr %2, !dbg !82 +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.77dd513e5db6ef8d"(ptr %self) #0 !dbg !122 { +// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !127 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !127 +// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !127 +// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !131 +// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !129 +// CHECK:STDOUT: call void @"_COp.1a4db661cca0482a:core.Destroy.Core"(ptr %1), !dbg !127 +// CHECK:STDOUT: ret ptr %2, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z24TakeNullablePtrWithThunkP9NullableCi(ptr noundef, i32 noundef) #1 @@ -350,93 +350,93 @@ fn Convert() { // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!47} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!45} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nullable.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassPtr", linkageName: "_CPassPtr.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "PassNonnullPtr", linkageName: "_CPassNonnullPtr.Main", scope: null, file: !1, line: 19, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 22, column: 23, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 22, column: 3, scope: !19) -// CHECK:STDOUT: !24 = !DILocation(line: 19, column: 1, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c4feefb53715d971:core.Destroy.Core", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !15) -// CHECK:STDOUT: !28 = !DILocation(line: 22, column: 23, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1a4db661cca0482a:core.Destroy.Core", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !15) -// CHECK:STDOUT: !32 = !DILocation(line: 22, column: 23, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.af4d0379a4c35228:core.Destroy.Core", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !15) -// CHECK:STDOUT: !36 = !DILocation(line: 22, column: 23, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "ReturnPtr", linkageName: "_CReturnPtr.Main", scope: null, file: !1, line: 25, type: !38, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !38 = !DISubroutineType(types: !39) -// CHECK:STDOUT: !39 = !{!15} -// CHECK:STDOUT: !40 = !DILocation(line: 26, column: 10, scope: !37) -// CHECK:STDOUT: !41 = !DILocation(line: 26, column: 3, scope: !37) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "PassPtrWithThunk", linkageName: "_CPassPtrWithThunk.Main", scope: null, file: !1, line: 29, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !15) -// CHECK:STDOUT: !45 = !DILocation(line: 29, column: 1, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "PassNonnullPtrWithThunk", linkageName: "_CPassNonnullPtrWithThunk.Main", scope: null, file: !1, line: 34, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !47) -// CHECK:STDOUT: !47 = !{!48} -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !15) -// CHECK:STDOUT: !49 = !DILocation(line: 35, column: 32, scope: !46) -// CHECK:STDOUT: !50 = !DILocation(line: 35, column: 3, scope: !46) -// CHECK:STDOUT: !51 = !DILocation(line: 34, column: 1, scope: !46) -// CHECK:STDOUT: !52 = !{!53, !53, i64 0} -// CHECK:STDOUT: !53 = !{!"p1 _ZTS9NullableC", !54, i64 0} -// CHECK:STDOUT: !54 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !1, line: 38, type: !38, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !56 = !DILocation(line: 39, column: 10, scope: !55) -// CHECK:STDOUT: !57 = !DILocation(line: 39, column: 3, scope: !55) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5", scope: null, file: !59, line: 105, type: !60, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !59 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !60 = !DISubroutineType(types: !61) -// CHECK:STDOUT: !61 = !{!15, !15} -// CHECK:STDOUT: !62 = !{!63} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !58, type: !15) -// CHECK:STDOUT: !64 = !DILocation(line: 106, column: 12, scope: !58) -// CHECK:STDOUT: !65 = !DILocation(line: 106, column: 5, scope: !58) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.e83c25d1d2fd22c2", scope: null, file: !59, line: 80, type: !60, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) -// CHECK:STDOUT: !67 = !{!68} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !15) -// CHECK:STDOUT: !69 = !DILocation(line: 81, column: 12, scope: !66) -// CHECK:STDOUT: !70 = !DILocation(line: 81, column: 5, scope: !66) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.e83c25d1d2fd22c2", scope: null, file: !59, line: 33, type: !60, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !72 = !{!73} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !71, type: !15) -// CHECK:STDOUT: !74 = !DILocation(line: 34, column: 12, scope: !71) -// CHECK:STDOUT: !75 = !DILocation(line: 34, column: 5, scope: !71) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.77dd513e5db6ef8d", scope: null, file: !59, line: 166, type: !60, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !77) -// CHECK:STDOUT: !77 = !{!78} -// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !76, type: !15) -// CHECK:STDOUT: !79 = !DILocation(line: 167, column: 14, scope: !76) -// CHECK:STDOUT: !80 = !DILocation(line: 169, column: 5, scope: !76) -// CHECK:STDOUT: !81 = !DILocation(line: 167, column: 18, scope: !76) -// CHECK:STDOUT: !82 = !DILocation(line: 170, column: 5, scope: !76) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !7 = !{null, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{!6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !35 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !36 = !{!"omnipotent char", !35, i64 0} +// CHECK:STDOUT: !37 = !{!"any pointer", !36, i64 0} +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"int", !36, i64 0} +// CHECK:STDOUT: !44 = !{!"__libc_errno", !43, i64 0} +// CHECK:STDOUT: !45 = !{!44, !43, i64 0} +// CHECK:STDOUT: !46 = !DIFile(filename: "nullable.carbon", directory: "") +// CHECK:STDOUT: !47 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !46, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "PassPtr", linkageName: "_CPassPtr.Main", scope: null, file: !46, line: 14, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !52) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !6) +// CHECK:STDOUT: !51 = !DILocation(line: 14, column: 1, scope: !48) +// CHECK:STDOUT: !52 = !{!49} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "PassNonnullPtr", linkageName: "_CPassNonnullPtr.Main", scope: null, file: !46, line: 19, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !61) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !6) +// CHECK:STDOUT: !56 = !DILocation(line: 22, column: 23, scope: !53) +// CHECK:STDOUT: !57 = !{!6, !6} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !59 = !DILocation(line: 22, column: 3, scope: !53) +// CHECK:STDOUT: !60 = !DILocation(line: 19, column: 1, scope: !53) +// CHECK:STDOUT: !61 = !{!54} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c4feefb53715d971:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !65) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !6) +// CHECK:STDOUT: !64 = !DILocation(line: 22, column: 23, scope: !62) +// CHECK:STDOUT: !65 = !{!63} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1a4db661cca0482a:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !69) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !6) +// CHECK:STDOUT: !68 = !DILocation(line: 22, column: 23, scope: !66) +// CHECK:STDOUT: !69 = !{!67} +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "Op", linkageName: "_COp.af4d0379a4c35228:core.Destroy.Core", scope: null, file: !46, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !73) +// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !70, type: !6) +// CHECK:STDOUT: !72 = !DILocation(line: 22, column: 23, scope: !70) +// CHECK:STDOUT: !73 = !{!71} +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "ReturnPtr", linkageName: "_CReturnPtr.Main", scope: null, file: !46, line: 25, type: !10, spFlags: DISPFlagDefinition, unit: !47) +// CHECK:STDOUT: !77 = !DILocation(line: 26, column: 10, scope: !74) +// CHECK:STDOUT: !78 = !DILocation(line: 26, column: 3, scope: !74) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "PassPtrWithThunk", linkageName: "_CPassPtrWithThunk.Main", scope: null, file: !46, line: 29, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !83) +// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !79, type: !6) +// CHECK:STDOUT: !82 = !DILocation(line: 29, column: 1, scope: !79) +// CHECK:STDOUT: !83 = !{!80} +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "PassNonnullPtrWithThunk", linkageName: "_CPassNonnullPtrWithThunk.Main", scope: null, file: !46, line: 34, type: !8, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !90) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !84, type: !6) +// CHECK:STDOUT: !87 = !DILocation(line: 35, column: 32, scope: !84) +// CHECK:STDOUT: !88 = !DILocation(line: 35, column: 3, scope: !84) +// CHECK:STDOUT: !89 = !DILocation(line: 34, column: 1, scope: !84) +// CHECK:STDOUT: !90 = !{!85} +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !46, line: 38, type: !10, spFlags: DISPFlagDefinition, unit: !47) +// CHECK:STDOUT: !94 = !DILocation(line: 39, column: 10, scope: !91) +// CHECK:STDOUT: !95 = !DILocation(line: 39, column: 3, scope: !91) +// CHECK:STDOUT: !96 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.75a9143bcbb84fa5", scope: null, file: !96, line: 105, type: !58, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !104) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !6) +// CHECK:STDOUT: !102 = !DILocation(line: 106, column: 12, scope: !97) +// CHECK:STDOUT: !103 = !DILocation(line: 106, column: 5, scope: !97) +// CHECK:STDOUT: !104 = !{!98} +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.e83c25d1d2fd22c2", scope: null, file: !96, line: 80, type: !58, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !113) +// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !105, type: !6) +// CHECK:STDOUT: !111 = !DILocation(line: 81, column: 12, scope: !105) +// CHECK:STDOUT: !112 = !DILocation(line: 81, column: 5, scope: !105) +// CHECK:STDOUT: !113 = !{!106} +// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.e83c25d1d2fd22c2", scope: null, file: !96, line: 33, type: !58, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !121) +// CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !114, type: !6) +// CHECK:STDOUT: !119 = !DILocation(line: 34, column: 12, scope: !114) +// CHECK:STDOUT: !120 = !DILocation(line: 34, column: 5, scope: !114) +// CHECK:STDOUT: !121 = !{!115} +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.77dd513e5db6ef8d", scope: null, file: !96, line: 166, type: !58, spFlags: DISPFlagDefinition, unit: !47, retainedNodes: !134) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !122, type: !6) +// CHECK:STDOUT: !127 = !DILocation(line: 167, column: 14, scope: !122) +// CHECK:STDOUT: !129 = !DILocation(line: 167, column: 18, scope: !122) +// CHECK:STDOUT: !131 = !DILocation(line: 169, column: 5, scope: !122) +// CHECK:STDOUT: !133 = !DILocation(line: 170, column: 5, scope: !122) +// CHECK:STDOUT: !134 = !{!123} +// CHECK:STDOUT: !135 = !{!"p1 _ZTS9NullableC", !37, i64 0} +// CHECK:STDOUT: !136 = !{!135, !135, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'add_const.carbon' @@ -445,22 +445,22 @@ fn Convert() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvert.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CConvert.Main() #0 !dbg !141 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_21.1.temp = alloca ptr, align 8, !dbg !15 -// CHECK:STDOUT: %.loc11_21.5.temp = alloca ptr, align 8, !dbg !15 -// CHECK:STDOUT: %make.call = call ptr @_Z4makev(), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.1.temp), !dbg !15 -// CHECK:STDOUT: store ptr %make.call, ptr %.loc11_21.1.temp, align 8, !dbg !15 -// CHECK:STDOUT: %.loc11_21.3 = load ptr, ptr %.loc11_21.1.temp, align 8, !dbg !15 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f"(ptr %.loc11_21.3), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.5.temp), !dbg !15 -// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.5.temp, align 8, !dbg !15 -// CHECK:STDOUT: %.loc11_21.7 = load ptr, ptr %.loc11_21.5.temp, align 8, !dbg !15 -// CHECK:STDOUT: call void @_Z4takePK6ConstC(ptr %.loc11_21.7), !dbg !16 -// CHECK:STDOUT: call void @"_COp.cde1f9fdf283467b:core.Destroy.Core"(ptr %.loc11_21.5.temp), !dbg !15 -// CHECK:STDOUT: call void @"_COp.a6ac3d473017b2cc:core.Destroy.Core"(ptr %.loc11_21.1.temp), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %.loc11_21.1.temp = alloca ptr, align 8, !dbg !142 +// CHECK:STDOUT: %.loc11_21.5.temp = alloca ptr, align 8, !dbg !142 +// CHECK:STDOUT: %make.call = call ptr @_Z4makev(), !dbg !142 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.1.temp), !dbg !142 +// CHECK:STDOUT: store ptr %make.call, ptr %.loc11_21.1.temp, align 8, !dbg !142 +// CHECK:STDOUT: %.loc11_21.3 = load ptr, ptr %.loc11_21.1.temp, align 8, !dbg !142 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f"(ptr %.loc11_21.3), !dbg !142 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.5.temp), !dbg !142 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.5.temp, align 8, !dbg !142 +// CHECK:STDOUT: %.loc11_21.7 = load ptr, ptr %.loc11_21.5.temp, align 8, !dbg !142 +// CHECK:STDOUT: call void @_Z4takePK6ConstC(ptr %.loc11_21.7), !dbg !143 +// CHECK:STDOUT: call void @"_COp.cde1f9fdf283467b:core.Destroy.Core"(ptr %.loc11_21.5.temp), !dbg !142 +// CHECK:STDOUT: call void @"_COp.a6ac3d473017b2cc:core.Destroy.Core"(ptr %.loc11_21.1.temp), !dbg !142 +// CHECK:STDOUT: ret void, !dbg !144 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef ptr @_Z4makev() #1 @@ -468,117 +468,117 @@ fn Convert() { // CHECK:STDOUT: declare void @_Z4takePK6ConstC(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.53a1c4a6a5cbb234:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.53a1c4a6a5cbb234:core.Destroy.Core"(ptr %self) #0 !dbg !145 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !147 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fd6b21bba6dfd55d:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.fd6b21bba6dfd55d:core.Destroy.Core"(ptr %self) #0 !dbg !149 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !151 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cde1f9fdf283467b:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.cde1f9fdf283467b:core.Destroy.Core"(ptr %self) #0 !dbg !153 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !155 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fc86501cbc1f8185:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.fc86501cbc1f8185:core.Destroy.Core"(ptr %self) #0 !dbg !157 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b682b9cd8310efa2:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.b682b9cd8310efa2:core.Destroy.Core"(ptr %self) #0 !dbg !161 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !163 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a6ac3d473017b2cc:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.a6ac3d473017b2cc:core.Destroy.Core"(ptr %self) #0 !dbg !165 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !167 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f"(ptr %self) #0 !dbg !45 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739"(ptr %self), !dbg !51 -// CHECK:STDOUT: ret ptr %1, !dbg !52 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f"(ptr %self) #0 !dbg !169 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739"(ptr %self), !dbg !174 +// CHECK:STDOUT: ret ptr %1, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739"(ptr %self) #0 !dbg !53 { -// CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !56 -// CHECK:STDOUT: %temp1 = alloca ptr, align 8, !dbg !56 -// CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.0c3518913b4fb338(ptr %self), !dbg !57 -// CHECK:STDOUT: br i1 %1, label %2, label %7, !dbg !58 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739"(ptr %self) #0 !dbg !177 { +// CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !184 +// CHECK:STDOUT: %temp1 = alloca ptr, align 8, !dbg !184 +// CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.0c3518913b4fb338(ptr %self), !dbg !182 +// CHECK:STDOUT: br i1 %1, label %2, label %7, !dbg !183 // CHECK:STDOUT: // CHECK:STDOUT: 2: ; preds = %0 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !56 -// CHECK:STDOUT: %3 = call ptr @_CGet.Optional.Core.0c3518913b4fb338(ptr %self), !dbg !56 -// CHECK:STDOUT: store ptr %3, ptr %temp, align 8, !dbg !56 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !56 -// CHECK:STDOUT: %4 = load ptr, ptr %temp, align 8, !dbg !56 -// CHECK:STDOUT: store ptr %4, ptr %temp1, align 8, !dbg !56 -// CHECK:STDOUT: %5 = load ptr, ptr %temp1, align 8, !dbg !56 -// CHECK:STDOUT: %6 = call ptr @_CSome.Optional.Core.305e266058820aa4(ptr %5), !dbg !59 -// CHECK:STDOUT: ret ptr %6, !dbg !60 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !184 +// CHECK:STDOUT: %3 = call ptr @_CGet.Optional.Core.0c3518913b4fb338(ptr %self), !dbg !184 +// CHECK:STDOUT: store ptr %3, ptr %temp, align 8, !dbg !184 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !184 +// CHECK:STDOUT: %4 = load ptr, ptr %temp, align 8, !dbg !184 +// CHECK:STDOUT: store ptr %4, ptr %temp1, align 8, !dbg !184 +// CHECK:STDOUT: %5 = load ptr, ptr %temp1, align 8, !dbg !184 +// CHECK:STDOUT: %6 = call ptr @_CSome.Optional.Core.305e266058820aa4(ptr %5), !dbg !185 +// CHECK:STDOUT: ret ptr %6, !dbg !186 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: %8 = call ptr @_CNone.Optional.Core.305e266058820aa4(), !dbg !61 -// CHECK:STDOUT: ret ptr %8, !dbg !62 +// CHECK:STDOUT: %8 = call ptr @_CNone.Optional.Core.305e266058820aa4(), !dbg !187 +// CHECK:STDOUT: ret ptr %8, !dbg !188 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.0c3518913b4fb338(ptr %self) #0 !dbg !63 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %self), !dbg !66 -// CHECK:STDOUT: ret i1 %1, !dbg !67 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.0c3518913b4fb338(ptr %self) #0 !dbg !190 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %self), !dbg !196 +// CHECK:STDOUT: ret i1 %1, !dbg !197 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.0c3518913b4fb338(ptr %self) #0 !dbg !68 { -// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %self), !dbg !71 -// CHECK:STDOUT: ret ptr %1, !dbg !72 +// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.0c3518913b4fb338(ptr %self) #0 !dbg !199 { +// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %self), !dbg !205 +// CHECK:STDOUT: ret ptr %1, !dbg !206 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.305e266058820aa4(ptr %value) #0 !dbg !73 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.35c29317da7de352"(ptr %value), !dbg !76 -// CHECK:STDOUT: ret ptr %1, !dbg !77 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.305e266058820aa4(ptr %value) #0 !dbg !208 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.35c29317da7de352"(ptr %value), !dbg !213 +// CHECK:STDOUT: ret ptr %1, !dbg !214 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.305e266058820aa4() #0 !dbg !78 { -// CHECK:STDOUT: ret ptr null, !dbg !81 +// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.305e266058820aa4() #0 !dbg !216 { +// CHECK:STDOUT: ret ptr null, !dbg !220 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %value) #0 !dbg !82 { -// CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !85 -// CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !86 -// CHECK:STDOUT: ret i1 %2, !dbg !87 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %value) #0 !dbg !221 { +// CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !227 +// CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !228 +// CHECK:STDOUT: ret i1 %2, !dbg !229 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %value) #0 !dbg !88 { -// CHECK:STDOUT: ret ptr %value, !dbg !91 +// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4"(ptr %value) #0 !dbg !231 { +// CHECK:STDOUT: ret ptr %value, !dbg !237 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.35c29317da7de352"(ptr %self) #0 !dbg !92 { -// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !95 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !95 -// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !95 -// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !96 -// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !97 -// CHECK:STDOUT: call void @"_COp.fd6b21bba6dfd55d:core.Destroy.Core"(ptr %1), !dbg !95 -// CHECK:STDOUT: ret ptr %2, !dbg !98 +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.35c29317da7de352"(ptr %self) #0 !dbg !239 { +// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !244 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !244 +// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !244 +// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !248 +// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !246 +// CHECK:STDOUT: call void @"_COp.fd6b21bba6dfd55d:core.Destroy.Core"(ptr %1), !dbg !244 +// CHECK:STDOUT: ret ptr %2, !dbg !250 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -588,107 +588,107 @@ fn Convert() { // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!138} +// CHECK:STDOUT: !llvm.module.flags = !{!40, !41, !42, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!45} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "add_const.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 11, column: 12, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 10, column: 1, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.53a1c4a6a5cbb234:core.Destroy.Core", scope: null, file: !1, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 12, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd6b21bba6dfd55d:core.Destroy.Core", scope: null, file: !1, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 11, column: 12, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cde1f9fdf283467b:core.Destroy.Core", scope: null, file: !1, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !21) -// CHECK:STDOUT: !32 = !DILocation(line: 11, column: 12, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fc86501cbc1f8185:core.Destroy.Core", scope: null, file: !1, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 11, column: 12, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b682b9cd8310efa2:core.Destroy.Core", scope: null, file: !1, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !21) -// CHECK:STDOUT: !40 = !DILocation(line: 11, column: 12, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6ac3d473017b2cc:core.Destroy.Core", scope: null, file: !1, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !21) -// CHECK:STDOUT: !44 = !DILocation(line: 11, column: 12, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f", scope: null, file: !46, line: 105, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !49) -// CHECK:STDOUT: !46 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !47 = !DISubroutineType(types: !48) -// CHECK:STDOUT: !48 = !{!21, !21} -// CHECK:STDOUT: !49 = !{!50} -// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !45, type: !21) -// CHECK:STDOUT: !51 = !DILocation(line: 106, column: 12, scope: !45) -// CHECK:STDOUT: !52 = !DILocation(line: 106, column: 5, scope: !45) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739", scope: null, file: !46, line: 95, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !21) -// CHECK:STDOUT: !56 = !DILocation(line: 97, column: 31, scope: !53) -// CHECK:STDOUT: !57 = !DILocation(line: 96, column: 9, scope: !53) -// CHECK:STDOUT: !58 = !DILocation(line: 96, column: 8, scope: !53) -// CHECK:STDOUT: !59 = !DILocation(line: 97, column: 14, scope: !53) -// CHECK:STDOUT: !60 = !DILocation(line: 97, column: 7, scope: !53) -// CHECK:STDOUT: !61 = !DILocation(line: 99, column: 12, scope: !53) -// CHECK:STDOUT: !62 = !DILocation(line: 99, column: 5, scope: !53) -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.0c3518913b4fb338", scope: null, file: !46, line: 36, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !64) -// CHECK:STDOUT: !64 = !{!65} -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !63, type: !21) -// CHECK:STDOUT: !66 = !DILocation(line: 37, column: 12, scope: !63) -// CHECK:STDOUT: !67 = !DILocation(line: 37, column: 5, scope: !63) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.0c3518913b4fb338", scope: null, file: !46, line: 39, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !69) -// CHECK:STDOUT: !69 = !{!70} -// CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !21) -// CHECK:STDOUT: !71 = !DILocation(line: 40, column: 12, scope: !68) -// CHECK:STDOUT: !72 = !DILocation(line: 40, column: 5, scope: !68) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.305e266058820aa4", scope: null, file: !46, line: 33, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !21) -// CHECK:STDOUT: !76 = !DILocation(line: 34, column: 12, scope: !73) -// CHECK:STDOUT: !77 = !DILocation(line: 34, column: 5, scope: !73) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.305e266058820aa4", scope: null, file: !46, line: 30, type: !79, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !79 = !DISubroutineType(types: !80) -// CHECK:STDOUT: !80 = !{!21} -// CHECK:STDOUT: !81 = !DILocation(line: 31, column: 5, scope: !78) -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4", scope: null, file: !46, line: 172, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !83) -// CHECK:STDOUT: !83 = !{!84} -// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !82, type: !21) -// CHECK:STDOUT: !85 = !DILocation(line: 173, column: 16, scope: !82) -// CHECK:STDOUT: !86 = !DILocation(line: 173, column: 12, scope: !82) -// CHECK:STDOUT: !87 = !DILocation(line: 173, column: 5, scope: !82) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4", scope: null, file: !46, line: 175, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !89) -// CHECK:STDOUT: !89 = !{!90} -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !21) -// CHECK:STDOUT: !91 = !DILocation(line: 176, column: 5, scope: !88) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.35c29317da7de352", scope: null, file: !46, line: 166, type: !47, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !93) -// CHECK:STDOUT: !93 = !{!94} -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !92, type: !21) -// CHECK:STDOUT: !95 = !DILocation(line: 167, column: 14, scope: !92) -// CHECK:STDOUT: !96 = !DILocation(line: 169, column: 5, scope: !92) -// CHECK:STDOUT: !97 = !DILocation(line: 167, column: 18, scope: !92) -// CHECK:STDOUT: !98 = !DILocation(line: 170, column: 5, scope: !92) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !7 = !{null, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{!6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !35 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !36 = !{!"omnipotent char", !35, i64 0} +// CHECK:STDOUT: !40 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !41 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !42 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !43 = !{!"int", !36, i64 0} +// CHECK:STDOUT: !44 = !{!"__libc_errno", !43, i64 0} +// CHECK:STDOUT: !45 = !{!44, !43, i64 0} +// CHECK:STDOUT: !57 = !{!6, !6} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !96 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !137 = !DIFile(filename: "add_const.carbon", directory: "") +// CHECK:STDOUT: !138 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !137, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !139 = !{null} +// CHECK:STDOUT: !140 = !DISubroutineType(types: !139) +// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !137, line: 10, type: !140, spFlags: DISPFlagDefinition, unit: !138) +// CHECK:STDOUT: !142 = !DILocation(line: 11, column: 12, scope: !141) +// CHECK:STDOUT: !143 = !DILocation(line: 11, column: 3, scope: !141) +// CHECK:STDOUT: !144 = !DILocation(line: 10, column: 1, scope: !141) +// CHECK:STDOUT: !145 = distinct !DISubprogram(name: "Op", linkageName: "_COp.53a1c4a6a5cbb234:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !148) +// CHECK:STDOUT: !146 = !DILocalVariable(arg: 1, scope: !145, type: !6) +// CHECK:STDOUT: !147 = !DILocation(line: 11, column: 12, scope: !145) +// CHECK:STDOUT: !148 = !{!146} +// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fd6b21bba6dfd55d:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !152) +// CHECK:STDOUT: !150 = !DILocalVariable(arg: 1, scope: !149, type: !6) +// CHECK:STDOUT: !151 = !DILocation(line: 11, column: 12, scope: !149) +// CHECK:STDOUT: !152 = !{!150} +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cde1f9fdf283467b:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !156) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !6) +// CHECK:STDOUT: !155 = !DILocation(line: 11, column: 12, scope: !153) +// CHECK:STDOUT: !156 = !{!154} +// CHECK:STDOUT: !157 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fc86501cbc1f8185:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !160) +// CHECK:STDOUT: !158 = !DILocalVariable(arg: 1, scope: !157, type: !6) +// CHECK:STDOUT: !159 = !DILocation(line: 11, column: 12, scope: !157) +// CHECK:STDOUT: !160 = !{!158} +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b682b9cd8310efa2:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !164) +// CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !6) +// CHECK:STDOUT: !163 = !DILocation(line: 11, column: 12, scope: !161) +// CHECK:STDOUT: !164 = !{!162} +// CHECK:STDOUT: !165 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6ac3d473017b2cc:core.Destroy.Core", scope: null, file: !137, line: 11, type: !8, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !168) +// CHECK:STDOUT: !166 = !DILocalVariable(arg: 1, scope: !165, type: !6) +// CHECK:STDOUT: !167 = !DILocation(line: 11, column: 12, scope: !165) +// CHECK:STDOUT: !168 = !{!166} +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.f9fd89fc1ccb531f", scope: null, file: !96, line: 105, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !176) +// CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !6) +// CHECK:STDOUT: !174 = !DILocation(line: 106, column: 12, scope: !169) +// CHECK:STDOUT: !175 = !DILocation(line: 106, column: 5, scope: !169) +// CHECK:STDOUT: !176 = !{!170} +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.3efc4c2a62f24739", scope: null, file: !96, line: 95, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !189) +// CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !177, type: !6) +// CHECK:STDOUT: !182 = !DILocation(line: 96, column: 9, scope: !177) +// CHECK:STDOUT: !183 = !DILocation(line: 96, column: 8, scope: !177) +// CHECK:STDOUT: !184 = !DILocation(line: 97, column: 31, scope: !177) +// CHECK:STDOUT: !185 = !DILocation(line: 97, column: 14, scope: !177) +// CHECK:STDOUT: !186 = !DILocation(line: 97, column: 7, scope: !177) +// CHECK:STDOUT: !187 = !DILocation(line: 99, column: 12, scope: !177) +// CHECK:STDOUT: !188 = !DILocation(line: 99, column: 5, scope: !177) +// CHECK:STDOUT: !189 = !{!178} +// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.0c3518913b4fb338", scope: null, file: !96, line: 36, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !198) +// CHECK:STDOUT: !191 = !DILocalVariable(arg: 1, scope: !190, type: !6) +// CHECK:STDOUT: !196 = !DILocation(line: 37, column: 12, scope: !190) +// CHECK:STDOUT: !197 = !DILocation(line: 37, column: 5, scope: !190) +// CHECK:STDOUT: !198 = !{!191} +// CHECK:STDOUT: !199 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.0c3518913b4fb338", scope: null, file: !96, line: 39, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !207) +// CHECK:STDOUT: !200 = !DILocalVariable(arg: 1, scope: !199, type: !6) +// CHECK:STDOUT: !205 = !DILocation(line: 40, column: 12, scope: !199) +// CHECK:STDOUT: !206 = !DILocation(line: 40, column: 5, scope: !199) +// CHECK:STDOUT: !207 = !{!200} +// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.305e266058820aa4", scope: null, file: !96, line: 33, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !215) +// CHECK:STDOUT: !209 = !DILocalVariable(arg: 1, scope: !208, type: !6) +// CHECK:STDOUT: !213 = !DILocation(line: 34, column: 12, scope: !208) +// CHECK:STDOUT: !214 = !DILocation(line: 34, column: 5, scope: !208) +// CHECK:STDOUT: !215 = !{!209} +// CHECK:STDOUT: !216 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.305e266058820aa4", scope: null, file: !96, line: 30, type: !10, spFlags: DISPFlagDefinition, unit: !138) +// CHECK:STDOUT: !220 = !DILocation(line: 31, column: 5, scope: !216) +// CHECK:STDOUT: !221 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4", scope: null, file: !96, line: 172, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !230) +// CHECK:STDOUT: !222 = !DILocalVariable(arg: 1, scope: !221, type: !6) +// CHECK:STDOUT: !227 = !DILocation(line: 173, column: 16, scope: !221) +// CHECK:STDOUT: !228 = !DILocation(line: 173, column: 12, scope: !221) +// CHECK:STDOUT: !229 = !DILocation(line: 173, column: 5, scope: !221) +// CHECK:STDOUT: !230 = !{!222} +// CHECK:STDOUT: !231 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.21c65d90918a10a4", scope: null, file: !96, line: 175, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !238) +// CHECK:STDOUT: !232 = !DILocalVariable(arg: 1, scope: !231, type: !6) +// CHECK:STDOUT: !237 = !DILocation(line: 176, column: 5, scope: !231) +// CHECK:STDOUT: !238 = !{!232} +// CHECK:STDOUT: !239 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.35c29317da7de352", scope: null, file: !96, line: 166, type: !58, spFlags: DISPFlagDefinition, unit: !138, retainedNodes: !251) +// CHECK:STDOUT: !240 = !DILocalVariable(arg: 1, scope: !239, type: !6) +// CHECK:STDOUT: !244 = !DILocation(line: 167, column: 14, scope: !239) +// CHECK:STDOUT: !246 = !DILocation(line: 167, column: 18, scope: !239) +// CHECK:STDOUT: !248 = !DILocation(line: 169, column: 5, scope: !239) +// CHECK:STDOUT: !250 = !DILocation(line: 170, column: 5, scope: !239) +// CHECK:STDOUT: !251 = !{!240} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/reference.carbon b/toolchain/lower/testdata/interop/cpp/reference.carbon index e039107e01d1..085f111ef13b 100644 --- a/toolchain/lower/testdata/interop/cpp/reference.carbon +++ b/toolchain/lower/testdata/interop/cpp/reference.carbon @@ -137,50 +137,50 @@ fn GetRefs() { // CHECK:STDOUT: @C.val.loc19_20 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassRefs.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassRefs.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !15 -// CHECK:STDOUT: %_.var.1 = alloca {}, align 1, !dbg !16 -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !17 -// CHECK:STDOUT: %_.var.2 = alloca i32, align 4, !dbg !18 -// CHECK:STDOUT: %.loc25_23.2.temp = alloca i32, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %c.var), !dbg !15 -// CHECK:STDOUT: call void @_Z8TakeCRefR1C(ptr %c.var), !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.1), !dbg !16 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.1, ptr align 1 @C.val.loc19_20, i64 0, i1 false), !dbg !16 -// CHECK:STDOUT: call void @_Z9TakeCRRefO1C.carbon_thunk.v(ptr %_.var.1), !dbg !21 -// CHECK:STDOUT: call void @_Z13TakeConstCRefRK1C.carbon_thunk._(ptr %c.var), !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !17 -// CHECK:STDOUT: store i32 poison, ptr %n.var, align 4, !dbg !17 -// CHECK:STDOUT: call void @_Z10TakeIntRefRi(ptr %n.var), !dbg !23 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.2), !dbg !18 -// CHECK:STDOUT: store i32 42, ptr %_.var.2, align 4, !dbg !18 -// CHECK:STDOUT: call void @_Z11TakeIntRRefOi.carbon_thunk.v(ptr %_.var.2), !dbg !24 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.2), !dbg !18 -// CHECK:STDOUT: %.loc25_23.1 = load i32, ptr %n.var, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_23.2.temp), !dbg !19 -// CHECK:STDOUT: store i32 %.loc25_23.1, ptr %.loc25_23.2.temp, align 4, !dbg !19 -// CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi.carbon_thunk._(ptr %.loc25_23.2.temp), !dbg !25 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc25_23.2.temp), !dbg !19 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !31 +// CHECK:STDOUT: %_.var.1 = alloca {}, align 1, !dbg !36 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !40 +// CHECK:STDOUT: %_.var.2 = alloca i32, align 4, !dbg !45 +// CHECK:STDOUT: %.loc25_23.2.temp = alloca i32, align 4, !dbg !47 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %c.var), !dbg !31 +// CHECK:STDOUT: call void @_Z8TakeCRefR1C(ptr %c.var), !dbg !35 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.1), !dbg !36 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.1, ptr align 1 @C.val.loc19_20, i64 0, i1 false), !dbg !36 +// CHECK:STDOUT: call void @_Z9TakeCRRefO1C.carbon_thunk.v(ptr %_.var.1), !dbg !37 +// CHECK:STDOUT: call void @_Z13TakeConstCRefRK1C.carbon_thunk._(ptr %c.var), !dbg !39 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !40 +// CHECK:STDOUT: store i32 poison, ptr %n.var, align 4, !dbg !40 +// CHECK:STDOUT: call void @_Z10TakeIntRefRi(ptr %n.var), !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.2), !dbg !45 +// CHECK:STDOUT: store i32 42, ptr %_.var.2, align 4, !dbg !45 +// CHECK:STDOUT: call void @_Z11TakeIntRRefOi.carbon_thunk.v(ptr %_.var.2), !dbg !46 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.2), !dbg !45 +// CHECK:STDOUT: %.loc25_23.1 = load i32, ptr %n.var, align 4, !dbg !47 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_23.2.temp), !dbg !47 +// CHECK:STDOUT: store i32 %.loc25_23.1, ptr %.loc25_23.2.temp, align 4, !dbg !47 +// CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi.carbon_thunk._(ptr %.loc25_23.2.temp), !dbg !48 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc25_23.2.temp), !dbg !47 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN1CC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !27 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !66 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !52 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z8TakeCRefR1C(ptr noundef nonnull align 1 dereferenceable(1)) #3 @@ -189,8 +189,8 @@ fn GetRefs() { // CHECK:STDOUT: define internal void @_Z9TakeCRRefO1C.carbon_thunk.v(ptr noundef %0) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !27 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !66 // CHECK:STDOUT: call void @_Z9TakeCRRefO1C(ptr noundef nonnull align 1 dereferenceable(1) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -199,8 +199,8 @@ fn GetRefs() { // CHECK:STDOUT: define internal void @_Z13TakeConstCRefRK1C.carbon_thunk._(ptr noundef %0) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !27 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !66 // CHECK:STDOUT: call void @_Z13TakeConstCRefRK1C(ptr noundef nonnull align 1 dereferenceable(1) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -211,24 +211,24 @@ fn GetRefs() { // CHECK:STDOUT: define internal void @_Z11TakeIntRRefOi.carbon_thunk.v(ptr noundef %0) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !35 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !35 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !70 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !70 // CHECK:STDOUT: call void @_Z11TakeIntRRefOi(ptr noundef nonnull align 4 dereferenceable(4) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !43 +// CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z15TakeConstIntRefRKi.carbon_thunk._(ptr noundef %0) #4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !35 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !35 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !70 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !70 // CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi(ptr noundef nonnull align 4 dereferenceable(4) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -237,9 +237,9 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret({}) %return) #0 !dbg !44 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !46 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret({}) %return) #0 !dbg !57 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !60 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -264,58 +264,58 @@ fn GetRefs() { // CHECK:STDOUT: attributes #4 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!71, !72, !73, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!75} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pass_references.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassRefs", linkageName: "_CPassRefs.Main", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 19, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 23, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 25, column: 23, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 19, column: 3, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 23, column: 3, scope: !12) -// CHECK:STDOUT: !24 = !DILocation(line: 24, column: 3, scope: !12) -// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 3, scope: !12) -// CHECK:STDOUT: !26 = !DILocation(line: 16, column: 1, scope: !12) -// CHECK:STDOUT: !27 = !{!28, !28, i64 0} -// CHECK:STDOUT: !28 = !{!"p1 _ZTS1C", !29, i64 0} -// CHECK:STDOUT: !29 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !1, line: 5, type: !31, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 7, scope: !30) -// CHECK:STDOUT: !35 = !{!36, !36, i64 0} -// CHECK:STDOUT: !36 = !{!"p1 int", !29, i64 0} -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 12, type: !38, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !38 = !DISubroutineType(types: !39) -// CHECK:STDOUT: !39 = !{null, !40} -// CHECK:STDOUT: !40 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !41 = !{!42} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !37, type: !40) -// CHECK:STDOUT: !43 = !DILocation(line: 12, column: 23, scope: !37) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !45, line: 9, type: !31, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !45 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") -// CHECK:STDOUT: !46 = !DILocation(line: 9, column: 28, scope: !44) -// CHECK:STDOUT: !47 = !DILocation(line: 9, column: 21, scope: !44) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !12 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") +// CHECK:STDOUT: !18 = !DIFile(filename: "pass_references.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{!23} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !20} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "PassRefs", linkageName: "_CPassRefs.Main", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 17, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 3, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 8, column: 19, scope: !30) +// CHECK:STDOUT: !37 = !DILocation(line: 19, column: 3, scope: !30) +// CHECK:STDOUT: !39 = !DILocation(line: 20, column: 3, scope: !30) +// CHECK:STDOUT: !40 = !DILocation(line: 22, column: 3, scope: !30) +// CHECK:STDOUT: !44 = !DILocation(line: 23, column: 3, scope: !30) +// CHECK:STDOUT: !45 = !DILocation(line: 12, column: 23, scope: !30) +// CHECK:STDOUT: !46 = !DILocation(line: 24, column: 3, scope: !30) +// CHECK:STDOUT: !47 = !DILocation(line: 25, column: 23, scope: !30) +// CHECK:STDOUT: !48 = !DILocation(line: 25, column: 3, scope: !30) +// CHECK:STDOUT: !49 = !DILocation(line: 16, column: 1, scope: !30) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !18, line: 5, type: !27, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !52 = !DILocation(line: 5, column: 7, scope: !50) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !56) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !20) +// CHECK:STDOUT: !55 = !DILocation(line: 12, column: 23, scope: !53) +// CHECK:STDOUT: !56 = !{!54} +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !12, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !60 = !DILocation(line: 9, column: 28, scope: !57) +// CHECK:STDOUT: !61 = !DILocation(line: 9, column: 21, scope: !57) +// CHECK:STDOUT: !62 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !63 = !{!"omnipotent char", !62, i64 0} +// CHECK:STDOUT: !64 = !{!"any pointer", !63, i64 0} +// CHECK:STDOUT: !65 = !{!"p1 _ZTS1C", !64, i64 0} +// CHECK:STDOUT: !66 = !{!65, !65, i64 0} +// CHECK:STDOUT: !68 = !{!"int", !63, i64 0} +// CHECK:STDOUT: !69 = !{!"p1 int", !64, i64 0} +// CHECK:STDOUT: !70 = !{!69, !69, i64 0} +// CHECK:STDOUT: !71 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !72 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !73 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !74 = !{!"__libc_errno", !68, i64 0} +// CHECK:STDOUT: !75 = !{!74, !68, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'pass_references_via_thunk.carbon' @@ -329,49 +329,49 @@ fn GetRefs() { // CHECK:STDOUT: @C.val.loc20_20.3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassRefs.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassRefs.Main() #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !15 -// CHECK:STDOUT: %.loc20_18.2.temp = alloca {}, align 1, !dbg !16 -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !17 -// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !18 -// CHECK:STDOUT: %.loc26_23.2.temp = alloca i32, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %c.var), !dbg !15 -// CHECK:STDOUT: call void @_Z8TakeCRefR1C10ForceThunk.carbon_thunk.r(ptr %c.var), !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.2.temp), !dbg !16 -// CHECK:STDOUT: call void @_Z9TakeCRRefRK1C10ForceThunk.carbon_thunk._(ptr @C.val.loc20_20.3), !dbg !21 -// CHECK:STDOUT: call void @_Z13TakeConstCRefRK1C10ForceThunk.carbon_thunk._(ptr %c.var), !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !17 -// CHECK:STDOUT: store i32 poison, ptr %n.var, align 4, !dbg !17 -// CHECK:STDOUT: call void @_Z10TakeIntRefRi10ForceThunk.carbon_thunk.r(ptr %n.var), !dbg !23 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !18 -// CHECK:STDOUT: store i32 42, ptr %_.var, align 4, !dbg !18 -// CHECK:STDOUT: call void @_Z11TakeIntRRefOi10ForceThunk.carbon_thunk.v(ptr %_.var), !dbg !24 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !18 -// CHECK:STDOUT: %.loc26_23.1 = load i32, ptr %n.var, align 4, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_23.2.temp), !dbg !19 -// CHECK:STDOUT: store i32 %.loc26_23.1, ptr %.loc26_23.2.temp, align 4, !dbg !19 -// CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi10ForceThunk.carbon_thunk._(ptr %.loc26_23.2.temp), !dbg !25 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc26_23.2.temp), !dbg !19 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !17 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !79 +// CHECK:STDOUT: %.loc20_18.2.temp = alloca {}, align 1, !dbg !84 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !88 +// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !93 +// CHECK:STDOUT: %.loc26_23.2.temp = alloca i32, align 4, !dbg !95 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !79 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %c.var), !dbg !79 +// CHECK:STDOUT: call void @_Z8TakeCRefR1C10ForceThunk.carbon_thunk.r(ptr %c.var), !dbg !83 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.2.temp), !dbg !84 +// CHECK:STDOUT: call void @_Z9TakeCRRefRK1C10ForceThunk.carbon_thunk._(ptr @C.val.loc20_20.3), !dbg !85 +// CHECK:STDOUT: call void @_Z13TakeConstCRefRK1C10ForceThunk.carbon_thunk._(ptr %c.var), !dbg !87 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !88 +// CHECK:STDOUT: store i32 poison, ptr %n.var, align 4, !dbg !88 +// CHECK:STDOUT: call void @_Z10TakeIntRefRi10ForceThunk.carbon_thunk.r(ptr %n.var), !dbg !92 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !93 +// CHECK:STDOUT: store i32 42, ptr %_.var, align 4, !dbg !93 +// CHECK:STDOUT: call void @_Z11TakeIntRRefOi10ForceThunk.carbon_thunk.v(ptr %_.var), !dbg !94 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !93 +// CHECK:STDOUT: %.loc26_23.1 = load i32, ptr %n.var, align 4, !dbg !95 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_23.2.temp), !dbg !95 +// CHECK:STDOUT: store i32 %.loc26_23.1, ptr %.loc26_23.2.temp, align 4, !dbg !95 +// CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi10ForceThunk.carbon_thunk._(ptr %.loc26_23.2.temp), !dbg !96 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %.loc26_23.2.temp), !dbg !95 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !88 +// CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN1CC1Ev.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !27 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !66 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !98 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !100 +// CHECK:STDOUT: ret void, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -379,8 +379,8 @@ fn GetRefs() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.ForceThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !27, !nonnull !35 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !66, !nonnull !110 // CHECK:STDOUT: call void @_Z8TakeCRefR1C10ForceThunk(ptr noundef nonnull align 1 dereferenceable(1) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -390,8 +390,8 @@ fn GetRefs() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.ForceThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !27 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !66 // CHECK:STDOUT: call void @_Z9TakeCRRefRK1C10ForceThunk(ptr noundef nonnull align 1 dereferenceable(1) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -401,8 +401,8 @@ fn GetRefs() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.ForceThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !27 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !27 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !66 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !66 // CHECK:STDOUT: call void @_Z13TakeConstCRefRK1C10ForceThunk(ptr noundef nonnull align 1 dereferenceable(1) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -412,8 +412,8 @@ fn GetRefs() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.ForceThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !36 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !36, !nonnull !35, !align !38 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !70 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !70, !nonnull !110, !align !112 // CHECK:STDOUT: call void @_Z10TakeIntRefRi10ForceThunk(ptr noundef nonnull align 4 dereferenceable(4) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -423,16 +423,16 @@ fn GetRefs() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.ForceThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !36 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !36 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !70 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !70 // CHECK:STDOUT: call void @_Z11TakeIntRRefOi10ForceThunk(ptr noundef nonnull align 4 dereferenceable(4) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !101 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -440,8 +440,8 @@ fn GetRefs() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.ForceThunk, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !36 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !36 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !70 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !70 // CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi10ForceThunk(ptr noundef nonnull align 4 dereferenceable(4) %1) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -450,9 +450,9 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret({}) %return) #0 !dbg !46 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !48 -// CHECK:STDOUT: ret void, !dbg !49 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret({}) %return) #0 !dbg !105 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !108 +// CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z8TakeCRefR1C10ForceThunk(ptr noundef nonnull align 1 dereferenceable(1)) #5 @@ -478,60 +478,60 @@ fn GetRefs() { // CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!77} +// CHECK:STDOUT: !llvm.module.flags = !{!71, !72, !73, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!75} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pass_references_via_thunk.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassRefs", linkageName: "_CPassRefs.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 18, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 20, column: 17, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 23, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 23, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 26, column: 23, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 20, column: 3, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 21, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 24, column: 3, scope: !12) -// CHECK:STDOUT: !24 = !DILocation(line: 25, column: 3, scope: !12) -// CHECK:STDOUT: !25 = !DILocation(line: 26, column: 3, scope: !12) -// CHECK:STDOUT: !26 = !DILocation(line: 17, column: 1, scope: !12) -// CHECK:STDOUT: !27 = !{!28, !28, i64 0} -// CHECK:STDOUT: !28 = !{!"p1 _ZTS1C", !29, i64 0} -// CHECK:STDOUT: !29 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !1, line: 5, type: !31, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 7, scope: !30) -// CHECK:STDOUT: !35 = !{} -// CHECK:STDOUT: !36 = !{!37, !37, i64 0} -// CHECK:STDOUT: !37 = !{!"p1 int", !29, i64 0} -// CHECK:STDOUT: !38 = !{i64 4} -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 13, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !43) -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{null, !42} -// CHECK:STDOUT: !42 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !43 = !{!44} -// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !39, type: !42) -// CHECK:STDOUT: !45 = !DILocation(line: 13, column: 23, scope: !39) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !47, line: 9, type: !31, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !47 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") -// CHECK:STDOUT: !48 = !DILocation(line: 9, column: 28, scope: !46) -// CHECK:STDOUT: !49 = !DILocation(line: 9, column: 21, scope: !46) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !12 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{!23} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !20} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !62 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !63 = !{!"omnipotent char", !62, i64 0} +// CHECK:STDOUT: !64 = !{!"any pointer", !63, i64 0} +// CHECK:STDOUT: !65 = !{!"p1 _ZTS1C", !64, i64 0} +// CHECK:STDOUT: !66 = !{!65, !65, i64 0} +// CHECK:STDOUT: !68 = !{!"int", !63, i64 0} +// CHECK:STDOUT: !69 = !{!"p1 int", !64, i64 0} +// CHECK:STDOUT: !70 = !{!69, !69, i64 0} +// CHECK:STDOUT: !71 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !72 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !73 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !74 = !{!"__libc_errno", !68, i64 0} +// CHECK:STDOUT: !75 = !{!74, !68, i64 0} +// CHECK:STDOUT: !76 = !DIFile(filename: "pass_references_via_thunk.carbon", directory: "") +// CHECK:STDOUT: !77 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !76, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "PassRefs", linkageName: "_CPassRefs.Main", scope: null, file: !76, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !77) +// CHECK:STDOUT: !79 = !DILocation(line: 18, column: 3, scope: !78) +// CHECK:STDOUT: !83 = !DILocation(line: 19, column: 3, scope: !78) +// CHECK:STDOUT: !84 = !DILocation(line: 20, column: 17, scope: !78) +// CHECK:STDOUT: !85 = !DILocation(line: 20, column: 3, scope: !78) +// CHECK:STDOUT: !87 = !DILocation(line: 21, column: 3, scope: !78) +// CHECK:STDOUT: !88 = !DILocation(line: 23, column: 3, scope: !78) +// CHECK:STDOUT: !92 = !DILocation(line: 24, column: 3, scope: !78) +// CHECK:STDOUT: !93 = !DILocation(line: 13, column: 23, scope: !78) +// CHECK:STDOUT: !94 = !DILocation(line: 25, column: 3, scope: !78) +// CHECK:STDOUT: !95 = !DILocation(line: 26, column: 23, scope: !78) +// CHECK:STDOUT: !96 = !DILocation(line: 26, column: 3, scope: !78) +// CHECK:STDOUT: !97 = !DILocation(line: 17, column: 1, scope: !78) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !76, line: 5, type: !27, spFlags: DISPFlagDefinition, unit: !77) +// CHECK:STDOUT: !100 = !DILocation(line: 5, column: 7, scope: !98) +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !76, line: 13, type: !29, spFlags: DISPFlagDefinition, unit: !77, retainedNodes: !104) +// CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !101, type: !20) +// CHECK:STDOUT: !103 = !DILocation(line: 13, column: 23, scope: !101) +// CHECK:STDOUT: !104 = !{!102} +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !12, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !77) +// CHECK:STDOUT: !108 = !DILocation(line: 9, column: 28, scope: !105) +// CHECK:STDOUT: !109 = !DILocation(line: 9, column: 21, scope: !105) +// CHECK:STDOUT: !110 = !{} +// CHECK:STDOUT: !112 = !{i64 4} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'return_references.carbon' @@ -540,15 +540,15 @@ fn GetRefs() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CGetRefs.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CGetRefs.Main() #0 !dbg !115 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnCRef.call = call ptr @_Z10ReturnCRefv(), !dbg !15 -// CHECK:STDOUT: %ReturnCRRef.call = call ptr @_Z11ReturnCRRefv(), !dbg !16 -// CHECK:STDOUT: %ReturnConstCRef.call = call ptr @_Z15ReturnConstCRefv(), !dbg !17 -// CHECK:STDOUT: %ReturnIntRef.call = call ptr @_Z12ReturnIntRefv(), !dbg !18 -// CHECK:STDOUT: %ReturnIntRRef.call = call ptr @_Z13ReturnIntRRefv(), !dbg !19 -// CHECK:STDOUT: %ReturnConstIntRef.call = call ptr @_Z17ReturnConstIntRefv(), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %ReturnCRef.call = call ptr @_Z10ReturnCRefv(), !dbg !116 +// CHECK:STDOUT: %ReturnCRRef.call = call ptr @_Z11ReturnCRRefv(), !dbg !119 +// CHECK:STDOUT: %ReturnConstCRef.call = call ptr @_Z15ReturnConstCRefv(), !dbg !122 +// CHECK:STDOUT: %ReturnIntRef.call = call ptr @_Z12ReturnIntRefv(), !dbg !125 +// CHECK:STDOUT: %ReturnIntRRef.call = call ptr @_Z13ReturnIntRRefv(), !dbg !128 +// CHECK:STDOUT: %ReturnConstIntRef.call = call ptr @_Z17ReturnConstIntRefv(), !dbg !131 +// CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef nonnull align 1 dereferenceable(1) ptr @_Z10ReturnCRefv() #1 @@ -566,32 +566,32 @@ fn GetRefs() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!114} +// CHECK:STDOUT: !llvm.module.flags = !{!71, !72, !73, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!75} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_references.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "GetRefs", linkageName: "_CGetRefs.Main", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 22, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 22, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 28, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 21, column: 20, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 20, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 23, column: 26, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 16, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !62 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !63 = !{!"omnipotent char", !62, i64 0} +// CHECK:STDOUT: !68 = !{!"int", !63, i64 0} +// CHECK:STDOUT: !71 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !72 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !73 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !74 = !{!"__libc_errno", !68, i64 0} +// CHECK:STDOUT: !75 = !{!74, !68, i64 0} +// CHECK:STDOUT: !113 = !DIFile(filename: "return_references.carbon", directory: "") +// CHECK:STDOUT: !114 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !113, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "GetRefs", linkageName: "_CGetRefs.Main", scope: null, file: !113, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !114) +// CHECK:STDOUT: !116 = !DILocation(line: 17, column: 22, scope: !115) +// CHECK:STDOUT: !119 = !DILocation(line: 18, column: 22, scope: !115) +// CHECK:STDOUT: !122 = !DILocation(line: 19, column: 28, scope: !115) +// CHECK:STDOUT: !125 = !DILocation(line: 21, column: 20, scope: !115) +// CHECK:STDOUT: !128 = !DILocation(line: 22, column: 20, scope: !115) +// CHECK:STDOUT: !131 = !DILocation(line: 23, column: 26, scope: !115) +// CHECK:STDOUT: !134 = !DILocation(line: 16, column: 1, scope: !115) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'return_references_via_thunk.carbon' @@ -602,15 +602,15 @@ fn GetRefs() { // CHECK:STDOUT: %class.ForceThunk.23 = type { i8 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CGetRefs.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CGetRefs.Main() #0 !dbg !137 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %ReturnCRef__carbon_thunk.call = call ptr @_Z10ReturnCRef10ForceThunk.carbon_thunk.(), !dbg !15 -// CHECK:STDOUT: %ReturnCRRef__carbon_thunk.call = call ptr @_Z11ReturnCRRef10ForceThunk.carbon_thunk.(), !dbg !16 -// CHECK:STDOUT: %ReturnConstCRef__carbon_thunk.call = call ptr @_Z15ReturnConstCRef10ForceThunk.carbon_thunk.(), !dbg !17 -// CHECK:STDOUT: %ReturnIntRef__carbon_thunk.call = call ptr @_Z12ReturnIntRef10ForceThunk.carbon_thunk.(), !dbg !18 -// CHECK:STDOUT: %ReturnIntRRef__carbon_thunk.call = call ptr @_Z13ReturnIntRRef10ForceThunk.carbon_thunk.(), !dbg !19 -// CHECK:STDOUT: %ReturnConstIntRef__carbon_thunk.call = call ptr @_Z17ReturnConstIntRef10ForceThunk.carbon_thunk.(), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %ReturnCRef__carbon_thunk.call = call ptr @_Z10ReturnCRef10ForceThunk.carbon_thunk.(), !dbg !138 +// CHECK:STDOUT: %ReturnCRRef__carbon_thunk.call = call ptr @_Z11ReturnCRRef10ForceThunk.carbon_thunk.(), !dbg !141 +// CHECK:STDOUT: %ReturnConstCRef__carbon_thunk.call = call ptr @_Z15ReturnConstCRef10ForceThunk.carbon_thunk.(), !dbg !144 +// CHECK:STDOUT: %ReturnIntRef__carbon_thunk.call = call ptr @_Z12ReturnIntRef10ForceThunk.carbon_thunk.(), !dbg !147 +// CHECK:STDOUT: %ReturnIntRRef__carbon_thunk.call = call ptr @_Z13ReturnIntRRef10ForceThunk.carbon_thunk.(), !dbg !150 +// CHECK:STDOUT: %ReturnConstIntRef__carbon_thunk.call = call ptr @_Z17ReturnConstIntRef10ForceThunk.carbon_thunk.(), !dbg !153 +// CHECK:STDOUT: ret void, !dbg !156 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -677,30 +677,30 @@ fn GetRefs() { // CHECK:STDOUT: attributes #1 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!136} +// CHECK:STDOUT: !llvm.module.flags = !{!71, !72, !73, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!75} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_references_via_thunk.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "GetRefs", linkageName: "_CGetRefs.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 18, column: 22, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 22, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 20, column: 28, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 22, column: 20, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 23, column: 20, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 24, column: 26, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 1, scope: !12) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !62 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !63 = !{!"omnipotent char", !62, i64 0} +// CHECK:STDOUT: !68 = !{!"int", !63, i64 0} +// CHECK:STDOUT: !71 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !72 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !73 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !74 = !{!"__libc_errno", !68, i64 0} +// CHECK:STDOUT: !75 = !{!74, !68, i64 0} +// CHECK:STDOUT: !135 = !DIFile(filename: "return_references_via_thunk.carbon", directory: "") +// CHECK:STDOUT: !136 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !135, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "GetRefs", linkageName: "_CGetRefs.Main", scope: null, file: !135, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !136) +// CHECK:STDOUT: !138 = !DILocation(line: 18, column: 22, scope: !137) +// CHECK:STDOUT: !141 = !DILocation(line: 19, column: 22, scope: !137) +// CHECK:STDOUT: !144 = !DILocation(line: 20, column: 28, scope: !137) +// CHECK:STDOUT: !147 = !DILocation(line: 22, column: 20, scope: !137) +// CHECK:STDOUT: !150 = !DILocation(line: 23, column: 20, scope: !137) +// CHECK:STDOUT: !153 = !DILocation(line: 24, column: 26, scope: !137) +// CHECK:STDOUT: !156 = !DILocation(line: 17, column: 1, scope: !137) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/share_ast.carbon b/toolchain/lower/testdata/interop/cpp/share_ast.carbon index a0505dc25f11..c64f552ddf8f 100644 --- a/toolchain/lower/testdata/interop/cpp/share_ast.carbon +++ b/toolchain/lower/testdata/interop/cpp/share_ast.carbon @@ -74,22 +74,22 @@ fn TestB() -> i32 { // CHECK:STDOUT: $_Z6make_av = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTest.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CTest.Main() #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [8 x i8], align 4, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !16 -// CHECK:STDOUT: call void @_Z6make_av.carbon_thunk.(ptr %a.var), !dbg !17 -// CHECK:STDOUT: %.loc6_11.1.b = getelementptr inbounds nuw [8 x i8], ptr %a.var, i32 0, i32 4, !dbg !18 -// CHECK:STDOUT: %.loc6_11.2 = load i32, ptr %.loc6_11.1.b, align 4, !dbg !18 -// CHECK:STDOUT: ret i32 %.loc6_11.2, !dbg !19 +// CHECK:STDOUT: %a.var = alloca [8 x i8], align 4, !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !43 +// CHECK:STDOUT: call void @_Z6make_av.carbon_thunk.(ptr %a.var), !dbg !44 +// CHECK:STDOUT: %.loc6_11.1.b = getelementptr inbounds nuw [8 x i8], ptr %a.var, i32 0, i32 4, !dbg !46 +// CHECK:STDOUT: %.loc6_11.2 = load i32, ptr %.loc6_11.1.b, align 4, !dbg !46 +// CHECK:STDOUT: ret i32 %.loc6_11.2, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z6make_av.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !52 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !52 // CHECK:STDOUT: %call = call i64 @_Z6make_av() // CHECK:STDOUT: store i64 %call, ptr %0, align 4 // CHECK:STDOUT: ret void @@ -103,9 +103,9 @@ fn TestB() -> i32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %retval = alloca %struct.A, align 4 // CHECK:STDOUT: %a = getelementptr inbounds nuw %struct.A, ptr %retval, i32 0, i32 0 -// CHECK:STDOUT: store i32 1, ptr %a, align 4, !tbaa !23 +// CHECK:STDOUT: store i32 1, ptr %a, align 4, !tbaa !55 // CHECK:STDOUT: %b = getelementptr inbounds nuw %struct.A, ptr %retval, i32 0, i32 1 -// CHECK:STDOUT: store i32 2, ptr %b, align 4, !tbaa !25 +// CHECK:STDOUT: store i32 2, ptr %b, align 4, !tbaa !56 // CHECK:STDOUT: %0 = load i64, ptr %retval, align 4 // CHECK:STDOUT: ret i64 %0 // CHECK:STDOUT: } @@ -115,36 +115,36 @@ fn TestB() -> i32 { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} +// CHECK:STDOUT: !llvm.module.flags = !{!57, !58, !59, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!61} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_a.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 4, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 5, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 5, column: 18, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 6, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 6, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS1A", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = !{!24, !9, i64 0} -// CHECK:STDOUT: !24 = !{!"_ZTS1A", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !25 = !{!24, !9, i64 4} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !DIFile(filename: "use_a.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !32, line: 4, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !43 = !DILocation(line: 5, column: 3, scope: !40) +// CHECK:STDOUT: !44 = !DILocation(line: 5, column: 18, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 6, column: 10, scope: !40) +// CHECK:STDOUT: !47 = !DILocation(line: 6, column: 3, scope: !40) +// CHECK:STDOUT: !48 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !49 = !{!"omnipotent char", !48, i64 0} +// CHECK:STDOUT: !50 = !{!"any pointer", !49, i64 0} +// CHECK:STDOUT: !51 = !{!"p1 _ZTS1A", !50, i64 0} +// CHECK:STDOUT: !52 = !{!51, !51, i64 0} +// CHECK:STDOUT: !53 = !{!"int", !49, i64 0} +// CHECK:STDOUT: !54 = !{!"_ZTS1A", !53, i64 0, !53, i64 4} +// CHECK:STDOUT: !55 = !{!54, !53, i64 0} +// CHECK:STDOUT: !56 = !{!54, !53, i64 4} +// CHECK:STDOUT: !57 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !58 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !59 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !60 = !{!"__libc_errno", !53, i64 0} +// CHECK:STDOUT: !61 = !{!60, !53, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_b.carbon' @@ -157,22 +157,22 @@ fn TestB() -> i32 { // CHECK:STDOUT: $_Z6make_bv = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTest.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CTest.Main() #0 !dbg !64 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %b.var = alloca [8 x i8], align 4, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !16 -// CHECK:STDOUT: call void @_Z6make_bv.carbon_thunk.(ptr %b.var), !dbg !17 -// CHECK:STDOUT: %.loc6_11.1.x = getelementptr inbounds nuw [8 x i8], ptr %b.var, i32 0, i32 0, !dbg !18 -// CHECK:STDOUT: %.loc6_11.2 = load i32, ptr %.loc6_11.1.x, align 4, !dbg !18 -// CHECK:STDOUT: ret i32 %.loc6_11.2, !dbg !19 +// CHECK:STDOUT: %b.var = alloca [8 x i8], align 4, !dbg !67 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !67 +// CHECK:STDOUT: call void @_Z6make_bv.carbon_thunk.(ptr %b.var), !dbg !68 +// CHECK:STDOUT: %.loc6_11.1.x = getelementptr inbounds nuw [8 x i8], ptr %b.var, i32 0, i32 0, !dbg !70 +// CHECK:STDOUT: %.loc6_11.2 = load i32, ptr %.loc6_11.1.x, align 4, !dbg !70 +// CHECK:STDOUT: ret i32 %.loc6_11.2, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z6make_bv.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !73 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !73 // CHECK:STDOUT: %call = call i64 @_Z6make_bv() // CHECK:STDOUT: store i64 %call, ptr %0, align 4 // CHECK:STDOUT: ret void @@ -186,9 +186,9 @@ fn TestB() -> i32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %retval = alloca %struct.B, align 4 // CHECK:STDOUT: %x = getelementptr inbounds nuw %struct.B, ptr %retval, i32 0, i32 0 -// CHECK:STDOUT: store i32 3, ptr %x, align 4, !tbaa !23 +// CHECK:STDOUT: store i32 3, ptr %x, align 4, !tbaa !75 // CHECK:STDOUT: %y = getelementptr inbounds nuw %struct.B, ptr %retval, i32 0, i32 1 -// CHECK:STDOUT: store i32 4, ptr %y, align 4, !tbaa !25 +// CHECK:STDOUT: store i32 4, ptr %y, align 4, !tbaa !76 // CHECK:STDOUT: %0 = load i64, ptr %retval, align 4 // CHECK:STDOUT: ret i64 %0 // CHECK:STDOUT: } @@ -198,36 +198,36 @@ fn TestB() -> i32 { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!63} +// CHECK:STDOUT: !llvm.module.flags = !{!57, !58, !59, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!61} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_b.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !1, line: 4, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 5, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 5, column: 18, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 6, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 6, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS1B", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = !{!24, !9, i64 0} -// CHECK:STDOUT: !24 = !{!"_ZTS1B", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !25 = !{!24, !9, i64 4} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !48 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !49 = !{!"omnipotent char", !48, i64 0} +// CHECK:STDOUT: !50 = !{!"any pointer", !49, i64 0} +// CHECK:STDOUT: !53 = !{!"int", !49, i64 0} +// CHECK:STDOUT: !57 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !58 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !59 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !60 = !{!"__libc_errno", !53, i64 0} +// CHECK:STDOUT: !61 = !{!60, !53, i64 0} +// CHECK:STDOUT: !62 = !DIFile(filename: "use_b.carbon", directory: "") +// CHECK:STDOUT: !63 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !62, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Test", linkageName: "_CTest.Main", scope: null, file: !62, line: 4, type: !36, spFlags: DISPFlagDefinition, unit: !63) +// CHECK:STDOUT: !67 = !DILocation(line: 5, column: 3, scope: !64) +// CHECK:STDOUT: !68 = !DILocation(line: 5, column: 18, scope: !64) +// CHECK:STDOUT: !70 = !DILocation(line: 6, column: 10, scope: !64) +// CHECK:STDOUT: !71 = !DILocation(line: 6, column: 3, scope: !64) +// CHECK:STDOUT: !72 = !{!"p1 _ZTS1B", !50, i64 0} +// CHECK:STDOUT: !73 = !{!72, !72, i64 0} +// CHECK:STDOUT: !74 = !{!"_ZTS1B", !53, i64 0, !53, i64 4} +// CHECK:STDOUT: !75 = !{!74, !53, i64 0} +// CHECK:STDOUT: !76 = !{!74, !53, i64 4} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_both.carbon' @@ -243,44 +243,44 @@ fn TestB() -> i32 { // CHECK:STDOUT: $_Z6make_bv = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestA.Main() #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CTestA.Main() #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca [8 x i8], align 4, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !16 -// CHECK:STDOUT: call void @_Z6make_av.carbon_thunk.(ptr %a.var), !dbg !17 -// CHECK:STDOUT: %.loc7_11.1.b = getelementptr inbounds nuw [8 x i8], ptr %a.var, i32 0, i32 4, !dbg !18 -// CHECK:STDOUT: %.loc7_11.2 = load i32, ptr %.loc7_11.1.b, align 4, !dbg !18 -// CHECK:STDOUT: ret i32 %.loc7_11.2, !dbg !19 +// CHECK:STDOUT: %a.var = alloca [8 x i8], align 4, !dbg !82 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !82 +// CHECK:STDOUT: call void @_Z6make_av.carbon_thunk.(ptr %a.var), !dbg !83 +// CHECK:STDOUT: %.loc7_11.1.b = getelementptr inbounds nuw [8 x i8], ptr %a.var, i32 0, i32 4, !dbg !85 +// CHECK:STDOUT: %.loc7_11.2 = load i32, ptr %.loc7_11.1.b, align 4, !dbg !85 +// CHECK:STDOUT: ret i32 %.loc7_11.2, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z6make_av.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !20 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !20 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !52 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !52 // CHECK:STDOUT: %call = call i64 @_Z6make_av() // CHECK:STDOUT: store i64 %call, ptr %0, align 4 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CTestB.Main() #0 !dbg !23 { +// CHECK:STDOUT: define i32 @_CTestB.Main() #0 !dbg !87 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %b.var = alloca [8 x i8], align 4, !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !24 -// CHECK:STDOUT: call void @_Z6make_bv.carbon_thunk.(ptr %b.var), !dbg !25 -// CHECK:STDOUT: %.loc12_11.1.x = getelementptr inbounds nuw [8 x i8], ptr %b.var, i32 0, i32 0, !dbg !26 -// CHECK:STDOUT: %.loc12_11.2 = load i32, ptr %.loc12_11.1.x, align 4, !dbg !26 -// CHECK:STDOUT: ret i32 %.loc12_11.2, !dbg !27 +// CHECK:STDOUT: %b.var = alloca [8 x i8], align 4, !dbg !90 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !90 +// CHECK:STDOUT: call void @_Z6make_bv.carbon_thunk.(ptr %b.var), !dbg !91 +// CHECK:STDOUT: %.loc12_11.1.x = getelementptr inbounds nuw [8 x i8], ptr %b.var, i32 0, i32 0, !dbg !93 +// CHECK:STDOUT: %.loc12_11.2 = load i32, ptr %.loc12_11.1.x, align 4, !dbg !93 +// CHECK:STDOUT: ret i32 %.loc12_11.2, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_Z6make_bv.carbon_thunk.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !28 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !28 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !73 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !73 // CHECK:STDOUT: %call = call i64 @_Z6make_bv() // CHECK:STDOUT: store i64 %call, ptr %0, align 4 // CHECK:STDOUT: ret void @@ -294,9 +294,9 @@ fn TestB() -> i32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %retval = alloca %struct.A.32, align 4 // CHECK:STDOUT: %a = getelementptr inbounds nuw %struct.A.32, ptr %retval, i32 0, i32 0 -// CHECK:STDOUT: store i32 1, ptr %a, align 4, !tbaa !30 +// CHECK:STDOUT: store i32 1, ptr %a, align 4, !tbaa !55 // CHECK:STDOUT: %b = getelementptr inbounds nuw %struct.A.32, ptr %retval, i32 0, i32 1 -// CHECK:STDOUT: store i32 2, ptr %b, align 4, !tbaa !32 +// CHECK:STDOUT: store i32 2, ptr %b, align 4, !tbaa !56 // CHECK:STDOUT: %0 = load i64, ptr %retval, align 4 // CHECK:STDOUT: ret i64 %0 // CHECK:STDOUT: } @@ -306,9 +306,9 @@ fn TestB() -> i32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %retval = alloca %struct.B.33, align 4 // CHECK:STDOUT: %x = getelementptr inbounds nuw %struct.B.33, ptr %retval, i32 0, i32 0 -// CHECK:STDOUT: store i32 3, ptr %x, align 4, !tbaa !33 +// CHECK:STDOUT: store i32 3, ptr %x, align 4, !tbaa !75 // CHECK:STDOUT: %y = getelementptr inbounds nuw %struct.B.33, ptr %retval, i32 0, i32 1 -// CHECK:STDOUT: store i32 4, ptr %y, align 4, !tbaa !35 +// CHECK:STDOUT: store i32 4, ptr %y, align 4, !tbaa !76 // CHECK:STDOUT: %0 = load i64, ptr %retval, align 4 // CHECK:STDOUT: ret i64 %0 // CHECK:STDOUT: } @@ -321,44 +321,44 @@ fn TestB() -> i32 { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!78} +// CHECK:STDOUT: !llvm.module.flags = !{!57, !58, !59, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!61} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_both.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "TestA", linkageName: "_CTestA.Main", scope: null, file: !1, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !DILocation(line: 6, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 18, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !{!21, !21, i64 0} -// CHECK:STDOUT: !21 = !{!"p1 _ZTS1A", !22, i64 0} -// CHECK:STDOUT: !22 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "TestB", linkageName: "_CTestB.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 3, scope: !23) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 18, scope: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 12, column: 10, scope: !23) -// CHECK:STDOUT: !27 = !DILocation(line: 12, column: 3, scope: !23) -// CHECK:STDOUT: !28 = !{!29, !29, i64 0} -// CHECK:STDOUT: !29 = !{!"p1 _ZTS1B", !22, i64 0} -// CHECK:STDOUT: !30 = !{!31, !9, i64 0} -// CHECK:STDOUT: !31 = !{!"_ZTS1A", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !32 = !{!31, !9, i64 4} -// CHECK:STDOUT: !33 = !{!34, !9, i64 0} -// CHECK:STDOUT: !34 = !{!"_ZTS1B", !9, i64 0, !9, i64 4} -// CHECK:STDOUT: !35 = !{!34, !9, i64 4} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !48 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !49 = !{!"omnipotent char", !48, i64 0} +// CHECK:STDOUT: !50 = !{!"any pointer", !49, i64 0} +// CHECK:STDOUT: !51 = !{!"p1 _ZTS1A", !50, i64 0} +// CHECK:STDOUT: !52 = !{!51, !51, i64 0} +// CHECK:STDOUT: !53 = !{!"int", !49, i64 0} +// CHECK:STDOUT: !54 = !{!"_ZTS1A", !53, i64 0, !53, i64 4} +// CHECK:STDOUT: !55 = !{!54, !53, i64 0} +// CHECK:STDOUT: !56 = !{!54, !53, i64 4} +// CHECK:STDOUT: !57 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !58 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !59 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !60 = !{!"__libc_errno", !53, i64 0} +// CHECK:STDOUT: !61 = !{!60, !53, i64 0} +// CHECK:STDOUT: !72 = !{!"p1 _ZTS1B", !50, i64 0} +// CHECK:STDOUT: !73 = !{!72, !72, i64 0} +// CHECK:STDOUT: !74 = !{!"_ZTS1B", !53, i64 0, !53, i64 4} +// CHECK:STDOUT: !75 = !{!74, !53, i64 0} +// CHECK:STDOUT: !76 = !{!74, !53, i64 4} +// CHECK:STDOUT: !77 = !DIFile(filename: "use_both.carbon", directory: "") +// CHECK:STDOUT: !78 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !77, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "TestA", linkageName: "_CTestA.Main", scope: null, file: !77, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !78) +// CHECK:STDOUT: !82 = !DILocation(line: 6, column: 3, scope: !79) +// CHECK:STDOUT: !83 = !DILocation(line: 6, column: 18, scope: !79) +// CHECK:STDOUT: !85 = !DILocation(line: 7, column: 10, scope: !79) +// CHECK:STDOUT: !86 = !DILocation(line: 7, column: 3, scope: !79) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "TestB", linkageName: "_CTestB.Main", scope: null, file: !77, line: 10, type: !36, spFlags: DISPFlagDefinition, unit: !78) +// CHECK:STDOUT: !90 = !DILocation(line: 11, column: 3, scope: !87) +// CHECK:STDOUT: !91 = !DILocation(line: 11, column: 18, scope: !87) +// CHECK:STDOUT: !93 = !DILocation(line: 12, column: 10, scope: !87) +// CHECK:STDOUT: !94 = !DILocation(line: 12, column: 3, scope: !87) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon index 8a6b8fe14eb5..27e9a7836b6d 100644 --- a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_pointer.carbon @@ -86,57 +86,57 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: declare void @_CWithinLifetime.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitDirectly.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CInitDirectly.Main() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !15 -// CHECK:STDOUT: %.loc13_50.3.temp = alloca [3 x i32], align 4, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_50.3.temp), !dbg !16 -// CHECK:STDOUT: %.loc13_50.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 0, !dbg !16 -// CHECK:STDOUT: %.loc13_50.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 1, !dbg !16 -// CHECK:STDOUT: %.loc13_50.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 2, !dbg !16 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !15 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !15 -// CHECK:STDOUT: store ptr getelementptr inbounds ([3 x i32], ptr @array.loc13_50.15, i32 1), ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !15 -// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !17 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !17 +// CHECK:STDOUT: %.loc13_50.3.temp = alloca [3 x i32], align 4, !dbg !18 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_50.3.temp), !dbg !18 +// CHECK:STDOUT: %.loc13_50.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 0, !dbg !18 +// CHECK:STDOUT: %.loc13_50.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 1, !dbg !18 +// CHECK:STDOUT: %.loc13_50.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 2, !dbg !18 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !17 +// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !17 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !17 +// CHECK:STDOUT: store ptr getelementptr inbounds ([3 x i32], ptr @array.loc13_50.15, i32 1), ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !17 +// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !20 +// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !18 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitVectorLike.Main() #0 !dbg !33 { +// CHECK:STDOUT: define void @_CInitVectorLike.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !34 -// CHECK:STDOUT: %.loc18_36.3.temp = alloca [16 x i8], align 8, !dbg !35 -// CHECK:STDOUT: %.loc18_36.5.temp = alloca [3 x i32], align 4, !dbg !35 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !34 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.3.temp), !dbg !35 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.5.temp), !dbg !35 -// CHECK:STDOUT: %.loc18_36.6.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 0, !dbg !35 -// CHECK:STDOUT: %.loc18_36.9.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 1, !dbg !35 -// CHECK:STDOUT: %.loc18_36.12.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 2, !dbg !35 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 0, !dbg !35 -// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !35 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 8, !dbg !35 -// CHECK:STDOUT: store ptr getelementptr inbounds ([3 x i32], ptr @array.loc13_50.15, i32 1), ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !35 -// CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.3.temp, ptr %_.var), !dbg !34 -// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !36 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !35 -// CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !31 +// CHECK:STDOUT: %.loc18_36.3.temp = alloca [16 x i8], align 8, !dbg !32 +// CHECK:STDOUT: %.loc18_36.5.temp = alloca [3 x i32], align 4, !dbg !32 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.3.temp), !dbg !32 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.5.temp), !dbg !32 +// CHECK:STDOUT: %.loc18_36.6.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 0, !dbg !32 +// CHECK:STDOUT: %.loc18_36.9.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 1, !dbg !32 +// CHECK:STDOUT: %.loc18_36.12.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 2, !dbg !32 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !32 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 8, !dbg !32 +// CHECK:STDOUT: store ptr getelementptr inbounds ([3 x i32], ptr @array.loc13_50.15, i32 1), ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !32 +// CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.3.temp, ptr %_.var), !dbg !31 +// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !34 +// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !32 +// CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -145,11 +145,11 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %list.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %"class.std::initializer_list", align 8 -// CHECK:STDOUT: store ptr %list, ptr %list.addr, align 8, !tbaa !38 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !41 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !41 -// CHECK:STDOUT: %1 = load ptr, ptr %list.addr, align 8, !tbaa !38 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %1, i64 16, i1 false), !tbaa.struct !43 +// CHECK:STDOUT: store ptr %list, ptr %list.addr, align 8, !tbaa !50 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !52 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !52 +// CHECK:STDOUT: %1 = load ptr, ptr %list.addr, align 8, !tbaa !50 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %1, i64 16, i1 false), !tbaa.struct !57 // CHECK:STDOUT: %2 = getelementptr inbounds nuw { ptr, ptr }, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load ptr, ptr %2, align 8 // CHECK:STDOUT: %4 = getelementptr inbounds nuw { ptr, ptr }, ptr %agg.tmp, i32 0, i32 1 @@ -162,40 +162,40 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN11vector_likeD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !41 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !52 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitNontrivialDtor.Main() #0 !dbg !46 { +// CHECK:STDOUT: define void @_CInitNontrivialDtor.Main() #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !47 -// CHECK:STDOUT: %.loc23_69.17.temp = alloca [3 x [1 x i8]], align 1, !dbg !48 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !47 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc23_69.17.temp), !dbg !48 -// CHECK:STDOUT: %.loc23_69.18.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 0, !dbg !48 -// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.18.array.index), !dbg !48 -// CHECK:STDOUT: %.loc23_69.16.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 1, !dbg !48 -// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.16.array.index), !dbg !48 -// CHECK:STDOUT: %.loc23_69.15.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 2, !dbg !48 -// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.15.array.index), !dbg !48 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !47 -// CHECK:STDOUT: store ptr %.loc23_69.17.temp, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !47 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !47 -// CHECK:STDOUT: %initializer_list.initializer_list.call.array.end = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 1, !dbg !47 -// CHECK:STDOUT: store ptr %initializer_list.initializer_list.call.array.end, ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !47 -// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !49 -// CHECK:STDOUT: call void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !48 -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !37 +// CHECK:STDOUT: %.loc23_69.17.temp = alloca [3 x [1 x i8]], align 1, !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc23_69.17.temp), !dbg !38 +// CHECK:STDOUT: %.loc23_69.18.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 0, !dbg !38 +// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.18.array.index), !dbg !38 +// CHECK:STDOUT: %.loc23_69.16.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 1, !dbg !38 +// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.16.array.index), !dbg !38 +// CHECK:STDOUT: %.loc23_69.15.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 2, !dbg !38 +// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.15.array.index), !dbg !38 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: store ptr %.loc23_69.17.temp, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !37 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.end = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !37 +// CHECK:STDOUT: %initializer_list.initializer_list.call.array.end = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 1, !dbg !37 +// CHECK:STDOUT: store ptr %initializer_list.initializer_list.call.array.end, ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !37 +// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !40 +// CHECK:STDOUT: call void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !51 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !59 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !59 // CHECK:STDOUT: call void @_ZN15nontrivial_dtorC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -204,15 +204,15 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN15nontrivial_dtorD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !59 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -230,7 +230,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: store ptr %list.coerce0, ptr %0, align 8 // CHECK:STDOUT: %1 = getelementptr inbounds nuw { ptr, ptr }, ptr %list, i32 0, i32 1 // CHECK:STDOUT: store ptr %list.coerce1, ptr %1, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !41 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !52 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -239,7 +239,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN15nontrivial_dtorC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !59 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -253,65 +253,65 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!60, !61, !62, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!64} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_pointer_pointer.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "InitDirectly", linkageName: "_CInitDirectly.Main", scope: null, file: !1, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 42, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 14, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 42, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !1, line: 13, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !29} -// CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) -// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 42, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "InitVectorLike", linkageName: "_CInitVectorLike.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !34 = !DILocation(line: 18, column: 3, scope: !33) -// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 28, scope: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 19, column: 3, scope: !33) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 1, scope: !33) -// CHECK:STDOUT: !38 = !{!39, !39, i64 0} -// CHECK:STDOUT: !39 = !{!"p1 _ZTSSt16initializer_listIiE", !40, i64 0} -// CHECK:STDOUT: !40 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !41 = !{!42, !42, i64 0} -// CHECK:STDOUT: !42 = !{!"p1 _ZTS11vector_like", !40, i64 0} -// CHECK:STDOUT: !43 = !{i64 0, i64 8, !44, i64 8, i64 8, !44} -// CHECK:STDOUT: !44 = !{!45, !45, i64 0} -// CHECK:STDOUT: !45 = !{!"p1 int", !40, i64 0} -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "InitNontrivialDtor", linkageName: "_CInitNontrivialDtor.Main", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !47 = !DILocation(line: 23, column: 3, scope: !46) -// CHECK:STDOUT: !48 = !DILocation(line: 23, column: 58, scope: !46) -// CHECK:STDOUT: !49 = !DILocation(line: 24, column: 3, scope: !46) -// CHECK:STDOUT: !50 = !DILocation(line: 22, column: 1, scope: !46) -// CHECK:STDOUT: !51 = !{!52, !52, i64 0} -// CHECK:STDOUT: !52 = !{!"p1 _ZTS15nontrivial_dtor", !40, i64 0} -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baa51490b2bdaa96:core.Destroy.Core", scope: null, file: !1, line: 23, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !29) -// CHECK:STDOUT: !56 = !DILocation(line: 23, column: 58, scope: !53) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "use_pointer_pointer.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{null, !6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !12 = !{null, !11} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "InitDirectly", linkageName: "_CInitDirectly.Main", scope: null, file: !4, line: 12, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 13, column: 3, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 42, scope: !16) +// CHECK:STDOUT: !20 = !DILocation(line: 14, column: 3, scope: !16) +// CHECK:STDOUT: !21 = !DILocation(line: 12, column: 1, scope: !16) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) +// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 42, scope: !22) +// CHECK:STDOUT: !25 = !{!23} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !4, line: 13, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !11) +// CHECK:STDOUT: !28 = !DILocation(line: 13, column: 42, scope: !26) +// CHECK:STDOUT: !29 = !{!27} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "InitVectorLike", linkageName: "_CInitVectorLike.Main", scope: null, file: !4, line: 17, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !31 = !DILocation(line: 18, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 18, column: 28, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 19, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 17, column: 1, scope: !30) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "InitNontrivialDtor", linkageName: "_CInitNontrivialDtor.Main", scope: null, file: !4, line: 22, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !37 = !DILocation(line: 23, column: 3, scope: !36) +// CHECK:STDOUT: !38 = !DILocation(line: 23, column: 58, scope: !36) +// CHECK:STDOUT: !40 = !DILocation(line: 24, column: 3, scope: !36) +// CHECK:STDOUT: !41 = !DILocation(line: 22, column: 1, scope: !36) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baa51490b2bdaa96:core.Destroy.Core", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !11) +// CHECK:STDOUT: !44 = !DILocation(line: 23, column: 58, scope: !42) +// CHECK:STDOUT: !45 = !{!43} +// CHECK:STDOUT: !46 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !47 = !{!"omnipotent char", !46, i64 0} +// CHECK:STDOUT: !48 = !{!"any pointer", !47, i64 0} +// CHECK:STDOUT: !49 = !{!"p1 _ZTSSt16initializer_listIiE", !48, i64 0} +// CHECK:STDOUT: !50 = !{!49, !49, i64 0} +// CHECK:STDOUT: !51 = !{!"p1 _ZTS11vector_like", !48, i64 0} +// CHECK:STDOUT: !52 = !{!51, !51, i64 0} +// CHECK:STDOUT: !53 = !{!"int", !47, i64 0} +// CHECK:STDOUT: !54 = !{!"p1 int", !48, i64 0} +// CHECK:STDOUT: !56 = !{!54, !54, i64 0} +// CHECK:STDOUT: !57 = !{i64 0, i64 8, !56, i64 8, i64 8, !56} +// CHECK:STDOUT: !58 = !{!"p1 _ZTS15nontrivial_dtor", !48, i64 0} +// CHECK:STDOUT: !59 = !{!58, !58, i64 0} +// CHECK:STDOUT: !60 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !61 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !62 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !63 = !{!"__libc_errno", !53, i64 0} +// CHECK:STDOUT: !64 = !{!63, !53, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon index 4b6d88a091b0..561645f623b7 100644 --- a/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon +++ b/toolchain/lower/testdata/interop/cpp/std_initializer_list_pointer_size.carbon @@ -86,57 +86,57 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: declare void @_CWithinLifetime.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitDirectly.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CInitDirectly.Main() #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !15 -// CHECK:STDOUT: %.loc13_50.3.temp = alloca [3 x i32], align 4, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_50.3.temp), !dbg !16 -// CHECK:STDOUT: %.loc13_50.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 0, !dbg !16 -// CHECK:STDOUT: %.loc13_50.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 1, !dbg !16 -// CHECK:STDOUT: %.loc13_50.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 2, !dbg !16 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !15 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !15 -// CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !15 -// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !17 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !18 +// CHECK:STDOUT: %.loc13_50.3.temp = alloca [3 x i32], align 4, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !18 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_50.3.temp), !dbg !19 +// CHECK:STDOUT: %.loc13_50.4.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 0, !dbg !19 +// CHECK:STDOUT: %.loc13_50.7.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 1, !dbg !19 +// CHECK:STDOUT: %.loc13_50.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc13_50.3.temp, i32 0, i64 2, !dbg !19 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !18 +// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !18 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !18 +// CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !18 +// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !21 +// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !19 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitVectorLike.Main() #0 !dbg !33 { +// CHECK:STDOUT: define void @_CInitVectorLike.Main() #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !34 -// CHECK:STDOUT: %.loc18_36.3.temp = alloca [16 x i8], align 8, !dbg !35 -// CHECK:STDOUT: %.loc18_36.5.temp = alloca [3 x i32], align 4, !dbg !35 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !34 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.3.temp), !dbg !35 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.5.temp), !dbg !35 -// CHECK:STDOUT: %.loc18_36.6.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 0, !dbg !35 -// CHECK:STDOUT: %.loc18_36.9.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 1, !dbg !35 -// CHECK:STDOUT: %.loc18_36.12.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 2, !dbg !35 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 0, !dbg !35 -// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !35 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 8, !dbg !35 -// CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !35 -// CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.3.temp, ptr %_.var), !dbg !34 -// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !36 -// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !35 -// CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !34 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %_.var = alloca [1 x i8], align 1, !dbg !32 +// CHECK:STDOUT: %.loc18_36.3.temp = alloca [16 x i8], align 8, !dbg !33 +// CHECK:STDOUT: %.loc18_36.5.temp = alloca [3 x i32], align 4, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !32 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.3.temp), !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_36.5.temp), !dbg !33 +// CHECK:STDOUT: %.loc18_36.6.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 0, !dbg !33 +// CHECK:STDOUT: %.loc18_36.9.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 1, !dbg !33 +// CHECK:STDOUT: %.loc18_36.12.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_36.5.temp, i32 0, i64 2, !dbg !33 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: store ptr @array.loc13_50.15, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !33 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %.loc18_36.3.temp, i32 0, i32 8, !dbg !33 +// CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !33 +// CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.3.temp, ptr %_.var), !dbg !32 +// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !35 +// CHECK:STDOUT: call void @"_COp.3bc428c96004ce87:core.Destroy.Core"(ptr @array), !dbg !33 +// CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -145,11 +145,11 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %list.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %"class.std::initializer_list", align 8 -// CHECK:STDOUT: store ptr %list, ptr %list.addr, align 8, !tbaa !38 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !41 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !41 -// CHECK:STDOUT: %1 = load ptr, ptr %list.addr, align 8, !tbaa !38 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %1, i64 16, i1 false), !tbaa.struct !43 +// CHECK:STDOUT: store ptr %list, ptr %list.addr, align 8, !tbaa !51 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !53 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !53 +// CHECK:STDOUT: %1 = load ptr, ptr %list.addr, align 8, !tbaa !51 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %1, i64 16, i1 false), !tbaa.struct !60 // CHECK:STDOUT: %2 = getelementptr inbounds nuw { ptr, i64 }, ptr %agg.tmp, i32 0, i32 0 // CHECK:STDOUT: %3 = load ptr, ptr %2, align 8 // CHECK:STDOUT: %4 = getelementptr inbounds nuw { ptr, i64 }, ptr %agg.tmp, i32 0, i32 1 @@ -162,39 +162,39 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN11vector_likeD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !41 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !53 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CInitNontrivialDtor.Main() #0 !dbg !48 { +// CHECK:STDOUT: define void @_CInitNontrivialDtor.Main() #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !49 -// CHECK:STDOUT: %.loc23_69.17.temp = alloca [3 x [1 x i8]], align 1, !dbg !50 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !49 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc23_69.17.temp), !dbg !50 -// CHECK:STDOUT: %.loc23_69.18.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 0, !dbg !50 -// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.18.array.index), !dbg !50 -// CHECK:STDOUT: %.loc23_69.16.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 1, !dbg !50 -// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.16.array.index), !dbg !50 -// CHECK:STDOUT: %.loc23_69.15.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 2, !dbg !50 -// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.15.array.index), !dbg !50 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !49 -// CHECK:STDOUT: store ptr %.loc23_69.17.temp, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !49 -// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !49 -// CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !49 -// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !51 -// CHECK:STDOUT: call void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !50 -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: %_.var = alloca [16 x i8], align 8, !dbg !38 +// CHECK:STDOUT: %.loc23_69.17.temp = alloca [3 x [1 x i8]], align 1, !dbg !39 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc23_69.17.temp), !dbg !39 +// CHECK:STDOUT: %.loc23_69.18.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 0, !dbg !39 +// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.18.array.index), !dbg !39 +// CHECK:STDOUT: %.loc23_69.16.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 1, !dbg !39 +// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.16.array.index), !dbg !39 +// CHECK:STDOUT: %.loc23_69.15.array.index = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 0, i64 2, !dbg !39 +// CHECK:STDOUT: call void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr %.loc23_69.15.array.index), !dbg !39 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.begin = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 0, !dbg !38 +// CHECK:STDOUT: store ptr %.loc23_69.17.temp, ptr %initializer_list.initializer_list.call.init_list.begin, align 8, !dbg !38 +// CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !38 +// CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !38 +// CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !41 +// CHECK:STDOUT: call void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !39 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable // CHECK:STDOUT: define internal void @_ZN15nontrivial_dtorC1Ev.carbon_thunk_tuple.(ptr noundef %return) #1 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !53 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !53 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !62 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !62 // CHECK:STDOUT: call void @_ZN15nontrivial_dtorC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -203,15 +203,15 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN15nontrivial_dtorD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !53 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !62 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.baa51490b2bdaa96:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !58 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -229,7 +229,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: store ptr %list.coerce0, ptr %0, align 8 // CHECK:STDOUT: %1 = getelementptr inbounds nuw { ptr, i64 }, ptr %list, i32 0, i32 1 // CHECK:STDOUT: store i64 %list.coerce1, ptr %1, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !41 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !53 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -238,7 +238,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN15nontrivial_dtorC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #2 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !53 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !62 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -252,67 +252,67 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!63, !64, !65, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!67} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_pointer_size.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "InitDirectly", linkageName: "_CInitDirectly.Main", scope: null, file: !1, line: 12, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 42, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 14, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 42, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !1, line: 13, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{null, !29} -// CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) -// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 42, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "InitVectorLike", linkageName: "_CInitVectorLike.Main", scope: null, file: !1, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !34 = !DILocation(line: 18, column: 3, scope: !33) -// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 28, scope: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 19, column: 3, scope: !33) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 1, scope: !33) -// CHECK:STDOUT: !38 = !{!39, !39, i64 0} -// CHECK:STDOUT: !39 = !{!"p1 _ZTSSt16initializer_listIiE", !40, i64 0} -// CHECK:STDOUT: !40 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !41 = !{!42, !42, i64 0} -// CHECK:STDOUT: !42 = !{!"p1 _ZTS11vector_like", !40, i64 0} -// CHECK:STDOUT: !43 = !{i64 0, i64 8, !44, i64 8, i64 8, !46} -// CHECK:STDOUT: !44 = !{!45, !45, i64 0} -// CHECK:STDOUT: !45 = !{!"p1 int", !40, i64 0} -// CHECK:STDOUT: !46 = !{!47, !47, i64 0} -// CHECK:STDOUT: !47 = !{!"long", !10, i64 0} -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "InitNontrivialDtor", linkageName: "_CInitNontrivialDtor.Main", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !49 = !DILocation(line: 23, column: 3, scope: !48) -// CHECK:STDOUT: !50 = !DILocation(line: 23, column: 58, scope: !48) -// CHECK:STDOUT: !51 = !DILocation(line: 24, column: 3, scope: !48) -// CHECK:STDOUT: !52 = !DILocation(line: 22, column: 1, scope: !48) -// CHECK:STDOUT: !53 = !{!54, !54, i64 0} -// CHECK:STDOUT: !54 = !{!"p1 _ZTS15nontrivial_dtor", !40, i64 0} -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baa51490b2bdaa96:core.Destroy.Core", scope: null, file: !1, line: 23, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !29) -// CHECK:STDOUT: !58 = !DILocation(line: 23, column: 58, scope: !55) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "use_pointer_size.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !{null} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{null, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !13 = !{null, !12} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "InitDirectly", linkageName: "_CInitDirectly.Main", scope: null, file: !4, line: 12, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !18 = !DILocation(line: 13, column: 3, scope: !17) +// CHECK:STDOUT: !19 = !DILocation(line: 13, column: 42, scope: !17) +// CHECK:STDOUT: !21 = !DILocation(line: 14, column: 3, scope: !17) +// CHECK:STDOUT: !22 = !DILocation(line: 12, column: 1, scope: !17) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 13, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) +// CHECK:STDOUT: !25 = !DILocation(line: 13, column: 42, scope: !23) +// CHECK:STDOUT: !26 = !{!24} +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3bc428c96004ce87:core.Destroy.Core", scope: null, file: !4, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !12) +// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 42, scope: !27) +// CHECK:STDOUT: !30 = !{!28} +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "InitVectorLike", linkageName: "_CInitVectorLike.Main", scope: null, file: !4, line: 17, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !32 = !DILocation(line: 18, column: 3, scope: !31) +// CHECK:STDOUT: !33 = !DILocation(line: 18, column: 28, scope: !31) +// CHECK:STDOUT: !35 = !DILocation(line: 19, column: 3, scope: !31) +// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 1, scope: !31) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "InitNontrivialDtor", linkageName: "_CInitNontrivialDtor.Main", scope: null, file: !4, line: 22, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !38 = !DILocation(line: 23, column: 3, scope: !37) +// CHECK:STDOUT: !39 = !DILocation(line: 23, column: 58, scope: !37) +// CHECK:STDOUT: !41 = !DILocation(line: 24, column: 3, scope: !37) +// CHECK:STDOUT: !42 = !DILocation(line: 22, column: 1, scope: !37) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baa51490b2bdaa96:core.Destroy.Core", scope: null, file: !4, line: 23, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !43, type: !12) +// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 58, scope: !43) +// CHECK:STDOUT: !46 = !{!44} +// CHECK:STDOUT: !47 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !48 = !{!"omnipotent char", !47, i64 0} +// CHECK:STDOUT: !49 = !{!"any pointer", !48, i64 0} +// CHECK:STDOUT: !50 = !{!"p1 _ZTSSt16initializer_listIiE", !49, i64 0} +// CHECK:STDOUT: !51 = !{!50, !50, i64 0} +// CHECK:STDOUT: !52 = !{!"p1 _ZTS11vector_like", !49, i64 0} +// CHECK:STDOUT: !53 = !{!52, !52, i64 0} +// CHECK:STDOUT: !54 = !{!"int", !48, i64 0} +// CHECK:STDOUT: !55 = !{!"p1 int", !49, i64 0} +// CHECK:STDOUT: !56 = !{!"long", !48, i64 0} +// CHECK:STDOUT: !58 = !{!55, !55, i64 0} +// CHECK:STDOUT: !59 = !{!56, !56, i64 0} +// CHECK:STDOUT: !60 = !{i64 0, i64 8, !58, i64 8, i64 8, !59} +// CHECK:STDOUT: !61 = !{!"p1 _ZTS15nontrivial_dtor", !49, i64 0} +// CHECK:STDOUT: !62 = !{!61, !61, i64 0} +// CHECK:STDOUT: !63 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !64 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !66 = !{!"__libc_errno", !54, i64 0} +// CHECK:STDOUT: !67 = !{!66, !54, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/template.carbon b/toolchain/lower/testdata/interop/cpp/template.carbon index 86f993934220..76a79bde6832 100644 --- a/toolchain/lower/testdata/interop/cpp/template.carbon +++ b/toolchain/lower/testdata/interop/cpp/template.carbon @@ -102,33 +102,33 @@ fn Call3() { // CHECK:STDOUT: $_Z8identityI5ClassET_S1_ = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CPassI32.Main(i32 %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CPassI32.Main(i32 %a) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %identity.call = call i32 @_Z8identityIiET_S0_(i32 %a), !dbg !18 -// CHECK:STDOUT: ret i32 %identity.call, !dbg !19 +// CHECK:STDOUT: %identity.call = call i32 @_Z8identityIiET_S0_(i32 %a), !dbg !34 +// CHECK:STDOUT: ret i32 %identity.call, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define linkonce_odr dso_local noundef i32 @_Z8identityIiET_S0_(i32 noundef %x) #1 comdat { // CHECK:STDOUT: entry: // CHECK:STDOUT: %x.addr = alloca i32, align 4 -// CHECK:STDOUT: store i32 %x, ptr %x.addr, align 4, !tbaa !20 -// CHECK:STDOUT: %0 = load i32, ptr %x.addr, align 4, !tbaa !20 +// CHECK:STDOUT: store i32 %x, ptr %x.addr, align 4, !tbaa !58 +// CHECK:STDOUT: %0 = load i32, ptr %x.addr, align 4, !tbaa !58 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CPassI32Explicitly.Main(i32 %a) #0 !dbg !21 { +// CHECK:STDOUT: define i32 @_CPassI32Explicitly.Main(i32 %a) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %identity.call = call i32 @_Z8identityIiET_S0_(i32 %a), !dbg !24 -// CHECK:STDOUT: ret i32 %identity.call, !dbg !25 +// CHECK:STDOUT: %identity.call = call i32 @_Z8identityIiET_S0_(i32 %a), !dbg !43 +// CHECK:STDOUT: ret i32 %identity.call, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassClass.Main(ptr sret({}) %return, ptr %a) #0 !dbg !26 { +// CHECK:STDOUT: define void @_CPassClass.Main(ptr sret({}) %return, ptr %a) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z8identityI5ClassET_S1_.carbon_thunk._(ptr %a, ptr %return), !dbg !32 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: call void @_Z8identityI5ClassET_S1_.carbon_thunk._(ptr %a, ptr %return), !dbg !52 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -138,10 +138,10 @@ fn Call3() { // CHECK:STDOUT: %return.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.Class, align 1 // CHECK:STDOUT: %undef.agg.tmp = alloca %class.Class, align 1 -// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !34 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !34 -// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !34 -// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !34 +// CHECK:STDOUT: store ptr %x, ptr %x.addr, align 8, !tbaa !61 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !61 +// CHECK:STDOUT: %0 = load ptr, ptr %return.addr, align 8, !tbaa !61 +// CHECK:STDOUT: %1 = load ptr, ptr %x.addr, align 8, !tbaa !61 // CHECK:STDOUT: call void @_Z8identityI5ClassET_S1_() // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -157,47 +157,47 @@ fn Call3() { // CHECK:STDOUT: attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} +// CHECK:STDOUT: !llvm.module.flags = !{!63, !64, !65, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!67} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "call.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassI32", linkageName: "_CPassI32.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !{!9, !9, i64 0} -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "PassI32Explicitly", linkageName: "_CPassI32Explicitly.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 11, column: 10, scope: !21) -// CHECK:STDOUT: !25 = !DILocation(line: 11, column: 3, scope: !21) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "PassClass", linkageName: "_CPassClass.Main", scope: null, file: !1, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{!29, !29} -// CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) -// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 10, scope: !26) -// CHECK:STDOUT: !33 = !DILocation(line: 15, column: 3, scope: !26) -// CHECK:STDOUT: !34 = !{!35, !35, i64 0} -// CHECK:STDOUT: !35 = !{!"p1 _ZTS5Class", !36, i64 0} -// CHECK:STDOUT: !36 = !{!"any pointer", !10, i64 0} +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "call.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20, !20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{!23, !23} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "PassI32", linkageName: "_CPassI32.Main", scope: null, file: !18, line: 6, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !36) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 7, column: 10, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 7, column: 3, scope: !28) +// CHECK:STDOUT: !36 = !{!29} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "PassI32Explicitly", linkageName: "_CPassI32Explicitly.Main", scope: null, file: !18, line: 10, type: !22, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 11, column: 10, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 11, column: 3, scope: !37) +// CHECK:STDOUT: !45 = !{!38} +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "PassClass", linkageName: "_CPassClass.Main", scope: null, file: !18, line: 14, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !23) +// CHECK:STDOUT: !52 = !DILocation(line: 15, column: 10, scope: !46) +// CHECK:STDOUT: !53 = !DILocation(line: 15, column: 3, scope: !46) +// CHECK:STDOUT: !54 = !{!47} +// CHECK:STDOUT: !55 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !56 = !{!"omnipotent char", !55, i64 0} +// CHECK:STDOUT: !57 = !{!"int", !56, i64 0} +// CHECK:STDOUT: !58 = !{!57, !57, i64 0} +// CHECK:STDOUT: !59 = !{!"any pointer", !56, i64 0} +// CHECK:STDOUT: !60 = !{!"p1 _ZTS5Class", !59, i64 0} +// CHECK:STDOUT: !61 = !{!60, !60, i64 0} +// CHECK:STDOUT: !63 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !64 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !66 = !{!"__libc_errno", !57, i64 0} +// CHECK:STDOUT: !67 = !{!66, !57, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'variadic.carbon' @@ -206,28 +206,28 @@ fn Call3() { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall1.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall1.Main() #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z3fooIJEEviDpT_(i32 1), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_Z3fooIJEEviDpT_(i32 1), !dbg !79 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z3fooIJEEviDpT_(i32 noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall2.Main() #0 !dbg !17 { +// CHECK:STDOUT: define void @_CCall2.Main() #0 !dbg !81 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z3fooIJiEEviDpT_(i32 1, i32 2), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_Z3fooIJiEEviDpT_(i32 1, i32 2), !dbg !82 +// CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z3fooIJiEEviDpT_(i32 noundef, i32 noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall3.Main() #0 !dbg !20 { +// CHECK:STDOUT: define void @_CCall3.Main() #0 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_Z3fooIJiiEEviDpT_(i32 1, i32 2, i32 3), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @_Z3fooIJiiEEviDpT_(i32 1, i32 2, i32 3), !dbg !85 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z3fooIJiiEEviDpT_(i32 noundef, i32 noundef, i32 noundef) #1 @@ -235,33 +235,33 @@ fn Call3() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!69} +// CHECK:STDOUT: !llvm.module.flags = !{!63, !64, !65, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!67} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "variadic.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call1", linkageName: "_CCall1.Main", scope: null, file: !1, line: 9, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 11, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 1, scope: !12) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Call2", linkageName: "_CCall2.Main", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 3, scope: !17) -// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 1, scope: !17) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Call3", linkageName: "_CCall3.Main", scope: null, file: !1, line: 21, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !21 = !DILocation(line: 23, column: 3, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 21, column: 1, scope: !20) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !55 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !56 = !{!"omnipotent char", !55, i64 0} +// CHECK:STDOUT: !57 = !{!"int", !56, i64 0} +// CHECK:STDOUT: !63 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !64 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !66 = !{!"__libc_errno", !57, i64 0} +// CHECK:STDOUT: !67 = !{!66, !57, i64 0} +// CHECK:STDOUT: !68 = !DIFile(filename: "variadic.carbon", directory: "") +// CHECK:STDOUT: !69 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !68, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !70 = !{null} +// CHECK:STDOUT: !71 = !DISubroutineType(types: !70) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Call1", linkageName: "_CCall1.Main", scope: null, file: !68, line: 9, type: !71, spFlags: DISPFlagDefinition, unit: !69) +// CHECK:STDOUT: !79 = !DILocation(line: 11, column: 3, scope: !78) +// CHECK:STDOUT: !80 = !DILocation(line: 9, column: 1, scope: !78) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Call2", linkageName: "_CCall2.Main", scope: null, file: !68, line: 15, type: !71, spFlags: DISPFlagDefinition, unit: !69) +// CHECK:STDOUT: !82 = !DILocation(line: 17, column: 3, scope: !81) +// CHECK:STDOUT: !83 = !DILocation(line: 15, column: 1, scope: !81) +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "Call3", linkageName: "_CCall3.Main", scope: null, file: !68, line: 21, type: !71, spFlags: DISPFlagDefinition, unit: !69) +// CHECK:STDOUT: !85 = !DILocation(line: 23, column: 3, scope: !84) +// CHECK:STDOUT: !86 = !DILocation(line: 21, column: 1, scope: !84) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'variadic_thunk.carbon' @@ -275,12 +275,12 @@ fn Call3() { // CHECK:STDOUT: @X.val.loc12_14.3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall1.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall1.Main() #0 !dbg !95 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc12_12.2.temp = alloca {}, align 1, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_12.2.temp), !dbg !15 -// CHECK:STDOUT: call void @_Z3fooIJEEv1XDpT_.carbon_thunk._(ptr @X.val.loc12_14.3), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: %.loc12_12.2.temp = alloca {}, align 1, !dbg !96 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_12.2.temp), !dbg !96 +// CHECK:STDOUT: call void @_Z3fooIJEEv1XDpT_.carbon_thunk._(ptr @X.val.loc12_14.3), !dbg !97 +// CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -288,19 +288,19 @@ fn Call3() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %agg.tmp = alloca %class.X, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !18 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: %1 = load ptr, ptr %.addr, align 8, !tbaa !108 // CHECK:STDOUT: call void @_Z3fooIJEEv1XDpT_() // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall2.Main() #0 !dbg !21 { +// CHECK:STDOUT: define void @_CCall2.Main() #0 !dbg !99 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_12.2.temp = alloca {}, align 1, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_12.2.temp), !dbg !22 -// CHECK:STDOUT: call void @_Z3fooIJiEEv1XDpT_.carbon_thunk.__(ptr @X.val.loc12_14.3, i32 2), !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc18_12.2.temp = alloca {}, align 1, !dbg !100 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_12.2.temp), !dbg !100 +// CHECK:STDOUT: call void @_Z3fooIJiEEv1XDpT_.carbon_thunk.__(ptr @X.val.loc12_14.3, i32 2), !dbg !101 +// CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -309,21 +309,21 @@ fn Call3() { // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %agg.tmp = alloca %class.X, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !18 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !25 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %3 = load i32, ptr %.addr1, align 4, !tbaa !25 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !58 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: %3 = load i32, ptr %.addr1, align 4, !tbaa !58 // CHECK:STDOUT: call void @_Z3fooIJiEEv1XDpT_(i32 noundef %3) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall3.Main() #0 !dbg !26 { +// CHECK:STDOUT: define void @_CCall3.Main() #0 !dbg !103 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc24_12.2.temp = alloca {}, align 1, !dbg !27 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_12.2.temp), !dbg !27 -// CHECK:STDOUT: call void @_Z3fooIJiiEEv1XDpT_.carbon_thunk.___(ptr @X.val.loc12_14.3, i32 2, i32 3), !dbg !28 -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: %.loc24_12.2.temp = alloca {}, align 1, !dbg !104 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_12.2.temp), !dbg !104 +// CHECK:STDOUT: call void @_Z3fooIJiiEEv1XDpT_.carbon_thunk.___(ptr @X.val.loc12_14.3, i32 2, i32 3), !dbg !105 +// CHECK:STDOUT: ret void, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -333,12 +333,12 @@ fn Call3() { // CHECK:STDOUT: %.addr1 = alloca i32, align 4 // CHECK:STDOUT: %.addr2 = alloca i32, align 4 // CHECK:STDOUT: %agg.tmp = alloca %class.X, align 1 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !18 -// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !25 -// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !25 -// CHECK:STDOUT: %3 = load ptr, ptr %.addr, align 8, !tbaa !18 -// CHECK:STDOUT: %4 = load i32, ptr %.addr1, align 4, !tbaa !25 -// CHECK:STDOUT: %5 = load i32, ptr %.addr2, align 4, !tbaa !25 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: store i32 %1, ptr %.addr1, align 4, !tbaa !58 +// CHECK:STDOUT: store i32 %2, ptr %.addr2, align 4, !tbaa !58 +// CHECK:STDOUT: %3 = load ptr, ptr %.addr, align 8, !tbaa !108 +// CHECK:STDOUT: %4 = load i32, ptr %.addr1, align 4, !tbaa !58 +// CHECK:STDOUT: %5 = load i32, ptr %.addr2, align 4, !tbaa !58 // CHECK:STDOUT: call void @_Z3fooIJiiEEv1XDpT_(i32 noundef %4, i32 noundef %5) // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -360,38 +360,38 @@ fn Call3() { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!88} +// CHECK:STDOUT: !llvm.module.flags = !{!63, !64, !65, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!67} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "variadic_thunk.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call1", linkageName: "_CCall1.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 12, column: 11, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 10, column: 1, scope: !12) -// CHECK:STDOUT: !18 = !{!19, !19, i64 0} -// CHECK:STDOUT: !19 = !{!"p1 _ZTS1X", !20, i64 0} -// CHECK:STDOUT: !20 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Call2", linkageName: "_CCall2.Main", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !22 = !DILocation(line: 18, column: 11, scope: !21) -// CHECK:STDOUT: !23 = !DILocation(line: 18, column: 3, scope: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 16, column: 1, scope: !21) -// CHECK:STDOUT: !25 = !{!9, !9, i64 0} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Call3", linkageName: "_CCall3.Main", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !27 = !DILocation(line: 24, column: 11, scope: !26) -// CHECK:STDOUT: !28 = !DILocation(line: 24, column: 3, scope: !26) -// CHECK:STDOUT: !29 = !DILocation(line: 22, column: 1, scope: !26) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !55 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !56 = !{!"omnipotent char", !55, i64 0} +// CHECK:STDOUT: !57 = !{!"int", !56, i64 0} +// CHECK:STDOUT: !58 = !{!57, !57, i64 0} +// CHECK:STDOUT: !59 = !{!"any pointer", !56, i64 0} +// CHECK:STDOUT: !63 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !64 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !66 = !{!"__libc_errno", !57, i64 0} +// CHECK:STDOUT: !67 = !{!66, !57, i64 0} +// CHECK:STDOUT: !70 = !{null} +// CHECK:STDOUT: !71 = !DISubroutineType(types: !70) +// CHECK:STDOUT: !87 = !DIFile(filename: "variadic_thunk.carbon", directory: "") +// CHECK:STDOUT: !88 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !87, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Call1", linkageName: "_CCall1.Main", scope: null, file: !87, line: 10, type: !71, spFlags: DISPFlagDefinition, unit: !88) +// CHECK:STDOUT: !96 = !DILocation(line: 12, column: 11, scope: !95) +// CHECK:STDOUT: !97 = !DILocation(line: 12, column: 3, scope: !95) +// CHECK:STDOUT: !98 = !DILocation(line: 10, column: 1, scope: !95) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Call2", linkageName: "_CCall2.Main", scope: null, file: !87, line: 16, type: !71, spFlags: DISPFlagDefinition, unit: !88) +// CHECK:STDOUT: !100 = !DILocation(line: 18, column: 11, scope: !99) +// CHECK:STDOUT: !101 = !DILocation(line: 18, column: 3, scope: !99) +// CHECK:STDOUT: !102 = !DILocation(line: 16, column: 1, scope: !99) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "Call3", linkageName: "_CCall3.Main", scope: null, file: !87, line: 22, type: !71, spFlags: DISPFlagDefinition, unit: !88) +// CHECK:STDOUT: !104 = !DILocation(line: 24, column: 11, scope: !103) +// CHECK:STDOUT: !105 = !DILocation(line: 24, column: 3, scope: !103) +// CHECK:STDOUT: !106 = !DILocation(line: 22, column: 1, scope: !103) +// CHECK:STDOUT: !107 = !{!"p1 _ZTS1X", !59, i64 0} +// CHECK:STDOUT: !108 = !{!107, !107, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/thunks.carbon b/toolchain/lower/testdata/interop/cpp/thunks.carbon index 1de0e9f57468..b888d2273683 100644 --- a/toolchain/lower/testdata/interop/cpp/thunks.carbon +++ b/toolchain/lower/testdata/interop/cpp/thunks.carbon @@ -104,14 +104,14 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr %n) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall.Main(ptr %n) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n2.var = alloca [1 x i8], align 1, !dbg !18 -// CHECK:STDOUT: %.loc9_34.1.temp = alloca [1 x i8], align 1, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n2.var), !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_34.1.temp), !dbg !19 -// CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_.carbon_thunk._(ptr %n, ptr %n2.var), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %n2.var = alloca [1 x i8], align 1, !dbg !44 +// CHECK:STDOUT: %.loc9_34.1.temp = alloca [1 x i8], align 1, !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n2.var), !dbg !44 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_34.1.temp), !dbg !45 +// CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_.carbon_thunk._(ptr %n, ptr %n2.var), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -119,25 +119,25 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !21 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !21 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !21 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !62 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !62 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !62 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !62 // CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.60e3c6e2415a2ad6.Core:NeedThunk.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.60e3c6e2415a2ad6.Core:NeedThunk.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !52 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.092ad14c7174f642.Core:NeedThunk.Cpp"(ptr %self) #2 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.092ad14c7174f642.Core:NeedThunk.Cpp"(ptr %self) #2 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -154,45 +154,45 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} +// CHECK:STDOUT: !llvm.module.flags = !{!64, !65, !66, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!69} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "multiple_thunks_in_one_class.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 9, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 34, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 8, column: 1, scope: !12) -// CHECK:STDOUT: !21 = !{!22, !22, i64 0} -// CHECK:STDOUT: !22 = !{!"p1 _ZTS9NeedThunk", !23, i64 0} -// CHECK:STDOUT: !23 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.60e3c6e2415a2ad6.Core:NeedThunk.Cpp", scope: null, file: !25, line: 4, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !25 = !DIFile(filename: "./need_thunk.h", directory: "") -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{!15, !15} -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !24, type: !15) -// CHECK:STDOUT: !30 = !DILocation(line: 4, column: 3, scope: !24) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.092ad14c7174f642.Core:NeedThunk.Cpp", scope: null, file: !25, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !15) -// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 3, scope: !31) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !32 = !DIFile(filename: "multiple_thunks_in_one_class.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !39 = !{!34, !34} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !32, line: 8, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !48) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !34) +// CHECK:STDOUT: !44 = !DILocation(line: 9, column: 3, scope: !41) +// CHECK:STDOUT: !45 = !DILocation(line: 9, column: 34, scope: !41) +// CHECK:STDOUT: !47 = !DILocation(line: 8, column: 1, scope: !41) +// CHECK:STDOUT: !48 = !{!42} +// CHECK:STDOUT: !49 = !DIFile(filename: "./need_thunk.h", directory: "") +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.60e3c6e2415a2ad6.Core:NeedThunk.Cpp", scope: null, file: !49, line: 4, type: !40, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !34) +// CHECK:STDOUT: !52 = !DILocation(line: 4, column: 3, scope: !50) +// CHECK:STDOUT: !53 = !{!51} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.092ad14c7174f642.Core:NeedThunk.Cpp", scope: null, file: !49, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !57) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !34) +// CHECK:STDOUT: !56 = !DILocation(line: 5, column: 3, scope: !54) +// CHECK:STDOUT: !57 = !{!55} +// CHECK:STDOUT: !58 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !59 = !{!"omnipotent char", !58, i64 0} +// CHECK:STDOUT: !60 = !{!"any pointer", !59, i64 0} +// CHECK:STDOUT: !61 = !{!"p1 _ZTS9NeedThunk", !60, i64 0} +// CHECK:STDOUT: !62 = !{!61, !61, i64 0} +// CHECK:STDOUT: !64 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !66 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !67 = !{!"int", !59, i64 0} +// CHECK:STDOUT: !68 = !{!"__libc_errno", !67, i64 0} +// CHECK:STDOUT: !69 = !{!68, !67, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'thunks_for_distinct_specializations.carbon' @@ -201,21 +201,21 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr %a, ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall.Main(ptr %a, ptr %b) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a2.var = alloca [1 x i8], align 1, !dbg !19 -// CHECK:STDOUT: %.loc12_35.1.temp = alloca [1 x i8], align 1, !dbg !20 -// CHECK:STDOUT: %b2.var = alloca [1 x i8], align 1, !dbg !21 -// CHECK:STDOUT: %.loc13_35.1.temp = alloca [1 x i8], align 1, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a2.var), !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_35.1.temp), !dbg !20 -// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %a, ptr %a2.var), !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b2.var), !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_35.1.temp), !dbg !22 -// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %b, ptr %b2.var), !dbg !22 -// CHECK:STDOUT: call void @_ZN3BoxI1BED1Ev(ptr %b2.var), !dbg !21 -// CHECK:STDOUT: call void @_ZN3BoxI1AED1Ev(ptr %a2.var), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: %a2.var = alloca [1 x i8], align 1, !dbg !77 +// CHECK:STDOUT: %.loc12_35.1.temp = alloca [1 x i8], align 1, !dbg !78 +// CHECK:STDOUT: %b2.var = alloca [1 x i8], align 1, !dbg !80 +// CHECK:STDOUT: %.loc13_35.1.temp = alloca [1 x i8], align 1, !dbg !81 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a2.var), !dbg !77 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_35.1.temp), !dbg !78 +// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %a, ptr %a2.var), !dbg !78 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b2.var), !dbg !80 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_35.1.temp), !dbg !81 +// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %b, ptr %b2.var), !dbg !81 +// CHECK:STDOUT: call void @_ZN3BoxI1BED1Ev(ptr %b2.var), !dbg !80 +// CHECK:STDOUT: call void @_ZN3BoxI1AED1Ev(ptr %a2.var), !dbg !77 +// CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -223,19 +223,19 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !24 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !24 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !95 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !95 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !95 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !95 // CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.c0735c73762b4d1c.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.c0735c73762b4d1c.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !33 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !88 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -243,19 +243,19 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !34 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !34 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !34 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !34 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !99 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !99 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !99 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !99 // CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.2c1dd62357f2b914.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.2c1dd62357f2b914.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !90 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !39 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !92 +// CHECK:STDOUT: ret void, !dbg !92 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind @@ -281,50 +281,50 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!71} +// CHECK:STDOUT: !llvm.module.flags = !{!64, !65, !66, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!69} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "thunks_for_distinct_specializations.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17, !18} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 2, scope: !12, type: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 12, column: 35, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 13, column: 35, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 1, scope: !12) -// CHECK:STDOUT: !24 = !{!25, !25, i64 0} -// CHECK:STDOUT: !25 = !{!"p1 _ZTS3BoxI1AE", !26, i64 0} -// CHECK:STDOUT: !26 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.c0735c73762b4d1c.Core:Box.Cpp", scope: null, file: !28, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DIFile(filename: "./box.h", directory: "") -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{!15, !15} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !15) -// CHECK:STDOUT: !33 = !DILocation(line: 8, column: 3, scope: !27) -// CHECK:STDOUT: !34 = !{!35, !35, i64 0} -// CHECK:STDOUT: !35 = !{!"p1 _ZTS3BoxI1BE", !26, i64 0} -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.2c1dd62357f2b914.Core:Box.Cpp", scope: null, file: !28, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !15) -// CHECK:STDOUT: !39 = !DILocation(line: 8, column: 3, scope: !36) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !37 = !{null, !34, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !{!34, !34} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !58 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !59 = !{!"omnipotent char", !58, i64 0} +// CHECK:STDOUT: !60 = !{!"any pointer", !59, i64 0} +// CHECK:STDOUT: !64 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !66 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !67 = !{!"int", !59, i64 0} +// CHECK:STDOUT: !68 = !{!"__libc_errno", !67, i64 0} +// CHECK:STDOUT: !69 = !{!68, !67, i64 0} +// CHECK:STDOUT: !70 = !DIFile(filename: "thunks_for_distinct_specializations.carbon", directory: "") +// CHECK:STDOUT: !71 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !70, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !70, line: 11, type: !38, spFlags: DISPFlagDefinition, unit: !71, retainedNodes: !84) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !34) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 2, scope: !72, type: !34) +// CHECK:STDOUT: !77 = !DILocation(line: 12, column: 3, scope: !72) +// CHECK:STDOUT: !78 = !DILocation(line: 12, column: 35, scope: !72) +// CHECK:STDOUT: !80 = !DILocation(line: 13, column: 3, scope: !72) +// CHECK:STDOUT: !81 = !DILocation(line: 13, column: 35, scope: !72) +// CHECK:STDOUT: !83 = !DILocation(line: 11, column: 1, scope: !72) +// CHECK:STDOUT: !84 = !{!73, !74} +// CHECK:STDOUT: !85 = !DIFile(filename: "./box.h", directory: "") +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.c0735c73762b4d1c.Core:Box.Cpp", scope: null, file: !85, line: 8, type: !40, spFlags: DISPFlagDefinition, unit: !71, retainedNodes: !89) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !34) +// CHECK:STDOUT: !88 = !DILocation(line: 8, column: 3, scope: !86) +// CHECK:STDOUT: !89 = !{!87} +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.2c1dd62357f2b914.Core:Box.Cpp", scope: null, file: !85, line: 8, type: !40, spFlags: DISPFlagDefinition, unit: !71, retainedNodes: !93) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !34) +// CHECK:STDOUT: !92 = !DILocation(line: 8, column: 3, scope: !90) +// CHECK:STDOUT: !93 = !{!91} +// CHECK:STDOUT: !94 = !{!"p1 _ZTS3BoxI1AE", !60, i64 0} +// CHECK:STDOUT: !95 = !{!94, !94, i64 0} +// CHECK:STDOUT: !98 = !{!"p1 _ZTS3BoxI1BE", !60, i64 0} +// CHECK:STDOUT: !99 = !{!98, !98, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'thunks_for_anonymous_namespace_collision.carbon' @@ -337,21 +337,21 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: $_ZN7CollideC2ERKS_ = comdat any // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main(ptr %a, ptr %b) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CCall.Main(ptr %a, ptr %b) #0 !dbg !104 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a2.var = alloca [1 x i8], align 1, !dbg !19 -// CHECK:STDOUT: %.loc12_32.1.temp = alloca [1 x i8], align 1, !dbg !20 -// CHECK:STDOUT: %b2.var = alloca [1 x i8], align 1, !dbg !21 -// CHECK:STDOUT: %.loc13_36.1.temp = alloca [1 x i8], align 1, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a2.var), !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_32.1.temp), !dbg !20 -// CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %a, ptr %a2.var), !dbg !20 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b2.var), !dbg !21 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_36.1.temp), !dbg !22 -// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %b, ptr %b2.var), !dbg !22 -// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideD2Ev(ptr %b2.var), !dbg !21 -// CHECK:STDOUT: call void @_ZN7CollideD2Ev(ptr %a2.var), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: %a2.var = alloca [1 x i8], align 1, !dbg !109 +// CHECK:STDOUT: %.loc12_32.1.temp = alloca [1 x i8], align 1, !dbg !110 +// CHECK:STDOUT: %b2.var = alloca [1 x i8], align 1, !dbg !112 +// CHECK:STDOUT: %.loc13_36.1.temp = alloca [1 x i8], align 1, !dbg !113 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a2.var), !dbg !109 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_32.1.temp), !dbg !110 +// CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %a, ptr %a2.var), !dbg !110 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b2.var), !dbg !112 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_36.1.temp), !dbg !113 +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %b, ptr %b2.var), !dbg !113 +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideD2Ev(ptr %b2.var), !dbg !112 +// CHECK:STDOUT: call void @_ZN7CollideD2Ev(ptr %a2.var), !dbg !109 +// CHECK:STDOUT: ret void, !dbg !115 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -359,19 +359,19 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !24 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !24 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !24 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !127 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !127 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !127 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !127 // CHECK:STDOUT: call void @_ZN7CollideC2ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.9e522bb4dbf82e5c.Core:Collide.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.9e522bb4dbf82e5c.Core:Collide.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !118 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !33 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !120 +// CHECK:STDOUT: ret void, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable @@ -379,26 +379,26 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.addr = alloca ptr, align 8 // CHECK:STDOUT: %return.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !34 -// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !34 -// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !34 -// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !34 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !130 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !130 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !130 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !130 // CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC2ERKS0_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) // CHECK:STDOUT: ret void // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.d1fe27f3241437fa.Core:Collide..Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Copy.d1fe27f3241437fa.Core:Collide..Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !122 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %self, ptr %return), !dbg !39 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %self, ptr %return), !dbg !124 +// CHECK:STDOUT: ret void, !dbg !124 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define internal void @_ZN12_GLOBAL__N_17CollideD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !34 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !130 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -407,7 +407,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: define linkonce_odr dso_local void @_ZN7CollideD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 comdat align 2 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !24 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !127 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -420,8 +420,8 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !24 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !24 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !127 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !127 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -431,8 +431,8 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %this.addr = alloca ptr, align 8 // CHECK:STDOUT: %.addr = alloca ptr, align 8 -// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !34 -// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !34 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !130 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !130 // CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 // CHECK:STDOUT: ret void // CHECK:STDOUT: } @@ -446,48 +446,48 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!103} +// CHECK:STDOUT: !llvm.module.flags = !{!64, !65, !66, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!69} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "thunks_for_anonymous_namespace_collision.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !1, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17, !18} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 2, scope: !12, type: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 12, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 12, column: 32, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 3, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 13, column: 36, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 1, scope: !12) -// CHECK:STDOUT: !24 = !{!25, !25, i64 0} -// CHECK:STDOUT: !25 = !{!"p1 _ZTS7Collide", !26, i64 0} -// CHECK:STDOUT: !26 = !{!"any pointer", !10, i64 0} -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.9e522bb4dbf82e5c.Core:Collide.Cpp", scope: null, file: !28, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !28 = !DIFile(filename: "./anonymous_namespace_collision.h", directory: "") -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{!15, !15} -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !15) -// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 3, scope: !27) -// CHECK:STDOUT: !34 = !{!35, !35, i64 0} -// CHECK:STDOUT: !35 = !{!"p1 _ZTSN12_GLOBAL__N_17CollideE", !26, i64 0} -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.d1fe27f3241437fa.Core:Collide..Cpp", scope: null, file: !28, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !37) -// CHECK:STDOUT: !37 = !{!38} -// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !15) -// CHECK:STDOUT: !39 = !DILocation(line: 8, column: 3, scope: !36) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !37 = !{null, !34, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !{!34, !34} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !58 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !59 = !{!"omnipotent char", !58, i64 0} +// CHECK:STDOUT: !60 = !{!"any pointer", !59, i64 0} +// CHECK:STDOUT: !64 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !65 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !66 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !67 = !{!"int", !59, i64 0} +// CHECK:STDOUT: !68 = !{!"__libc_errno", !67, i64 0} +// CHECK:STDOUT: !69 = !{!68, !67, i64 0} +// CHECK:STDOUT: !102 = !DIFile(filename: "thunks_for_anonymous_namespace_collision.carbon", directory: "") +// CHECK:STDOUT: !103 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !102, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !102, line: 11, type: !38, spFlags: DISPFlagDefinition, unit: !103, retainedNodes: !116) +// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !34) +// CHECK:STDOUT: !106 = !DILocalVariable(arg: 2, scope: !104, type: !34) +// CHECK:STDOUT: !109 = !DILocation(line: 12, column: 3, scope: !104) +// CHECK:STDOUT: !110 = !DILocation(line: 12, column: 32, scope: !104) +// CHECK:STDOUT: !112 = !DILocation(line: 13, column: 3, scope: !104) +// CHECK:STDOUT: !113 = !DILocation(line: 13, column: 36, scope: !104) +// CHECK:STDOUT: !115 = !DILocation(line: 11, column: 1, scope: !104) +// CHECK:STDOUT: !116 = !{!105, !106} +// CHECK:STDOUT: !117 = !DIFile(filename: "./anonymous_namespace_collision.h", directory: "") +// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.9e522bb4dbf82e5c.Core:Collide.Cpp", scope: null, file: !117, line: 17, type: !40, spFlags: DISPFlagDefinition, unit: !103, retainedNodes: !121) +// CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !118, type: !34) +// CHECK:STDOUT: !120 = !DILocation(line: 17, column: 3, scope: !118) +// CHECK:STDOUT: !121 = !{!119} +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.d1fe27f3241437fa.Core:Collide..Cpp", scope: null, file: !117, line: 8, type: !40, spFlags: DISPFlagDefinition, unit: !103, retainedNodes: !125) +// CHECK:STDOUT: !123 = !DILocalVariable(arg: 1, scope: !122, type: !34) +// CHECK:STDOUT: !124 = !DILocation(line: 8, column: 3, scope: !122) +// CHECK:STDOUT: !125 = !{!123} +// CHECK:STDOUT: !126 = !{!"p1 _ZTS7Collide", !60, i64 0} +// CHECK:STDOUT: !127 = !{!126, !126, i64 0} +// CHECK:STDOUT: !129 = !{!"p1 _ZTSN12_GLOBAL__N_17CollideE", !60, i64 0} +// CHECK:STDOUT: !130 = !{!129, !129, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/void.carbon b/toolchain/lower/testdata/interop/cpp/void.carbon index 14a71dfd56d0..95dc82486ab3 100644 --- a/toolchain/lower/testdata/interop/cpp/void.carbon +++ b/toolchain/lower/testdata/interop/cpp/void.carbon @@ -63,62 +63,62 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassVoidPtr.Main(ptr %a) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CPassVoidPtr.Main(ptr %a) #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_21.2.temp = alloca ptr, align 8, !dbg !18 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0532bac23645330a"(ptr %a), !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_21.2.temp), !dbg !18 -// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !18 -// CHECK:STDOUT: %.loc7_21.4 = load ptr, ptr %.loc7_21.2.temp, align 8, !dbg !18 -// CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc7_21.4), !dbg !19 -// CHECK:STDOUT: call void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: %.loc7_21.2.temp = alloca ptr, align 8, !dbg !13 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0532bac23645330a"(ptr %a), !dbg !13 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_21.2.temp), !dbg !13 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !13 +// CHECK:STDOUT: %.loc7_21.4 = load ptr, ptr %.loc7_21.2.temp, align 8, !dbg !13 +// CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc7_21.4), !dbg !16 +// CHECK:STDOUT: call void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !13 +// CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z13take_void_ptrPv(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2bb3ddafbe2fe5d2:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.2bb3ddafbe2fe5d2:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassIntPtr.Main(ptr %a) #0 !dbg !33 { +// CHECK:STDOUT: define void @_CPassIntPtr.Main(ptr %a) #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_21.2.temp = alloca ptr, align 8, !dbg !36 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247"(ptr %a), !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.2.temp), !dbg !36 -// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.2.temp, align 8, !dbg !36 -// CHECK:STDOUT: %.loc11_21.4 = load ptr, ptr %.loc11_21.2.temp, align 8, !dbg !36 -// CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc11_21.4), !dbg !37 -// CHECK:STDOUT: call void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: %.loc11_21.2.temp = alloca ptr, align 8, !dbg !34 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247"(ptr %a), !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.2.temp), !dbg !34 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.2.temp, align 8, !dbg !34 +// CHECK:STDOUT: %.loc11_21.4 = load ptr, ptr %.loc11_21.2.temp, align 8, !dbg !34 +// CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc11_21.4), !dbg !35 +// CHECK:STDOUT: call void @"_COp.ab1af2e999d1dfe1:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CPassIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !39 { +// CHECK:STDOUT: define void @_CPassIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc15_27.2.temp = alloca ptr, align 8, !dbg !42 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %a), !dbg !42 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc15_27.2.temp), !dbg !42 -// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc15_27.2.temp, align 8, !dbg !42 -// CHECK:STDOUT: %.loc15_27.4 = load ptr, ptr %.loc15_27.2.temp, align 8, !dbg !42 -// CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc15_27.4), !dbg !43 -// CHECK:STDOUT: call void @"_COp.05b8ef735d2db490:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !42 -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: %.loc15_27.2.temp = alloca ptr, align 8, !dbg !41 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %a), !dbg !41 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc15_27.2.temp), !dbg !41 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc15_27.2.temp, align 8, !dbg !41 +// CHECK:STDOUT: %.loc15_27.4 = load ptr, ptr %.loc15_27.2.temp, align 8, !dbg !41 +// CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc15_27.4), !dbg !42 +// CHECK:STDOUT: call void @"_COp.05b8ef735d2db490:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !41 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z19take_const_void_ptrPKv(ptr noundef) #1 @@ -126,19 +126,19 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define weak_odr void @"_COp.1b9dec9ba7b5442e:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define weak_odr void @"_COp.0ca0de5f18f7d6e9:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define weak_odr void @"_COp.05b8ef735d2db490:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind @@ -155,90 +155,90 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0532bac23645330a"(ptr %self) #0 !dbg !63 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.4201ec9a263c5642"(ptr %self), !dbg !69 -// CHECK:STDOUT: ret ptr %1, !dbg !70 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0532bac23645330a"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.4201ec9a263c5642"(ptr %self), !dbg !70 +// CHECK:STDOUT: ret ptr %1, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247"(ptr %self) #0 !dbg !71 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91"(ptr %self), !dbg !74 -// CHECK:STDOUT: ret ptr %1, !dbg !75 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91"(ptr %self), !dbg !78 +// CHECK:STDOUT: ret ptr %1, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %self) #0 !dbg !76 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188"(ptr %self), !dbg !79 -// CHECK:STDOUT: ret ptr %1, !dbg !80 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188"(ptr %self), !dbg !86 +// CHECK:STDOUT: ret ptr %1, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.4201ec9a263c5642"(ptr %self) #0 !dbg !81 { -// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.4201ec9a263c5642(ptr %self), !dbg !84 -// CHECK:STDOUT: ret ptr %1, !dbg !85 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.4201ec9a263c5642"(ptr %self) #0 !dbg !97 { +// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.4201ec9a263c5642(ptr %self), !dbg !103 +// CHECK:STDOUT: ret ptr %1, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91"(ptr %self) #0 !dbg !86 { -// CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !89 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !89 -// CHECK:STDOUT: store ptr %self, ptr %temp, align 8, !dbg !89 -// CHECK:STDOUT: %1 = load ptr, ptr %temp, align 8, !dbg !89 -// CHECK:STDOUT: %2 = call ptr @_CSome.Optional.Core.4201ec9a263c5642(ptr %1), !dbg !90 -// CHECK:STDOUT: ret ptr %2, !dbg !91 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91"(ptr %self) #0 !dbg !106 { +// CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !111 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !111 +// CHECK:STDOUT: store ptr %self, ptr %temp, align 8, !dbg !111 +// CHECK:STDOUT: %1 = load ptr, ptr %temp, align 8, !dbg !111 +// CHECK:STDOUT: %2 = call ptr @_CSome.Optional.Core.4201ec9a263c5642(ptr %1), !dbg !112 +// CHECK:STDOUT: ret ptr %2, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188"(ptr %self) #0 !dbg !92 { -// CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !95 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !95 -// CHECK:STDOUT: %1 = call ptr @"_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self), !dbg !95 -// CHECK:STDOUT: store ptr %1, ptr %temp, align 8, !dbg !95 -// CHECK:STDOUT: %2 = load ptr, ptr %temp, align 8, !dbg !95 -// CHECK:STDOUT: %3 = call ptr @_CSome.Optional.Core.e4523e01ac2590ba(ptr %2), !dbg !96 -// CHECK:STDOUT: ret ptr %3, !dbg !97 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188"(ptr %self) #0 !dbg !115 { +// CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !120 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !120 +// CHECK:STDOUT: %1 = call ptr @"_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self), !dbg !120 +// CHECK:STDOUT: store ptr %1, ptr %temp, align 8, !dbg !120 +// CHECK:STDOUT: %2 = load ptr, ptr %temp, align 8, !dbg !120 +// CHECK:STDOUT: %3 = call ptr @_CSome.Optional.Core.e4523e01ac2590ba(ptr %2), !dbg !121 +// CHECK:STDOUT: ret ptr %3, !dbg !122 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.4201ec9a263c5642(ptr %value) #0 !dbg !98 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271"(ptr %value), !dbg !101 -// CHECK:STDOUT: ret ptr %1, !dbg !102 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.4201ec9a263c5642(ptr %value) #0 !dbg !133 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271"(ptr %value), !dbg !138 +// CHECK:STDOUT: ret ptr %1, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self) #3 !dbg !103 { -// CHECK:STDOUT: ret ptr %self, !dbg !107 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self) #3 !dbg !142 { +// CHECK:STDOUT: ret ptr %self, !dbg !145 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.e4523e01ac2590ba(ptr %value) #0 !dbg !108 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137"(ptr %value), !dbg !111 -// CHECK:STDOUT: ret ptr %1, !dbg !112 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.e4523e01ac2590ba(ptr %value) #0 !dbg !147 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137"(ptr %value), !dbg !152 +// CHECK:STDOUT: ret ptr %1, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271"(ptr %self) #0 !dbg !113 { -// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !116 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !116 -// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !116 -// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !117 -// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !118 -// CHECK:STDOUT: call void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %1), !dbg !116 -// CHECK:STDOUT: ret ptr %2, !dbg !119 +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271"(ptr %self) #0 !dbg !160 { +// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !165 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !165 +// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !165 +// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !169 +// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !167 +// CHECK:STDOUT: call void @"_COp.24996695b716f57d:core.Destroy.Core"(ptr %1), !dbg !165 +// CHECK:STDOUT: ret ptr %2, !dbg !171 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137"(ptr %self) #0 !dbg !120 { -// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !123 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !123 -// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !123 -// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !124 -// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !125 -// CHECK:STDOUT: call void @"_COp.0ca0de5f18f7d6e9:core.Destroy.Core"(ptr %1), !dbg !123 -// CHECK:STDOUT: ret ptr %2, !dbg !126 +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137"(ptr %self) #0 !dbg !173 { +// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !178 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !178 +// CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !178 +// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !182 +// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !180 +// CHECK:STDOUT: call void @"_COp.0ca0de5f18f7d6e9:core.Destroy.Core"(ptr %1), !dbg !178 +// CHECK:STDOUT: ret ptr %2, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -251,137 +251,137 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #3 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.module.flags = !{!186, !187, !188, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!193} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pass.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "PassVoidPtr", linkageName: "_CPassVoidPtr.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 21, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 6, column: 1, scope: !12) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2bb3ddafbe2fe5d2:core.Destroy.Core", scope: null, file: !1, line: 7, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 21, scope: !21) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.24996695b716f57d:core.Destroy.Core", scope: null, file: !1, line: 7, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !15) -// CHECK:STDOUT: !28 = !DILocation(line: 7, column: 21, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ab1af2e999d1dfe1:core.Destroy.Core", scope: null, file: !1, line: 7, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !15) -// CHECK:STDOUT: !32 = !DILocation(line: 7, column: 21, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "PassIntPtr", linkageName: "_CPassIntPtr.Main", scope: null, file: !1, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !15) -// CHECK:STDOUT: !36 = !DILocation(line: 11, column: 21, scope: !33) -// CHECK:STDOUT: !37 = !DILocation(line: 11, column: 3, scope: !33) -// CHECK:STDOUT: !38 = !DILocation(line: 10, column: 1, scope: !33) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "PassIntPtrToConstVoidPtr", linkageName: "_CPassIntPtrToConstVoidPtr.Main", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !15) -// CHECK:STDOUT: !42 = !DILocation(line: 15, column: 27, scope: !39) -// CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !39) -// CHECK:STDOUT: !44 = !DILocation(line: 14, column: 1, scope: !39) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1b9dec9ba7b5442e:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !15) -// CHECK:STDOUT: !48 = !DILocation(line: 15, column: 27, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0ca0de5f18f7d6e9:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !15) -// CHECK:STDOUT: !52 = !DILocation(line: 15, column: 27, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.05b8ef735d2db490:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !15) -// CHECK:STDOUT: !56 = !DILocation(line: 15, column: 27, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "PassConstIntPtrToConstVoidPtr", linkageName: "_CPassConstIntPtrToConstVoidPtr.Main", scope: null, file: !1, line: 18, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !15) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !4 = !DIFile(filename: "pass.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{null, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "PassVoidPtr", linkageName: "_CPassVoidPtr.Main", scope: null, file: !4, line: 6, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !18) +// CHECK:STDOUT: !11 = !DILocalVariable(arg: 1, scope: !10, type: !7) +// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 21, scope: !10) +// CHECK:STDOUT: !14 = !{!7, !7} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 3, scope: !10) +// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 1, scope: !10) +// CHECK:STDOUT: !18 = !{!11} +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2bb3ddafbe2fe5d2:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !7) +// CHECK:STDOUT: !21 = !DILocation(line: 7, column: 21, scope: !19) +// CHECK:STDOUT: !22 = !{!20} +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.24996695b716f57d:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !7) +// CHECK:STDOUT: !25 = !DILocation(line: 7, column: 21, scope: !23) +// CHECK:STDOUT: !26 = !{!24} +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ab1af2e999d1dfe1:core.Destroy.Core", scope: null, file: !4, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !7) +// CHECK:STDOUT: !29 = !DILocation(line: 7, column: 21, scope: !27) +// CHECK:STDOUT: !30 = !{!28} +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "PassIntPtr", linkageName: "_CPassIntPtr.Main", scope: null, file: !4, line: 10, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !7) +// CHECK:STDOUT: !34 = !DILocation(line: 11, column: 21, scope: !31) +// CHECK:STDOUT: !35 = !DILocation(line: 11, column: 3, scope: !31) +// CHECK:STDOUT: !36 = !DILocation(line: 10, column: 1, scope: !31) +// CHECK:STDOUT: !37 = !{!32} +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "PassIntPtrToConstVoidPtr", linkageName: "_CPassIntPtrToConstVoidPtr.Main", scope: null, file: !4, line: 14, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !44) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !7) +// CHECK:STDOUT: !41 = !DILocation(line: 15, column: 27, scope: !38) +// CHECK:STDOUT: !42 = !DILocation(line: 15, column: 3, scope: !38) +// CHECK:STDOUT: !43 = !DILocation(line: 14, column: 1, scope: !38) +// CHECK:STDOUT: !44 = !{!39} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1b9dec9ba7b5442e:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !7) +// CHECK:STDOUT: !47 = !DILocation(line: 15, column: 27, scope: !45) +// CHECK:STDOUT: !48 = !{!46} +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0ca0de5f18f7d6e9:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !52) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !7) +// CHECK:STDOUT: !51 = !DILocation(line: 15, column: 27, scope: !49) +// CHECK:STDOUT: !52 = !{!50} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.05b8ef735d2db490:core.Destroy.Core", scope: null, file: !4, line: 15, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !7) +// CHECK:STDOUT: !55 = !DILocation(line: 15, column: 27, scope: !53) +// CHECK:STDOUT: !56 = !{!54} +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "PassConstIntPtrToConstVoidPtr", linkageName: "_CPassConstIntPtrToConstVoidPtr.Main", scope: null, file: !4, line: 18, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) +// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !7) // CHECK:STDOUT: !60 = !DILocation(line: 19, column: 27, scope: !57) // CHECK:STDOUT: !61 = !DILocation(line: 19, column: 3, scope: !57) // CHECK:STDOUT: !62 = !DILocation(line: 18, column: 1, scope: !57) -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0532bac23645330a", scope: null, file: !64, line: 105, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) +// CHECK:STDOUT: !63 = !{!58} // CHECK:STDOUT: !64 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !65 = !DISubroutineType(types: !66) -// CHECK:STDOUT: !66 = !{!15, !15} -// CHECK:STDOUT: !67 = !{!68} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !63, type: !15) -// CHECK:STDOUT: !69 = !DILocation(line: 106, column: 12, scope: !63) -// CHECK:STDOUT: !70 = !DILocation(line: 106, column: 5, scope: !63) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247", scope: null, file: !64, line: 105, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !72) -// CHECK:STDOUT: !72 = !{!73} -// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !71, type: !15) -// CHECK:STDOUT: !74 = !DILocation(line: 106, column: 12, scope: !71) -// CHECK:STDOUT: !75 = !DILocation(line: 106, column: 5, scope: !71) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb", scope: null, file: !64, line: 105, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !77) -// CHECK:STDOUT: !77 = !{!78} -// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !76, type: !15) -// CHECK:STDOUT: !79 = !DILocation(line: 106, column: 12, scope: !76) -// CHECK:STDOUT: !80 = !DILocation(line: 106, column: 5, scope: !76) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.4201ec9a263c5642", scope: null, file: !64, line: 80, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !82) -// CHECK:STDOUT: !82 = !{!83} -// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !15) -// CHECK:STDOUT: !84 = !DILocation(line: 81, column: 12, scope: !81) -// CHECK:STDOUT: !85 = !DILocation(line: 81, column: 5, scope: !81) -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91", scope: null, file: !64, line: 87, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !87) -// CHECK:STDOUT: !87 = !{!88} -// CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !86, type: !15) -// CHECK:STDOUT: !89 = !DILocation(line: 88, column: 29, scope: !86) -// CHECK:STDOUT: !90 = !DILocation(line: 88, column: 12, scope: !86) -// CHECK:STDOUT: !91 = !DILocation(line: 88, column: 5, scope: !86) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188", scope: null, file: !64, line: 87, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !93) -// CHECK:STDOUT: !93 = !{!94} -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !92, type: !15) -// CHECK:STDOUT: !95 = !DILocation(line: 88, column: 29, scope: !92) -// CHECK:STDOUT: !96 = !DILocation(line: 88, column: 12, scope: !92) -// CHECK:STDOUT: !97 = !DILocation(line: 88, column: 5, scope: !92) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.4201ec9a263c5642", scope: null, file: !64, line: 33, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !99) -// CHECK:STDOUT: !99 = !{!100} -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !98, type: !15) -// CHECK:STDOUT: !101 = !DILocation(line: 34, column: 12, scope: !98) -// CHECK:STDOUT: !102 = !DILocation(line: 34, column: 5, scope: !98) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba", scope: null, file: !104, line: 40, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !105) -// CHECK:STDOUT: !104 = !DIFile(filename: "{{.*}}/prelude/types/cpp/void.carbon", directory: "") -// CHECK:STDOUT: !105 = !{!106} -// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !103, type: !15) -// CHECK:STDOUT: !107 = !DILocation(line: 40, column: 3, scope: !103) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.e4523e01ac2590ba", scope: null, file: !64, line: 33, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !109) -// CHECK:STDOUT: !109 = !{!110} -// CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !108, type: !15) -// CHECK:STDOUT: !111 = !DILocation(line: 34, column: 12, scope: !108) -// CHECK:STDOUT: !112 = !DILocation(line: 34, column: 5, scope: !108) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271", scope: null, file: !64, line: 166, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !114) -// CHECK:STDOUT: !114 = !{!115} -// CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !113, type: !15) -// CHECK:STDOUT: !116 = !DILocation(line: 167, column: 14, scope: !113) -// CHECK:STDOUT: !117 = !DILocation(line: 169, column: 5, scope: !113) -// CHECK:STDOUT: !118 = !DILocation(line: 167, column: 18, scope: !113) -// CHECK:STDOUT: !119 = !DILocation(line: 170, column: 5, scope: !113) -// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137", scope: null, file: !64, line: 166, type: !65, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !121) -// CHECK:STDOUT: !121 = !{!122} -// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !120, type: !15) -// CHECK:STDOUT: !123 = !DILocation(line: 167, column: 14, scope: !120) -// CHECK:STDOUT: !124 = !DILocation(line: 169, column: 5, scope: !120) -// CHECK:STDOUT: !125 = !DILocation(line: 167, column: 18, scope: !120) -// CHECK:STDOUT: !126 = !DILocation(line: 170, column: 5, scope: !120) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0532bac23645330a", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !72) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !7) +// CHECK:STDOUT: !70 = !DILocation(line: 106, column: 12, scope: !65) +// CHECK:STDOUT: !71 = !DILocation(line: 106, column: 5, scope: !65) +// CHECK:STDOUT: !72 = !{!66} +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.9db51af7092ba247", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) +// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !73, type: !7) +// CHECK:STDOUT: !78 = !DILocation(line: 106, column: 12, scope: !73) +// CHECK:STDOUT: !79 = !DILocation(line: 106, column: 5, scope: !73) +// CHECK:STDOUT: !80 = !{!74} +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.218005b34e691dcb", scope: null, file: !64, line: 105, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !88) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !7) +// CHECK:STDOUT: !86 = !DILocation(line: 106, column: 12, scope: !81) +// CHECK:STDOUT: !87 = !DILocation(line: 106, column: 5, scope: !81) +// CHECK:STDOUT: !88 = !{!82} +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.4201ec9a263c5642", scope: null, file: !64, line: 80, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !105) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !7) +// CHECK:STDOUT: !103 = !DILocation(line: 81, column: 12, scope: !97) +// CHECK:STDOUT: !104 = !DILocation(line: 81, column: 5, scope: !97) +// CHECK:STDOUT: !105 = !{!98} +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.a6387af2c84c1f91", scope: null, file: !64, line: 87, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !114) +// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !7) +// CHECK:STDOUT: !111 = !DILocation(line: 88, column: 29, scope: !106) +// CHECK:STDOUT: !112 = !DILocation(line: 88, column: 12, scope: !106) +// CHECK:STDOUT: !113 = !DILocation(line: 88, column: 5, scope: !106) +// CHECK:STDOUT: !114 = !{!107} +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.09ed4effa59a8188", scope: null, file: !64, line: 87, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !123) +// CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !7) +// CHECK:STDOUT: !120 = !DILocation(line: 88, column: 29, scope: !115) +// CHECK:STDOUT: !121 = !DILocation(line: 88, column: 12, scope: !115) +// CHECK:STDOUT: !122 = !DILocation(line: 88, column: 5, scope: !115) +// CHECK:STDOUT: !123 = !{!116} +// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.4201ec9a263c5642", scope: null, file: !64, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !140) +// CHECK:STDOUT: !134 = !DILocalVariable(arg: 1, scope: !133, type: !7) +// CHECK:STDOUT: !138 = !DILocation(line: 34, column: 12, scope: !133) +// CHECK:STDOUT: !139 = !DILocation(line: 34, column: 5, scope: !133) +// CHECK:STDOUT: !140 = !{!134} +// CHECK:STDOUT: !141 = !DIFile(filename: "{{.*}}/prelude/types/cpp/void.carbon", directory: "") +// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert:thunk:ImplicitAs.a569d188b7ffe592.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba", scope: null, file: !141, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !146) +// CHECK:STDOUT: !143 = !DILocalVariable(arg: 1, scope: !142, type: !7) +// CHECK:STDOUT: !145 = !DILocation(line: 40, column: 3, scope: !142) +// CHECK:STDOUT: !146 = !{!143} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.e4523e01ac2590ba", scope: null, file: !64, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !154) +// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !147, type: !7) +// CHECK:STDOUT: !152 = !DILocation(line: 34, column: 12, scope: !147) +// CHECK:STDOUT: !153 = !DILocation(line: 34, column: 5, scope: !147) +// CHECK:STDOUT: !154 = !{!148} +// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271", scope: null, file: !64, line: 166, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !172) +// CHECK:STDOUT: !161 = !DILocalVariable(arg: 1, scope: !160, type: !7) +// CHECK:STDOUT: !165 = !DILocation(line: 167, column: 14, scope: !160) +// CHECK:STDOUT: !167 = !DILocation(line: 167, column: 18, scope: !160) +// CHECK:STDOUT: !169 = !DILocation(line: 169, column: 5, scope: !160) +// CHECK:STDOUT: !171 = !DILocation(line: 170, column: 5, scope: !160) +// CHECK:STDOUT: !172 = !{!161} +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137", scope: null, file: !64, line: 166, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !185) +// CHECK:STDOUT: !174 = !DILocalVariable(arg: 1, scope: !173, type: !7) +// CHECK:STDOUT: !178 = !DILocation(line: 167, column: 14, scope: !173) +// CHECK:STDOUT: !180 = !DILocation(line: 167, column: 18, scope: !173) +// CHECK:STDOUT: !182 = !DILocation(line: 169, column: 5, scope: !173) +// CHECK:STDOUT: !184 = !DILocation(line: 170, column: 5, scope: !173) +// CHECK:STDOUT: !185 = !{!174} +// CHECK:STDOUT: !186 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !187 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !188 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !189 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !190 = !{!"omnipotent char", !189, i64 0} +// CHECK:STDOUT: !191 = !{!"int", !190, i64 0} +// CHECK:STDOUT: !192 = !{!"__libc_errno", !191, i64 0} +// CHECK:STDOUT: !193 = !{!192, !191, i64 0} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'receive.carbon' @@ -390,59 +390,59 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CReceiveVoidPtr.Main() #0 !dbg !12 { +// CHECK:STDOUT: define ptr @_CReceiveVoidPtr.Main() #0 !dbg !198 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %return_void_ptr.call = call ptr @_Z15return_void_ptrv(), !dbg !16 -// CHECK:STDOUT: ret ptr %return_void_ptr.call, !dbg !17 +// CHECK:STDOUT: %return_void_ptr.call = call ptr @_Z15return_void_ptrv(), !dbg !201 +// CHECK:STDOUT: ret ptr %return_void_ptr.call, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare noundef ptr @_Z15return_void_ptrv() #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CConvertFromVoidPtr.Main(ptr %p) #0 !dbg !18 { +// CHECK:STDOUT: define ptr @_CConvertFromVoidPtr.Main(ptr %p) #0 !dbg !203 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %p, !dbg !23 +// CHECK:STDOUT: ret ptr %p, !dbg !209 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CConvertFromConstVoidPtr.Main(ptr %p) #0 !dbg !24 { +// CHECK:STDOUT: define ptr @_CConvertFromConstVoidPtr.Main(ptr %p) #0 !dbg !211 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %p, !dbg !27 +// CHECK:STDOUT: ret ptr %p, !dbg !217 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!195} +// CHECK:STDOUT: !llvm.module.flags = !{!186, !187, !188, !2, !3} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!193} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "receive.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ReceiveVoidPtr", linkageName: "_CReceiveVoidPtr.Main", scope: null, file: !1, line: 6, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 10, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "ConvertFromVoidPtr", linkageName: "_CConvertFromVoidPtr.Main", scope: null, file: !1, line: 10, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!15, !15} -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 11, column: 3, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "ConvertFromConstVoidPtr", linkageName: "_CConvertFromConstVoidPtr.Main", scope: null, file: !1, line: 14, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !15) -// CHECK:STDOUT: !27 = !DILocation(line: 15, column: 3, scope: !24) +// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !14 = !{!7, !7} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !186 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !187 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !188 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !189 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !190 = !{!"omnipotent char", !189, i64 0} +// CHECK:STDOUT: !191 = !{!"int", !190, i64 0} +// CHECK:STDOUT: !192 = !{!"__libc_errno", !191, i64 0} +// CHECK:STDOUT: !193 = !{!192, !191, i64 0} +// CHECK:STDOUT: !194 = !DIFile(filename: "receive.carbon", directory: "") +// CHECK:STDOUT: !195 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !194, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !196 = !{!7} +// CHECK:STDOUT: !197 = !DISubroutineType(types: !196) +// CHECK:STDOUT: !198 = distinct !DISubprogram(name: "ReceiveVoidPtr", linkageName: "_CReceiveVoidPtr.Main", scope: null, file: !194, line: 6, type: !197, spFlags: DISPFlagDefinition, unit: !195) +// CHECK:STDOUT: !201 = !DILocation(line: 7, column: 10, scope: !198) +// CHECK:STDOUT: !202 = !DILocation(line: 7, column: 3, scope: !198) +// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "ConvertFromVoidPtr", linkageName: "_CConvertFromVoidPtr.Main", scope: null, file: !194, line: 10, type: !15, spFlags: DISPFlagDefinition, unit: !195, retainedNodes: !210) +// CHECK:STDOUT: !204 = !DILocalVariable(arg: 1, scope: !203, type: !7) +// CHECK:STDOUT: !209 = !DILocation(line: 11, column: 3, scope: !203) +// CHECK:STDOUT: !210 = !{!204} +// CHECK:STDOUT: !211 = distinct !DISubprogram(name: "ConvertFromConstVoidPtr", linkageName: "_CConvertFromConstVoidPtr.Main", scope: null, file: !194, line: 14, type: !15, spFlags: DISPFlagDefinition, unit: !195, retainedNodes: !218) +// CHECK:STDOUT: !212 = !DILocalVariable(arg: 1, scope: !211, type: !7) +// CHECK:STDOUT: !217 = !DILocation(line: 15, column: 3, scope: !211) +// CHECK:STDOUT: !218 = !{!212} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/let/copy_value_rep.carbon b/toolchain/lower/testdata/let/copy_value_rep.carbon index 1c3e254910fc..6c15f562aa08 100644 --- a/toolchain/lower/testdata/let/copy_value_rep.carbon +++ b/toolchain/lower/testdata/let/copy_value_rep.carbon @@ -29,36 +29,36 @@ fn Run() -> i32 { // CHECK:STDOUT: @X.val.loc18_3 = internal constant { i32 } { i32 1 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: %.loc18_21.3.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @X.val.loc18_3, i64 4, i1 false), !dbg !8 -// CHECK:STDOUT: %.loc19_17.1.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc19_17.2 = load i32, ptr %.loc19_17.1.a, align 4, !dbg !10 -// CHECK:STDOUT: %.loc20_4.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 2, ptr %.loc20_4.a, align 4, !dbg !11 -// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc19_17.2, !dbg !12 +// CHECK:STDOUT: %x.var = alloca { i32 }, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !31 +// CHECK:STDOUT: %.loc18_21.3.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @X.val.loc18_3, i64 4, i1 false), !dbg !31 +// CHECK:STDOUT: %.loc19_17.1.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: %.loc19_17.2 = load i32, ptr %.loc19_17.1.a, align 4, !dbg !34 +// CHECK:STDOUT: %.loc20_4.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: store i32 2, ptr %.loc20_4.a, align 4, !dbg !37 +// CHECK:STDOUT: call void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: ret i32 %.loc19_17.2, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.617e09fd62745f5d:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -70,37 +70,37 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "copy_value_rep.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 14, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 16, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !7} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68d83131305ed52b:core.Destroy.Core", scope: null, file: !1, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 18, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !1, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) -// CHECK:STDOUT: !29 = !DILocation(line: 18, column: 3, scope: !26) +// CHECK:STDOUT: !18 = !DIFile(filename: "copy_value_rep.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 18, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 18, column: 14, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 19, column: 16, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 3, scope: !28) +// CHECK:STDOUT: !39 = !DILocation(line: 22, column: 3, scope: !28) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) +// CHECK:STDOUT: !42 = !DILocation(line: 18, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68d83131305ed52b:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !25) +// CHECK:STDOUT: !46 = !DILocation(line: 18, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.617e09fd62745f5d:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !25) +// CHECK:STDOUT: !50 = !DILocation(line: 18, column: 3, scope: !48) +// CHECK:STDOUT: !51 = !{!49} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/let/global.carbon b/toolchain/lower/testdata/let/global.carbon index 4a3792c25b9f..3769e5e36322 100644 --- a/toolchain/lower/testdata/let/global.carbon +++ b/toolchain/lower/testdata/let/global.carbon @@ -31,32 +31,32 @@ fn F() { // CHECK:STDOUT: declare void @_CSink.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CSink.Main(ptr @C.val.loc15_13.5), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CSink.Main(ptr @C.val.loc15_13.5), !dbg !13 +// CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !9 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "global.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 0, scope: !9) +// CHECK:STDOUT: !4 = !DIFile(filename: "global.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !9 = !{null} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !4, line: 19, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !13 = !DILocation(line: 20, column: 3, scope: !11) +// CHECK:STDOUT: !14 = !DILocation(line: 19, column: 1, scope: !11) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !4, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !16 = !DILocation(line: 0, scope: !15) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/let/local.carbon b/toolchain/lower/testdata/let/local.carbon index 6a4c0241702e..2017c67ee8d9 100644 --- a/toolchain/lower/testdata/let/local.carbon +++ b/toolchain/lower/testdata/let/local.carbon @@ -38,60 +38,60 @@ fn CallF() { // CHECK:STDOUT: source_filename = "local.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 1, !dbg !8 +// CHECK:STDOUT: ret i32 1, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "local.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "local.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 3, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !32 = !DILocation(line: 6, column: 3, scope: !23) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'symbolic.carbon' // CHECK:STDOUT: source_filename = "symbolic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %_) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr %_) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !11 { +// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!34} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "symbolic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 1, scope: !11) +// CHECK:STDOUT: !33 = !DIFile(filename: "symbolic.carbon", directory: "") +// CHECK:STDOUT: !34 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !33, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !36 = !{null, !35} +// CHECK:STDOUT: !37 = !DISubroutineType(types: !36) +// CHECK:STDOUT: !38 = !{null} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !33, line: 5, type: !37, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !44) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !35) +// CHECK:STDOUT: !43 = !DILocation(line: 5, column: 1, scope: !40) +// CHECK:STDOUT: !44 = !{!41} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !33, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !46 = !DILocation(line: 7, column: 1, scope: !45) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/let/tuple.carbon b/toolchain/lower/testdata/let/tuple.carbon index b6e96fa7f631..29a1d7f152c8 100644 --- a/toolchain/lower/testdata/let/tuple.carbon +++ b/toolchain/lower/testdata/let/tuple.carbon @@ -25,74 +25,74 @@ fn F() -> i32 { // CHECK:STDOUT: @tuple.8a1.loc15_3 = internal constant { i32, i32 } { i32 4, i32 5 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %b.var = alloca { i32, i32 }, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.loc16_43 = alloca { i32, i32, i32 }, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.loc16_46 = alloca { i32, i32 }, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.loc16_47 = alloca { ptr, ptr }, align 8, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !8 -// CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !13 -// CHECK:STDOUT: %tuple.elem1.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !13 -// CHECK:STDOUT: %tuple.elem2.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !13 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.479.loc14_3, i64 12, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !9 -// CHECK:STDOUT: %tuple.elem0.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !14 -// CHECK:STDOUT: %tuple.elem1.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.8a1.loc15_3, i64 8, i1 false), !dbg !9 -// CHECK:STDOUT: %tuple.elem0.loc16_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc16_43.1 = load i32, ptr %tuple.elem0.loc16_43.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.elem1.loc16_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: %.loc16_43.2 = load i32, ptr %tuple.elem1.loc16_43.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.elem2.loc16.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !10 -// CHECK:STDOUT: %.loc16_43.3 = load i32, ptr %tuple.elem2.loc16.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc16_43), !dbg !10 -// CHECK:STDOUT: %tuple.loc16_431 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc16_43, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: store i32 %.loc16_43.1, ptr %tuple.loc16_431, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.loc16_432 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc16_43, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: store i32 %.loc16_43.2, ptr %tuple.loc16_432, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.loc16_433 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc16_43, i32 0, i32 2, !dbg !10 -// CHECK:STDOUT: store i32 %.loc16_43.3, ptr %tuple.loc16_433, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.elem0.loc16_46.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc16_46.1 = load i32, ptr %tuple.elem0.loc16_46.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.loc16_46.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %.loc16_46.2 = load i32, ptr %tuple.elem1.loc16_46.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc16_46), !dbg !11 -// CHECK:STDOUT: %tuple.loc16_464 = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.loc16_46, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc16_46.1, ptr %tuple.loc16_464, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.loc16_465 = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.loc16_46, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store i32 %.loc16_46.2, ptr %tuple.loc16_465, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc16_47), !dbg !12 -// CHECK:STDOUT: %tuple.loc16_476 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc16_47, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: store ptr %tuple.loc16_43, ptr %tuple.loc16_476, align 8, !dbg !12 -// CHECK:STDOUT: %tuple.loc16_477 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc16_47, i32 0, i32 1, !dbg !12 -// CHECK:STDOUT: store ptr %tuple.loc16_46, ptr %tuple.loc16_477, align 8, !dbg !12 -// CHECK:STDOUT: %tuple.elem1.loc17_11.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc16_47, i32 0, i32 1, !dbg !15 -// CHECK:STDOUT: %tuple.elem1.loc17_11.tuple.elem.load = load ptr, ptr %tuple.elem1.loc17_11.tuple.elem, align 8, !dbg !15 -// CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.elem1.loc17_11.tuple.elem.load, i32 0, i32 1, !dbg !15 -// CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem.load = load i32, ptr %tuple.elem1.loc17_13.tuple.elem, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %b.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !8 -// CHECK:STDOUT: ret i32 %tuple.elem1.loc17_13.tuple.elem.load, !dbg !16 +// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %b.var = alloca { i32, i32 }, align 4, !dbg !34 +// CHECK:STDOUT: %tuple.loc16_43 = alloca { i32, i32, i32 }, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.loc16_46 = alloca { i32, i32 }, align 4, !dbg !38 +// CHECK:STDOUT: %tuple.loc16_47 = alloca { ptr, ptr }, align 8, !dbg !39 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !31 +// CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: %tuple.elem1.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: %tuple.elem2.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !32 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.479.loc14_3, i64 12, i1 false), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !34 +// CHECK:STDOUT: %tuple.elem0.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %tuple.elem1.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.8a1.loc15_3, i64 8, i1 false), !dbg !34 +// CHECK:STDOUT: %tuple.elem0.loc16_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: %.loc16_43.1 = load i32, ptr %tuple.elem0.loc16_43.tuple.elem, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.elem1.loc16_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !37 +// CHECK:STDOUT: %.loc16_43.2 = load i32, ptr %tuple.elem1.loc16_43.tuple.elem, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.elem2.loc16.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !37 +// CHECK:STDOUT: %.loc16_43.3 = load i32, ptr %tuple.elem2.loc16.tuple.elem, align 4, !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc16_43), !dbg !37 +// CHECK:STDOUT: %tuple.loc16_431 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc16_43, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: store i32 %.loc16_43.1, ptr %tuple.loc16_431, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.loc16_432 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc16_43, i32 0, i32 1, !dbg !37 +// CHECK:STDOUT: store i32 %.loc16_43.2, ptr %tuple.loc16_432, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.loc16_433 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc16_43, i32 0, i32 2, !dbg !37 +// CHECK:STDOUT: store i32 %.loc16_43.3, ptr %tuple.loc16_433, align 4, !dbg !37 +// CHECK:STDOUT: %tuple.elem0.loc16_46.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !38 +// CHECK:STDOUT: %.loc16_46.1 = load i32, ptr %tuple.elem0.loc16_46.tuple.elem, align 4, !dbg !38 +// CHECK:STDOUT: %tuple.elem1.loc16_46.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !38 +// CHECK:STDOUT: %.loc16_46.2 = load i32, ptr %tuple.elem1.loc16_46.tuple.elem, align 4, !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc16_46), !dbg !38 +// CHECK:STDOUT: %tuple.loc16_464 = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.loc16_46, i32 0, i32 0, !dbg !38 +// CHECK:STDOUT: store i32 %.loc16_46.1, ptr %tuple.loc16_464, align 4, !dbg !38 +// CHECK:STDOUT: %tuple.loc16_465 = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.loc16_46, i32 0, i32 1, !dbg !38 +// CHECK:STDOUT: store i32 %.loc16_46.2, ptr %tuple.loc16_465, align 4, !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc16_47), !dbg !39 +// CHECK:STDOUT: %tuple.loc16_476 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc16_47, i32 0, i32 0, !dbg !39 +// CHECK:STDOUT: store ptr %tuple.loc16_43, ptr %tuple.loc16_476, align 8, !dbg !39 +// CHECK:STDOUT: %tuple.loc16_477 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc16_47, i32 0, i32 1, !dbg !39 +// CHECK:STDOUT: store ptr %tuple.loc16_46, ptr %tuple.loc16_477, align 8, !dbg !39 +// CHECK:STDOUT: %tuple.elem1.loc17_11.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc16_47, i32 0, i32 1, !dbg !42 +// CHECK:STDOUT: %tuple.elem1.loc17_11.tuple.elem.load = load ptr, ptr %tuple.elem1.loc17_11.tuple.elem, align 8, !dbg !42 +// CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %tuple.elem1.loc17_11.tuple.elem.load, i32 0, i32 1, !dbg !42 +// CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem.load = load i32, ptr %tuple.elem1.loc17_13.tuple.elem, align 4, !dbg !42 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %b.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: ret i32 %tuple.elem1.loc17_13.tuple.elem.load, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -108,41 +108,41 @@ fn F() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "tuple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 43, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 46, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 42, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 14, column: 28, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 15, column: 23, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 10, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !7} -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 3, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{null, !26} -// CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !26) -// CHECK:STDOUT: !29 = !DILocation(line: 15, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !26) -// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !30) +// CHECK:STDOUT: !18 = !DIFile(filename: "tuple.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 14, column: 28, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 23, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 43, scope: !28) +// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 46, scope: !28) +// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 42, scope: !28) +// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 10, scope: !28) +// CHECK:STDOUT: !43 = !DILocation(line: 17, column: 3, scope: !28) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !20) +// CHECK:STDOUT: !46 = !DILocation(line: 15, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !{!45} +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !51) +// CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !48, type: !25) +// CHECK:STDOUT: !50 = !DILocation(line: 15, column: 3, scope: !48) +// CHECK:STDOUT: !51 = !{!49} +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !55) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !25) +// CHECK:STDOUT: !54 = !DILocation(line: 14, column: 3, scope: !52) +// CHECK:STDOUT: !55 = !{!53} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/namespace/function.carbon b/toolchain/lower/testdata/namespace/function.carbon index 0ff044aa1367..b9d67285a165 100644 --- a/toolchain/lower/testdata/namespace/function.carbon +++ b/toolchain/lower/testdata/namespace/function.carbon @@ -28,40 +28,40 @@ fn Bar() { // CHECK:STDOUT: source_filename = "function.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBaz.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CBaz.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBaz.Foo.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CBaz.Foo.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBar.Main() #0 !dbg !10 { +// CHECK:STDOUT: define void @_CBar.Main() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CBaz.Foo.Main(), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: call void @_CBaz.Foo.Main(), !dbg !23 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "function.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Baz", linkageName: "_CBaz.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Baz", linkageName: "_CBaz.Foo.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 19, column: 1, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Bar", linkageName: "_CBar.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 23, column: 3, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 1, scope: !10) +// CHECK:STDOUT: !14 = !DIFile(filename: "function.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Baz", linkageName: "_CBaz.Main", scope: null, file: !14, line: 16, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 1, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Baz", linkageName: "_CBaz.Foo.Main", scope: null, file: !14, line: 19, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 19, column: 1, scope: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Bar", linkageName: "_CBar.Main", scope: null, file: !14, line: 22, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !23 = !DILocation(line: 23, column: 3, scope: !22) +// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 1, scope: !22) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/namespace/namespace_run.carbon b/toolchain/lower/testdata/namespace/namespace_run.carbon index 6b15c4ebfd1e..61c661091d06 100644 --- a/toolchain/lower/testdata/namespace/namespace_run.carbon +++ b/toolchain/lower/testdata/namespace/namespace_run.carbon @@ -23,35 +23,35 @@ fn Run() { // CHECK:STDOUT: source_filename = "namespace_run.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CRun.Foo.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CRun.Foo.Main() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !8 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !13 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CRun.Foo.Main(), !dbg !12 -// CHECK:STDOUT: ret i32 0, !dbg !13 +// CHECK:STDOUT: call void @_CRun.Foo.Main(), !dbg !14 +// CHECK:STDOUT: ret i32 0, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "namespace_run.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "_CRun.Foo.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !4 = !DIFile(filename: "namespace_run.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 17, type: !9, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DISubroutineType(types: !10) -// CHECK:STDOUT: !10 = !{!11} -// CHECK:STDOUT: !11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 5, scope: !8) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 1, scope: !8) +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !{!8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Run", linkageName: "_CRun.Foo.Main", scope: null, file: !4, line: 15, type: !7, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !12 = !DILocation(line: 15, column: 1, scope: !11) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !4, line: 17, type: !10, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !14 = !DILocation(line: 18, column: 5, scope: !13) +// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 1, scope: !13) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/namespace/nested.carbon b/toolchain/lower/testdata/namespace/nested.carbon index 973328ed6dd4..48d9df992a93 100644 --- a/toolchain/lower/testdata/namespace/nested.carbon +++ b/toolchain/lower/testdata/namespace/nested.carbon @@ -25,32 +25,32 @@ fn Foo.Bar.Baz() { // CHECK:STDOUT: source_filename = "nested.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWiz.Bar.Foo.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWiz.Bar.Foo.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CBaz.Bar.Foo.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CBaz.Bar.Foo.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CWiz.Bar.Foo.Main(), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @_CWiz.Bar.Foo.Main(), !dbg !21 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nested.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Wiz", linkageName: "_CWiz.Bar.Foo.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Baz", linkageName: "_CBaz.Bar.Foo.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 20, column: 3, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 1, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "nested.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Wiz", linkageName: "_CWiz.Bar.Foo.Main", scope: null, file: !14, line: 16, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 1, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Baz", linkageName: "_CBaz.Bar.Foo.Main", scope: null, file: !14, line: 19, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 20, column: 3, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 19, column: 1, scope: !20) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/and.carbon b/toolchain/lower/testdata/operators/and.carbon index b529b3546190..5ad539a40d7c 100644 --- a/toolchain/lower/testdata/operators/and.carbon +++ b/toolchain/lower/testdata/operators/and.carbon @@ -22,50 +22,50 @@ fn And() -> bool { // CHECK:STDOUT: source_filename = "and.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CF.Main() #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i1 true, !dbg !8 +// CHECK:STDOUT: ret i1 true, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CG.Main() #0 !dbg !9 { +// CHECK:STDOUT: define i1 @_CG.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i1 true, !dbg !10 +// CHECK:STDOUT: ret i1 true, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CAnd.Main() #0 !dbg !11 { +// CHECK:STDOUT: define i1 @_CAnd.Main() #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !12 -// CHECK:STDOUT: br i1 %F.call, label %and.rhs, label %and.result, !dbg !12 +// CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !32 +// CHECK:STDOUT: br i1 %F.call, label %and.rhs, label %and.result, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: and.rhs: ; preds = %entry -// CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !13 -// CHECK:STDOUT: br label %and.result, !dbg !12 +// CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !33 +// CHECK:STDOUT: br label %and.result, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: and.result: ; preds = %and.rhs, %entry // CHECK:STDOUT: %0 = phi i1 [ false, %entry ], [ %G.call, %and.rhs ] -// CHECK:STDOUT: ret i1 %0, !dbg !14 +// CHECK:STDOUT: ret i1 %0, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "and.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 18, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 18, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "And", linkageName: "_CAnd.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 10, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 18, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !11) +// CHECK:STDOUT: !16 = !DIFile(filename: "and.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !16, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 18, scope: !21) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !16, line: 14, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 18, scope: !25) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "And", linkageName: "_CAnd.Main", scope: null, file: !16, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !32 = !DILocation(line: 17, column: 10, scope: !29) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 18, scope: !29) +// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !29) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/and_empty_block.carbon b/toolchain/lower/testdata/operators/and_empty_block.carbon index ae2fb1f54763..957c6a897f66 100644 --- a/toolchain/lower/testdata/operators/and_empty_block.carbon +++ b/toolchain/lower/testdata/operators/and_empty_block.carbon @@ -21,34 +21,34 @@ fn And(b: bool, c: bool) -> bool { // CHECK:STDOUT: source_filename = "and_empty_block.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CAnd.Main(i1 %b, i1 %c) #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CAnd.Main(i1 %b, i1 %c) #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: br i1 %b, label %and.rhs, label %and.result, !dbg !11 +// CHECK:STDOUT: br i1 %b, label %and.rhs, label %and.result, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: and.rhs: ; preds = %entry -// CHECK:STDOUT: br label %and.result, !dbg !11 +// CHECK:STDOUT: br label %and.result, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: and.result: ; preds = %and.rhs, %entry // CHECK:STDOUT: %0 = phi i1 [ false, %entry ], [ %c, %and.rhs ] -// CHECK:STDOUT: ret i1 %0, !dbg !12 +// CHECK:STDOUT: ret i1 %0, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "and_empty_block.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "And", linkageName: "_CAnd.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "and_empty_block.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18, !18, !18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "And", linkageName: "_CAnd.Main", scope: null, file: !16, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !31) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !18) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !21, type: !18) +// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 10, scope: !21) +// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 3, scope: !21) +// CHECK:STDOUT: !31 = !{!22, !23} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/arithmetic.carbon b/toolchain/lower/testdata/operators/arithmetic.carbon index a3a10724ddb0..f4eabad5e010 100644 --- a/toolchain/lower/testdata/operators/arithmetic.carbon +++ b/toolchain/lower/testdata/operators/arithmetic.carbon @@ -41,208 +41,208 @@ fn div_u16(a: u16, b: u16) -> u16 { return a / b; } // CHECK:STDOUT: source_filename = "arithmetic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cadd_i32.Main(i32 %a, i32 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_Cadd_i32.Main(i32 %a, i32 %b) #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %a, %b, !dbg !11 -// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !12 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %a, %b, !dbg !29 +// CHECK:STDOUT: ret i32 %Int.as.AddWith.impl.Op.call, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cadd_u32.Main(i32 %a, i32 %b) #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_Cadd_u32.Main(i32 %a, i32 %b) #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.AddWith.impl.Op.call = add i32 %a, %b, !dbg !20 -// CHECK:STDOUT: ret i32 %UInt.as.AddWith.impl.Op.call, !dbg !21 +// CHECK:STDOUT: %UInt.as.AddWith.impl.Op.call = add i32 %a, %b, !dbg !40 +// CHECK:STDOUT: ret i32 %UInt.as.AddWith.impl.Op.call, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cdiv_i32.Main(i32 %a, i32 %b) #0 !dbg !22 { +// CHECK:STDOUT: define i32 @_Cdiv_i32.Main(i32 %a, i32 %b) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.DivWith.impl.Op.call = sdiv i32 %a, %b, !dbg !26 -// CHECK:STDOUT: ret i32 %Int.as.DivWith.impl.Op.call, !dbg !27 +// CHECK:STDOUT: %Int.as.DivWith.impl.Op.call = sdiv i32 %a, %b, !dbg !51 +// CHECK:STDOUT: ret i32 %Int.as.DivWith.impl.Op.call, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cdiv_u32.Main(i32 %a, i32 %b) #0 !dbg !28 { +// CHECK:STDOUT: define i32 @_Cdiv_u32.Main(i32 %a, i32 %b) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.DivWith.impl.Op.call = udiv i32 %a, %b, !dbg !32 -// CHECK:STDOUT: ret i32 %UInt.as.DivWith.impl.Op.call, !dbg !33 +// CHECK:STDOUT: %UInt.as.DivWith.impl.Op.call = udiv i32 %a, %b, !dbg !62 +// CHECK:STDOUT: ret i32 %UInt.as.DivWith.impl.Op.call, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cmod_i32.Main(i32 %a, i32 %b) #0 !dbg !34 { +// CHECK:STDOUT: define i32 @_Cmod_i32.Main(i32 %a, i32 %b) #0 !dbg !66 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %a, %b, !dbg !38 -// CHECK:STDOUT: ret i32 %Int.as.ModWith.impl.Op.call, !dbg !39 +// CHECK:STDOUT: %Int.as.ModWith.impl.Op.call = srem i32 %a, %b, !dbg !73 +// CHECK:STDOUT: ret i32 %Int.as.ModWith.impl.Op.call, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cmod_u32.Main(i32 %a, i32 %b) #0 !dbg !40 { +// CHECK:STDOUT: define i32 @_Cmod_u32.Main(i32 %a, i32 %b) #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ModWith.impl.Op.call = urem i32 %a, %b, !dbg !44 -// CHECK:STDOUT: ret i32 %UInt.as.ModWith.impl.Op.call, !dbg !45 +// CHECK:STDOUT: %UInt.as.ModWith.impl.Op.call = urem i32 %a, %b, !dbg !84 +// CHECK:STDOUT: ret i32 %UInt.as.ModWith.impl.Op.call, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cmul_i32.Main(i32 %a, i32 %b) #0 !dbg !46 { +// CHECK:STDOUT: define i32 @_Cmul_i32.Main(i32 %a, i32 %b) #0 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %a, %b, !dbg !50 -// CHECK:STDOUT: ret i32 %Int.as.MulWith.impl.Op.call, !dbg !51 +// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %a, %b, !dbg !95 +// CHECK:STDOUT: ret i32 %Int.as.MulWith.impl.Op.call, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cmul_u32.Main(i32 %a, i32 %b) #0 !dbg !52 { +// CHECK:STDOUT: define i32 @_Cmul_u32.Main(i32 %a, i32 %b) #0 !dbg !99 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.MulWith.impl.Op.call = mul i32 %a, %b, !dbg !56 -// CHECK:STDOUT: ret i32 %UInt.as.MulWith.impl.Op.call, !dbg !57 +// CHECK:STDOUT: %UInt.as.MulWith.impl.Op.call = mul i32 %a, %b, !dbg !106 +// CHECK:STDOUT: ret i32 %UInt.as.MulWith.impl.Op.call, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cneg_i32.Main(i32 %a) #0 !dbg !58 { +// CHECK:STDOUT: define i32 @_Cneg_i32.Main(i32 %a) #0 !dbg !110 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %a, !dbg !63 -// CHECK:STDOUT: ret i32 %Int.as.Negate.impl.Op.call, !dbg !64 +// CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %a, !dbg !116 +// CHECK:STDOUT: ret i32 %Int.as.Negate.impl.Op.call, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Cneg_u32.Main(i32 %a) #0 !dbg !65 { +// CHECK:STDOUT: define i32 @_Cneg_u32.Main(i32 %a) #0 !dbg !119 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.Negate.impl.Op.call = sub i32 0, %a, !dbg !70 -// CHECK:STDOUT: ret i32 %UInt.as.Negate.impl.Op.call, !dbg !71 +// CHECK:STDOUT: %UInt.as.Negate.impl.Op.call = sub i32 0, %a, !dbg !125 +// CHECK:STDOUT: ret i32 %UInt.as.Negate.impl.Op.call, !dbg !126 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Csub_i32.Main(i32 %a, i32 %b) #0 !dbg !72 { +// CHECK:STDOUT: define i32 @_Csub_i32.Main(i32 %a, i32 %b) #0 !dbg !128 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.SubWith.impl.Op.call = sub i32 %a, %b, !dbg !76 -// CHECK:STDOUT: ret i32 %Int.as.SubWith.impl.Op.call, !dbg !77 +// CHECK:STDOUT: %Int.as.SubWith.impl.Op.call = sub i32 %a, %b, !dbg !135 +// CHECK:STDOUT: ret i32 %Int.as.SubWith.impl.Op.call, !dbg !137 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_Csub_u32.Main(i32 %a, i32 %b) #0 !dbg !78 { +// CHECK:STDOUT: define i32 @_Csub_u32.Main(i32 %a, i32 %b) #0 !dbg !139 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.SubWith.impl.Op.call = sub i32 %a, %b, !dbg !82 -// CHECK:STDOUT: ret i32 %UInt.as.SubWith.impl.Op.call, !dbg !83 +// CHECK:STDOUT: %UInt.as.SubWith.impl.Op.call = sub i32 %a, %b, !dbg !146 +// CHECK:STDOUT: ret i32 %UInt.as.SubWith.impl.Op.call, !dbg !148 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_Cdiv_i16.Main(i16 %a, i16 %b) #0 !dbg !84 { +// CHECK:STDOUT: define i16 @_Cdiv_i16.Main(i16 %a, i16 %b) #0 !dbg !150 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.DivWith.impl.Op.call = sdiv i16 %a, %b, !dbg !91 -// CHECK:STDOUT: ret i16 %Int.as.DivWith.impl.Op.call, !dbg !92 +// CHECK:STDOUT: %Int.as.DivWith.impl.Op.call = sdiv i16 %a, %b, !dbg !157 +// CHECK:STDOUT: ret i16 %Int.as.DivWith.impl.Op.call, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_Cdiv_u16.Main(i16 %a, i16 %b) #0 !dbg !93 { +// CHECK:STDOUT: define i16 @_Cdiv_u16.Main(i16 %a, i16 %b) #0 !dbg !161 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.DivWith.impl.Op.call = udiv i16 %a, %b, !dbg !100 -// CHECK:STDOUT: ret i16 %UInt.as.DivWith.impl.Op.call, !dbg !101 +// CHECK:STDOUT: %UInt.as.DivWith.impl.Op.call = udiv i16 %a, %b, !dbg !168 +// CHECK:STDOUT: ret i16 %UInt.as.DivWith.impl.Op.call, !dbg !170 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "arithmetic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "add_i32", linkageName: "_Cadd_i32.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 44, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 37, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "add_u32", linkageName: "_Cadd_u32.Main", scope: null, file: !1, line: 17, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!16, !16, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !17 = !{!18, !19} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 2, scope: !13, type: !16) -// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 44, scope: !13) -// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 37, scope: !13) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "div_i32", linkageName: "_Cdiv_i32.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24, !25} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !7) -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !22, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 19, column: 44, scope: !22) -// CHECK:STDOUT: !27 = !DILocation(line: 19, column: 37, scope: !22) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "div_u32", linkageName: "_Cdiv_u32.Main", scope: null, file: !1, line: 20, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !16) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !28, type: !16) -// CHECK:STDOUT: !32 = !DILocation(line: 20, column: 44, scope: !28) -// CHECK:STDOUT: !33 = !DILocation(line: 20, column: 37, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "mod_i32", linkageName: "_Cmod_i32.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36, !37} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !7) -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 2, scope: !34, type: !7) -// CHECK:STDOUT: !38 = !DILocation(line: 22, column: 44, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 22, column: 37, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "mod_u32", linkageName: "_Cmod_u32.Main", scope: null, file: !1, line: 23, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42, !43} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !16) -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !16) -// CHECK:STDOUT: !44 = !DILocation(line: 23, column: 44, scope: !40) -// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 37, scope: !40) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "mul_i32", linkageName: "_Cmul_i32.Main", scope: null, file: !1, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !47) -// CHECK:STDOUT: !47 = !{!48, !49} -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !7) -// CHECK:STDOUT: !49 = !DILocalVariable(arg: 2, scope: !46, type: !7) -// CHECK:STDOUT: !50 = !DILocation(line: 25, column: 44, scope: !46) -// CHECK:STDOUT: !51 = !DILocation(line: 25, column: 37, scope: !46) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "mul_u32", linkageName: "_Cmul_u32.Main", scope: null, file: !1, line: 26, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !53) -// CHECK:STDOUT: !53 = !{!54, !55} -// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !16) -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 2, scope: !52, type: !16) -// CHECK:STDOUT: !56 = !DILocation(line: 26, column: 44, scope: !52) -// CHECK:STDOUT: !57 = !DILocation(line: 26, column: 37, scope: !52) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "neg_i32", linkageName: "_Cneg_i32.Main", scope: null, file: !1, line: 28, type: !59, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !61) -// CHECK:STDOUT: !59 = !DISubroutineType(types: !60) -// CHECK:STDOUT: !60 = !{!7, !7} -// CHECK:STDOUT: !61 = !{!62} -// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !58, type: !7) -// CHECK:STDOUT: !63 = !DILocation(line: 28, column: 36, scope: !58) -// CHECK:STDOUT: !64 = !DILocation(line: 28, column: 29, scope: !58) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "neg_u32", linkageName: "_Cneg_u32.Main", scope: null, file: !1, line: 29, type: !66, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !68) -// CHECK:STDOUT: !66 = !DISubroutineType(types: !67) -// CHECK:STDOUT: !67 = !{!16, !16} -// CHECK:STDOUT: !68 = !{!69} -// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !65, type: !16) -// CHECK:STDOUT: !70 = !DILocation(line: 29, column: 36, scope: !65) -// CHECK:STDOUT: !71 = !DILocation(line: 29, column: 29, scope: !65) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "sub_i32", linkageName: "_Csub_i32.Main", scope: null, file: !1, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !73) -// CHECK:STDOUT: !73 = !{!74, !75} -// CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !7) -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 2, scope: !72, type: !7) -// CHECK:STDOUT: !76 = !DILocation(line: 31, column: 44, scope: !72) -// CHECK:STDOUT: !77 = !DILocation(line: 31, column: 37, scope: !72) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "sub_u32", linkageName: "_Csub_u32.Main", scope: null, file: !1, line: 32, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !79) -// CHECK:STDOUT: !79 = !{!80, !81} -// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !78, type: !16) -// CHECK:STDOUT: !81 = !DILocalVariable(arg: 2, scope: !78, type: !16) -// CHECK:STDOUT: !82 = !DILocation(line: 32, column: 44, scope: !78) -// CHECK:STDOUT: !83 = !DILocation(line: 32, column: 37, scope: !78) -// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "div_i16", linkageName: "_Cdiv_i16.Main", scope: null, file: !1, line: 36, type: !85, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !88) -// CHECK:STDOUT: !85 = !DISubroutineType(types: !86) -// CHECK:STDOUT: !86 = !{!87, !87, !87} -// CHECK:STDOUT: !87 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !88 = !{!89, !90} -// CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !84, type: !87) -// CHECK:STDOUT: !90 = !DILocalVariable(arg: 2, scope: !84, type: !87) -// CHECK:STDOUT: !91 = !DILocation(line: 36, column: 44, scope: !84) -// CHECK:STDOUT: !92 = !DILocation(line: 36, column: 37, scope: !84) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "div_u16", linkageName: "_Cdiv_u16.Main", scope: null, file: !1, line: 37, type: !94, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !97) -// CHECK:STDOUT: !94 = !DISubroutineType(types: !95) -// CHECK:STDOUT: !95 = !{!96, !96, !96} -// CHECK:STDOUT: !96 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !97 = !{!98, !99} -// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !93, type: !96) -// CHECK:STDOUT: !99 = !DILocalVariable(arg: 2, scope: !93, type: !96) -// CHECK:STDOUT: !100 = !DILocation(line: 37, column: 44, scope: !93) -// CHECK:STDOUT: !101 = !DILocation(line: 37, column: 37, scope: !93) +// CHECK:STDOUT: !4 = !DIFile(filename: "arithmetic.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !10 = !{!6, !6, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{!7, !7, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{!6, !6} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = !{!7, !7} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = !{!8, !8, !8} +// CHECK:STDOUT: !19 = !DISubroutineType(types: !18) +// CHECK:STDOUT: !20 = !{!9, !9, !9} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "add_i32", linkageName: "_Cadd_i32.Main", scope: null, file: !4, line: 16, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !32) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 2, scope: !22, type: !6) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 44, scope: !22) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 37, scope: !22) +// CHECK:STDOUT: !32 = !{!23, !24} +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "add_u32", linkageName: "_Cadd_u32.Main", scope: null, file: !4, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !43) +// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !7) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !33, type: !7) +// CHECK:STDOUT: !40 = !DILocation(line: 17, column: 44, scope: !33) +// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 37, scope: !33) +// CHECK:STDOUT: !43 = !{!34, !35} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "div_i32", linkageName: "_Cdiv_i32.Main", scope: null, file: !4, line: 19, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !6) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 2, scope: !44, type: !6) +// CHECK:STDOUT: !51 = !DILocation(line: 19, column: 44, scope: !44) +// CHECK:STDOUT: !53 = !DILocation(line: 19, column: 37, scope: !44) +// CHECK:STDOUT: !54 = !{!45, !46} +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "div_u32", linkageName: "_Cdiv_u32.Main", scope: null, file: !4, line: 20, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !7) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 2, scope: !55, type: !7) +// CHECK:STDOUT: !62 = !DILocation(line: 20, column: 44, scope: !55) +// CHECK:STDOUT: !64 = !DILocation(line: 20, column: 37, scope: !55) +// CHECK:STDOUT: !65 = !{!56, !57} +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "mod_i32", linkageName: "_Cmod_i32.Main", scope: null, file: !4, line: 22, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !76) +// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !66, type: !6) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 2, scope: !66, type: !6) +// CHECK:STDOUT: !73 = !DILocation(line: 22, column: 44, scope: !66) +// CHECK:STDOUT: !75 = !DILocation(line: 22, column: 37, scope: !66) +// CHECK:STDOUT: !76 = !{!67, !68} +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "mod_u32", linkageName: "_Cmod_u32.Main", scope: null, file: !4, line: 23, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !87) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !77, type: !7) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 2, scope: !77, type: !7) +// CHECK:STDOUT: !84 = !DILocation(line: 23, column: 44, scope: !77) +// CHECK:STDOUT: !86 = !DILocation(line: 23, column: 37, scope: !77) +// CHECK:STDOUT: !87 = !{!78, !79} +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "mul_i32", linkageName: "_Cmul_i32.Main", scope: null, file: !4, line: 25, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !98) +// CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !88, type: !6) +// CHECK:STDOUT: !90 = !DILocalVariable(arg: 2, scope: !88, type: !6) +// CHECK:STDOUT: !95 = !DILocation(line: 25, column: 44, scope: !88) +// CHECK:STDOUT: !97 = !DILocation(line: 25, column: 37, scope: !88) +// CHECK:STDOUT: !98 = !{!89, !90} +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "mul_u32", linkageName: "_Cmul_u32.Main", scope: null, file: !4, line: 26, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !109) +// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !99, type: !7) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 2, scope: !99, type: !7) +// CHECK:STDOUT: !106 = !DILocation(line: 26, column: 44, scope: !99) +// CHECK:STDOUT: !108 = !DILocation(line: 26, column: 37, scope: !99) +// CHECK:STDOUT: !109 = !{!100, !101} +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "neg_i32", linkageName: "_Cneg_i32.Main", scope: null, file: !4, line: 28, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !118) +// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !6) +// CHECK:STDOUT: !116 = !DILocation(line: 28, column: 36, scope: !110) +// CHECK:STDOUT: !117 = !DILocation(line: 28, column: 29, scope: !110) +// CHECK:STDOUT: !118 = !{!111} +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "neg_u32", linkageName: "_Cneg_u32.Main", scope: null, file: !4, line: 29, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !127) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !7) +// CHECK:STDOUT: !125 = !DILocation(line: 29, column: 36, scope: !119) +// CHECK:STDOUT: !126 = !DILocation(line: 29, column: 29, scope: !119) +// CHECK:STDOUT: !127 = !{!120} +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "sub_i32", linkageName: "_Csub_i32.Main", scope: null, file: !4, line: 31, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !138) +// CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !128, type: !6) +// CHECK:STDOUT: !130 = !DILocalVariable(arg: 2, scope: !128, type: !6) +// CHECK:STDOUT: !135 = !DILocation(line: 31, column: 44, scope: !128) +// CHECK:STDOUT: !137 = !DILocation(line: 31, column: 37, scope: !128) +// CHECK:STDOUT: !138 = !{!129, !130} +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "sub_u32", linkageName: "_Csub_u32.Main", scope: null, file: !4, line: 32, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !149) +// CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !7) +// CHECK:STDOUT: !141 = !DILocalVariable(arg: 2, scope: !139, type: !7) +// CHECK:STDOUT: !146 = !DILocation(line: 32, column: 44, scope: !139) +// CHECK:STDOUT: !148 = !DILocation(line: 32, column: 37, scope: !139) +// CHECK:STDOUT: !149 = !{!140, !141} +// CHECK:STDOUT: !150 = distinct !DISubprogram(name: "div_i16", linkageName: "_Cdiv_i16.Main", scope: null, file: !4, line: 36, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !160) +// CHECK:STDOUT: !151 = !DILocalVariable(arg: 1, scope: !150, type: !8) +// CHECK:STDOUT: !152 = !DILocalVariable(arg: 2, scope: !150, type: !8) +// CHECK:STDOUT: !157 = !DILocation(line: 36, column: 44, scope: !150) +// CHECK:STDOUT: !159 = !DILocation(line: 36, column: 37, scope: !150) +// CHECK:STDOUT: !160 = !{!151, !152} +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "div_u16", linkageName: "_Cdiv_u16.Main", scope: null, file: !4, line: 37, type: !21, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !171) +// CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !9) +// CHECK:STDOUT: !163 = !DILocalVariable(arg: 2, scope: !161, type: !9) +// CHECK:STDOUT: !168 = !DILocation(line: 37, column: 44, scope: !161) +// CHECK:STDOUT: !170 = !DILocation(line: 37, column: 37, scope: !161) +// CHECK:STDOUT: !171 = !{!162, !163} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/assignment.carbon b/toolchain/lower/testdata/operators/assignment.carbon index 2d7cddb609f1..ee89c5b04ffe 100644 --- a/toolchain/lower/testdata/operators/assignment.carbon +++ b/toolchain/lower/testdata/operators/assignment.carbon @@ -29,47 +29,47 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: @tuple.102.loc21_5 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !8 -// CHECK:STDOUT: store i32 12, ptr %a.var, align 4, !dbg !8 -// CHECK:STDOUT: store i32 9, ptr %a.var, align 4, !dbg !9 -// CHECK:STDOUT: %.loc16 = load i32, ptr %a.var, align 4, !dbg !10 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc16, !dbg !11 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !33 +// CHECK:STDOUT: store i32 12, ptr %a.var, align 4, !dbg !33 +// CHECK:STDOUT: store i32 9, ptr %a.var, align 4, !dbg !35 +// CHECK:STDOUT: %.loc16 = load i32, ptr %a.var, align 4, !dbg !36 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !33 +// CHECK:STDOUT: ret i32 %.loc16, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !18 { +// CHECK:STDOUT: define void @_CG.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %b.var = alloca { i32, i32 }, align 4, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !22 -// CHECK:STDOUT: %tuple.elem0.loc21.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: %tuple.elem1.loc21.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !23 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.102.loc21_5, i64 8, i1 false), !dbg !24 -// CHECK:STDOUT: %tuple.elem0.loc22_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !25 -// CHECK:STDOUT: %.loc22_10.1 = load i32, ptr %tuple.elem0.loc22_10.1.tuple.elem, align 4, !dbg !25 -// CHECK:STDOUT: %tuple.elem0.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !25 -// CHECK:STDOUT: store i32 %.loc22_10.1, ptr %tuple.elem0.loc22_10.2.tuple.elem, align 4, !dbg !25 -// CHECK:STDOUT: %tuple.elem1.loc22_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !25 -// CHECK:STDOUT: %.loc22_10.3 = load i32, ptr %tuple.elem1.loc22_10.1.tuple.elem, align 4, !dbg !25 -// CHECK:STDOUT: %tuple.elem1.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !25 -// CHECK:STDOUT: store i32 %.loc22_10.3, ptr %tuple.elem1.loc22_10.2.tuple.elem, align 4, !dbg !25 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %b.var), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: %b.var = alloca { i32, i32 }, align 4, !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !45 +// CHECK:STDOUT: %tuple.elem0.loc21.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !48 +// CHECK:STDOUT: %tuple.elem1.loc21.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !48 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.102.loc21_5, i64 8, i1 false), !dbg !47 +// CHECK:STDOUT: %tuple.elem0.loc22_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !49 +// CHECK:STDOUT: %.loc22_10.1 = load i32, ptr %tuple.elem0.loc22_10.1.tuple.elem, align 4, !dbg !49 +// CHECK:STDOUT: %tuple.elem0.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !49 +// CHECK:STDOUT: store i32 %.loc22_10.1, ptr %tuple.elem0.loc22_10.2.tuple.elem, align 4, !dbg !49 +// CHECK:STDOUT: %tuple.elem1.loc22_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !49 +// CHECK:STDOUT: %.loc22_10.3 = load i32, ptr %tuple.elem1.loc22_10.1.tuple.elem, align 4, !dbg !49 +// CHECK:STDOUT: %tuple.elem1.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !49 +// CHECK:STDOUT: store i32 %.loc22_10.3, ptr %tuple.elem1.loc22_10.2.tuple.elem, align 4, !dbg !49 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %b.var), !dbg !45 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -84,40 +84,40 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "assignment.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !7} -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 14, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 19, type: !19, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 3, scope: !18) -// CHECK:STDOUT: !23 = !DILocation(line: 21, column: 7, scope: !18) -// CHECK:STDOUT: !24 = !DILocation(line: 21, column: 3, scope: !18) -// CHECK:STDOUT: !25 = !DILocation(line: 22, column: 10, scope: !18) -// CHECK:STDOUT: !26 = !DILocation(line: 22, column: 3, scope: !18) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 20, type: !28, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) -// CHECK:STDOUT: !29 = !{null, !21} -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !27, type: !21) -// CHECK:STDOUT: !32 = !DILocation(line: 20, column: 3, scope: !27) +// CHECK:STDOUT: !18 = !DIFile(filename: "assignment.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{!25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !25} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 3, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 10, scope: !30) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !40 = !DILocation(line: 14, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 19, type: !27, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !45 = !DILocation(line: 20, column: 3, scope: !42) +// CHECK:STDOUT: !47 = !DILocation(line: 21, column: 3, scope: !42) +// CHECK:STDOUT: !48 = !DILocation(line: 21, column: 7, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 22, column: 10, scope: !42) +// CHECK:STDOUT: !50 = !DILocation(line: 22, column: 3, scope: !42) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !54) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !25) +// CHECK:STDOUT: !53 = !DILocation(line: 20, column: 3, scope: !51) +// CHECK:STDOUT: !54 = !{!52} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/increment.carbon b/toolchain/lower/testdata/operators/increment.carbon index fa23c431210f..d30b9c152038 100644 --- a/toolchain/lower/testdata/operators/increment.carbon +++ b/toolchain/lower/testdata/operators/increment.carbon @@ -24,98 +24,98 @@ fn IncrSigned() { // CHECK:STDOUT: source_filename = "increment.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIncrSigned.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CIncrSigned.Main() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %from.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %from.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %from.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %from.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %from.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %from.var = alloca i32, align 4, !dbg !12 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %from.var), !dbg !12 +// CHECK:STDOUT: store i32 0, ptr %from.var, align 4, !dbg !12 +// CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %from.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %from.var), !dbg !12 +// CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !17 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 1), !dbg !25 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !23 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !29 -// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !30 -// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !30 -// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !30 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895"(ptr %self, i32 %other) #2 !dbg !30 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %other), !dbg !33 +// CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !34 +// CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !34 +// CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !34 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !31 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !36 -// CHECK:STDOUT: ret i32 %1, !dbg !37 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !38 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !43 +// CHECK:STDOUT: ret i32 %1, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !38 { -// CHECK:STDOUT: ret i32 %self, !dbg !41 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !47 { +// CHECK:STDOUT: ret i32 %self, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "increment.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "IncrSigned", linkageName: "_CIncrSigned.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 5, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 5, column: 3, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !18, line: 396, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !18 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) -// CHECK:STDOUT: !21 = !DILocation(line: 398, column: 5, scope: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 396, column: 3, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !18, line: 331, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{null, !13, !13} -// CHECK:STDOUT: !26 = !{!27, !28} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !23, type: !13) -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !23, type: !13) -// CHECK:STDOUT: !29 = !DILocation(line: 0, scope: !23) -// CHECK:STDOUT: !30 = !DILocation(line: 331, column: 3, scope: !23) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !18, line: 64, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !32 = !DISubroutineType(types: !33) -// CHECK:STDOUT: !33 = !{!13, !13} -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !31, type: !13) -// CHECK:STDOUT: !36 = !DILocation(line: 66, column: 17, scope: !31) -// CHECK:STDOUT: !37 = !DILocation(line: 66, column: 5, scope: !31) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !18, line: 59, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !13) -// CHECK:STDOUT: !41 = !DILocation(line: 59, column: 28, scope: !38) +// CHECK:STDOUT: !4 = !DIFile(filename: "increment.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{null, !6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "IncrSigned", linkageName: "_CIncrSigned.Main", scope: null, file: !4, line: 4, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 3, scope: !11) +// CHECK:STDOUT: !15 = !DILocation(line: 6, column: 3, scope: !11) +// CHECK:STDOUT: !16 = !DILocation(line: 4, column: 1, scope: !11) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !20) +// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !17, type: !6) +// CHECK:STDOUT: !19 = !DILocation(line: 5, column: 3, scope: !17) +// CHECK:STDOUT: !20 = !{!18} +// CHECK:STDOUT: !21 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8", scope: null, file: !21, line: 396, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !22, type: !6) +// CHECK:STDOUT: !25 = !DILocation(line: 398, column: 5, scope: !22) +// CHECK:STDOUT: !26 = !{null, !6, !6} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 396, column: 3, scope: !22) +// CHECK:STDOUT: !29 = !{!23} +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.39e2e78a3c2e036d.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.83481f1872d67895", scope: null, file: !21, line: 331, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !6) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 2, scope: !30, type: !6) +// CHECK:STDOUT: !33 = !DILocation(line: 0, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 331, column: 3, scope: !30) +// CHECK:STDOUT: !35 = !{!6, !6} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !{!31, !32} +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !21, line: 64, type: !36, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !6) +// CHECK:STDOUT: !43 = !DILocation(line: 66, column: 17, scope: !38) +// CHECK:STDOUT: !45 = !DILocation(line: 66, column: 5, scope: !38) +// CHECK:STDOUT: !46 = !{!39} +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !21, line: 59, type: !36, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !54) +// CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !47, type: !6) +// CHECK:STDOUT: !53 = !DILocation(line: 59, column: 28, scope: !47) +// CHECK:STDOUT: !54 = !{!48} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/not.carbon b/toolchain/lower/testdata/operators/not.carbon index 556e90fbaa92..c316363e7c2a 100644 --- a/toolchain/lower/testdata/operators/not.carbon +++ b/toolchain/lower/testdata/operators/not.carbon @@ -19,27 +19,27 @@ fn Not(b: bool) -> bool { // CHECK:STDOUT: source_filename = "not.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CNot.Main(i1 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CNot.Main(i1 %b) #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14 = xor i1 %b, true, !dbg !10 -// CHECK:STDOUT: ret i1 %.loc14, !dbg !11 +// CHECK:STDOUT: %.loc14 = xor i1 %b, true, !dbg !27 +// CHECK:STDOUT: ret i1 %.loc14, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "not.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Not", linkageName: "_CNot.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "not.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18, !18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Not", linkageName: "_CNot.Main", scope: null, file: !16, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !29) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !18) +// CHECK:STDOUT: !27 = !DILocation(line: 14, column: 10, scope: !21) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !21) +// CHECK:STDOUT: !29 = !{!22} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/or.carbon b/toolchain/lower/testdata/operators/or.carbon index 39caf4a0e52f..7feea194b1a0 100644 --- a/toolchain/lower/testdata/operators/or.carbon +++ b/toolchain/lower/testdata/operators/or.carbon @@ -22,51 +22,51 @@ fn Or() -> bool { // CHECK:STDOUT: source_filename = "or.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CF.Main() #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i1 true, !dbg !8 +// CHECK:STDOUT: ret i1 true, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CG.Main() #0 !dbg !9 { +// CHECK:STDOUT: define i1 @_CG.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i1 true, !dbg !10 +// CHECK:STDOUT: ret i1 true, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_COr.Main() #0 !dbg !11 { +// CHECK:STDOUT: define i1 @_COr.Main() #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !12 -// CHECK:STDOUT: %.loc17_14.3 = xor i1 %F.call, true, !dbg !12 -// CHECK:STDOUT: br i1 %.loc17_14.3, label %or.rhs, label %or.result, !dbg !12 +// CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !32 +// CHECK:STDOUT: %.loc17_14.3 = xor i1 %F.call, true, !dbg !32 +// CHECK:STDOUT: br i1 %.loc17_14.3, label %or.rhs, label %or.result, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: or.rhs: ; preds = %entry -// CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !13 -// CHECK:STDOUT: br label %or.result, !dbg !12 +// CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !33 +// CHECK:STDOUT: br label %or.result, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: or.result: ; preds = %or.rhs, %entry // CHECK:STDOUT: %0 = phi i1 [ true, %entry ], [ %G.call, %or.rhs ] -// CHECK:STDOUT: ret i1 %0, !dbg !14 +// CHECK:STDOUT: ret i1 %0, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "or.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 18, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 18, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Or", linkageName: "_COr.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 10, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 17, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !11) +// CHECK:STDOUT: !16 = !DIFile(filename: "or.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !16, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 18, scope: !21) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !16, line: 14, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 18, scope: !25) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Or", linkageName: "_COr.Main", scope: null, file: !16, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !32 = !DILocation(line: 17, column: 10, scope: !29) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 17, scope: !29) +// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !29) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/or_empty_block.carbon b/toolchain/lower/testdata/operators/or_empty_block.carbon index d7cd54159ec5..7cfb59d6b1ac 100644 --- a/toolchain/lower/testdata/operators/or_empty_block.carbon +++ b/toolchain/lower/testdata/operators/or_empty_block.carbon @@ -21,35 +21,35 @@ fn Or(b: bool, c: bool) -> bool { // CHECK:STDOUT: source_filename = "or_empty_block.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_COr.Main(i1 %b, i1 %c) #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_COr.Main(i1 %b, i1 %c) #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc16_12.1 = xor i1 %b, true, !dbg !11 -// CHECK:STDOUT: br i1 %.loc16_12.1, label %or.rhs, label %or.result, !dbg !11 +// CHECK:STDOUT: %.loc16_12.1 = xor i1 %b, true, !dbg !28 +// CHECK:STDOUT: br i1 %.loc16_12.1, label %or.rhs, label %or.result, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: or.rhs: ; preds = %entry -// CHECK:STDOUT: br label %or.result, !dbg !11 +// CHECK:STDOUT: br label %or.result, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: or.result: ; preds = %or.rhs, %entry // CHECK:STDOUT: %0 = phi i1 [ true, %entry ], [ %c, %or.rhs ] -// CHECK:STDOUT: ret i1 %0, !dbg !12 +// CHECK:STDOUT: ret i1 %0, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "or_empty_block.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Or", linkageName: "_COr.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "or_empty_block.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18, !18, !18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Or", linkageName: "_COr.Main", scope: null, file: !16, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !31) +// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !21, type: !18) +// CHECK:STDOUT: !23 = !DILocalVariable(arg: 2, scope: !21, type: !18) +// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 10, scope: !21) +// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 3, scope: !21) +// CHECK:STDOUT: !31 = !{!22, !23} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/overloaded.carbon b/toolchain/lower/testdata/operators/overloaded.carbon index 1d1eeb3473cb..739ecc8300c3 100644 --- a/toolchain/lower/testdata/operators/overloaded.carbon +++ b/toolchain/lower/testdata/operators/overloaded.carbon @@ -35,84 +35,84 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: source_filename = "overloaded.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.Number.Main:Negate.Core"(ptr sret({ i1 }) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_COp.Number.Main:Negate.Core"(ptr sret({ i1 }) %return, ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc19_36.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc19_36.2 = load i8, ptr %.loc19_36.1.is_positive, align 1, !dbg !10 -// CHECK:STDOUT: %.loc19_36.21 = trunc i8 %.loc19_36.2 to i1, !dbg !10 -// CHECK:STDOUT: %.loc19_28 = xor i1 %.loc19_36.21, true, !dbg !11 -// CHECK:STDOUT: %.loc19_48.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc19_48.3 = zext i1 %.loc19_28 to i8, !dbg !12 -// CHECK:STDOUT: store i8 %.loc19_48.3, ptr %.loc19_48.2.is_positive, align 1, !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %.loc19_36.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !18 +// CHECK:STDOUT: %.loc19_36.2 = load i8, ptr %.loc19_36.1.is_positive, align 1, !dbg !18 +// CHECK:STDOUT: %.loc19_36.21 = trunc i8 %.loc19_36.2 to i1, !dbg !18 +// CHECK:STDOUT: %.loc19_28 = xor i1 %.loc19_36.21, true, !dbg !19 +// CHECK:STDOUT: %.loc19_48.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !20 +// CHECK:STDOUT: %.loc19_48.3 = zext i1 %.loc19_28 to i8, !dbg !20 +// CHECK:STDOUT: store i8 %.loc19_48.3, ptr %.loc19_48.2.is_positive, align 1, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr sret({ i1 }) %return, ptr %self, ptr %other) #0 !dbg !14 { +// CHECK:STDOUT: define void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr sret({ i1 }) %return, ptr %self, ptr %other) #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc24_33.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !20 -// CHECK:STDOUT: %.loc24_33.2 = load i8, ptr %.loc24_33.1.is_positive, align 1, !dbg !20 -// CHECK:STDOUT: %.loc24_33.21 = trunc i8 %.loc24_33.2 to i1, !dbg !20 -// CHECK:STDOUT: br i1 %.loc24_33.21, label %and.rhs.loc24, label %and.result.loc24, !dbg !20 +// CHECK:STDOUT: %.loc24_33.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !30 +// CHECK:STDOUT: %.loc24_33.2 = load i8, ptr %.loc24_33.1.is_positive, align 1, !dbg !30 +// CHECK:STDOUT: %.loc24_33.21 = trunc i8 %.loc24_33.2 to i1, !dbg !30 +// CHECK:STDOUT: br i1 %.loc24_33.21, label %and.rhs.loc24, label %and.result.loc24, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: and.rhs.loc24: ; preds = %entry -// CHECK:STDOUT: %.loc24_55.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !21 -// CHECK:STDOUT: %.loc24_55.2 = load i8, ptr %.loc24_55.1.is_positive, align 1, !dbg !21 -// CHECK:STDOUT: %.loc24_55.22 = trunc i8 %.loc24_55.2 to i1, !dbg !21 -// CHECK:STDOUT: br label %and.result.loc24, !dbg !20 +// CHECK:STDOUT: %.loc24_55.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !31 +// CHECK:STDOUT: %.loc24_55.2 = load i8, ptr %.loc24_55.1.is_positive, align 1, !dbg !31 +// CHECK:STDOUT: %.loc24_55.22 = trunc i8 %.loc24_55.2 to i1, !dbg !31 +// CHECK:STDOUT: br label %and.result.loc24, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: and.result.loc24: ; preds = %and.rhs.loc24, %entry // CHECK:STDOUT: %0 = phi i1 [ false, %entry ], [ %.loc24_55.22, %and.rhs.loc24 ] -// CHECK:STDOUT: %.loc24_69.1 = xor i1 %0, true, !dbg !22 -// CHECK:STDOUT: br i1 %.loc24_69.1, label %or.rhs, label %or.result, !dbg !22 +// CHECK:STDOUT: %.loc24_69.1 = xor i1 %0, true, !dbg !32 +// CHECK:STDOUT: br i1 %.loc24_69.1, label %or.rhs, label %or.result, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: or.rhs: ; preds = %and.result.loc24 -// CHECK:STDOUT: %.loc25_38.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: %.loc25_38.2 = load i8, ptr %.loc25_38.1.is_positive, align 1, !dbg !23 -// CHECK:STDOUT: %.loc25_38.23 = trunc i8 %.loc25_38.2 to i1, !dbg !23 -// CHECK:STDOUT: %.loc25_30 = xor i1 %.loc25_38.23, true, !dbg !24 -// CHECK:STDOUT: br i1 %.loc25_30, label %and.rhs.loc25, label %and.result.loc25, !dbg !24 +// CHECK:STDOUT: %.loc25_38.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %.loc25_38.2 = load i8, ptr %.loc25_38.1.is_positive, align 1, !dbg !33 +// CHECK:STDOUT: %.loc25_38.23 = trunc i8 %.loc25_38.2 to i1, !dbg !33 +// CHECK:STDOUT: %.loc25_30 = xor i1 %.loc25_38.23, true, !dbg !34 +// CHECK:STDOUT: br i1 %.loc25_30, label %and.rhs.loc25, label %and.result.loc25, !dbg !34 // CHECK:STDOUT: // CHECK:STDOUT: and.rhs.loc25: ; preds = %or.rhs -// CHECK:STDOUT: %.loc25_64.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !25 -// CHECK:STDOUT: %.loc25_64.2 = load i8, ptr %.loc25_64.1.is_positive, align 1, !dbg !25 -// CHECK:STDOUT: %.loc25_64.24 = trunc i8 %.loc25_64.2 to i1, !dbg !25 -// CHECK:STDOUT: %.loc25_55 = xor i1 %.loc25_64.24, true, !dbg !26 -// CHECK:STDOUT: br label %and.result.loc25, !dbg !24 +// CHECK:STDOUT: %.loc25_64.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %.loc25_64.2 = load i8, ptr %.loc25_64.1.is_positive, align 1, !dbg !35 +// CHECK:STDOUT: %.loc25_64.24 = trunc i8 %.loc25_64.2 to i1, !dbg !35 +// CHECK:STDOUT: %.loc25_55 = xor i1 %.loc25_64.24, true, !dbg !36 +// CHECK:STDOUT: br label %and.result.loc25, !dbg !34 // CHECK:STDOUT: // CHECK:STDOUT: and.result.loc25: ; preds = %and.rhs.loc25, %or.rhs // CHECK:STDOUT: %1 = phi i1 [ false, %or.rhs ], [ %.loc25_55, %and.rhs.loc25 ] -// CHECK:STDOUT: br label %or.result, !dbg !22 +// CHECK:STDOUT: br label %or.result, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: or.result: ; preds = %and.result.loc25, %and.result.loc24 // CHECK:STDOUT: %2 = phi i1 [ true, %and.result.loc24 ], [ %1, %and.result.loc25 ] -// CHECK:STDOUT: %.loc25_77.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !27 -// CHECK:STDOUT: %.loc25_77.3 = zext i1 %2 to i8, !dbg !27 -// CHECK:STDOUT: store i8 %.loc25_77.3, ptr %.loc25_77.2.is_positive, align 1, !dbg !27 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: %.loc25_77.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !37 +// CHECK:STDOUT: %.loc25_77.3 = zext i1 %2 to i8, !dbg !37 +// CHECK:STDOUT: store i8 %.loc25_77.3, ptr %.loc25_77.2.is_positive, align 1, !dbg !37 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCalculate.Main(ptr sret({ i1 }) %return, ptr %a, ptr %b) #0 !dbg !29 { +// CHECK:STDOUT: define void @_CCalculate.Main(ptr sret({ i1 }) %return, ptr %a, ptr %b) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc30_10.1.temp = alloca { i1 }, align 1, !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc30_10.1.temp), !dbg !33 -// CHECK:STDOUT: call void @"_COp.Number.Main:Negate.Core"(ptr %.loc30_10.1.temp, ptr %a), !dbg !33 -// CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr %return, ptr %.loc30_10.1.temp, ptr %b), !dbg !33 -// CHECK:STDOUT: call void @"_COp.e9b64e5ce9c1b06d:core.Destroy.Core"(ptr %.loc30_10.1.temp), !dbg !33 -// CHECK:STDOUT: ret void, !dbg !34 +// CHECK:STDOUT: %.loc30_10.1.temp = alloca { i1 }, align 1, !dbg !48 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc30_10.1.temp), !dbg !48 +// CHECK:STDOUT: call void @"_COp.Number.Main:Negate.Core"(ptr %.loc30_10.1.temp, ptr %a), !dbg !48 +// CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr %return, ptr %.loc30_10.1.temp, ptr %b), !dbg !48 +// CHECK:STDOUT: call void @"_COp.e9b64e5ce9c1b06d:core.Destroy.Core"(ptr %.loc30_10.1.temp), !dbg !48 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c93d65ba26581f30:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.c93d65ba26581f30:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e9b64e5ce9c1b06d:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.e9b64e5ce9c1b06d:core.Destroy.Core"(ptr %self) #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -121,52 +121,52 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "overloaded.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:Negate.Core", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 32, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 28, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 19, column: 12, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 19, column: 5, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:MulWith.124acaad20680602.Core", scope: null, file: !1, line: 23, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{!7, !7, !7} -// CHECK:STDOUT: !17 = !{!18, !19} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !14, type: !7) -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 2, scope: !14, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 24, column: 29, scope: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 24, column: 50, scope: !14) -// CHECK:STDOUT: !22 = !DILocation(line: 24, column: 28, scope: !14) -// CHECK:STDOUT: !23 = !DILocation(line: 25, column: 34, scope: !14) -// CHECK:STDOUT: !24 = !DILocation(line: 25, column: 30, scope: !14) -// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 59, scope: !14) -// CHECK:STDOUT: !26 = !DILocation(line: 25, column: 55, scope: !14) -// CHECK:STDOUT: !27 = !DILocation(line: 24, column: 12, scope: !14) -// CHECK:STDOUT: !28 = !DILocation(line: 24, column: 5, scope: !14) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Calculate", linkageName: "_CCalculate.Main", scope: null, file: !1, line: 29, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !30) -// CHECK:STDOUT: !30 = !{!31, !32} -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !7) -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 2, scope: !29, type: !7) -// CHECK:STDOUT: !33 = !DILocation(line: 30, column: 10, scope: !29) -// CHECK:STDOUT: !34 = !DILocation(line: 30, column: 3, scope: !29) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c93d65ba26581f30:core.Destroy.Core", scope: null, file: !1, line: 30, type: !36, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !36 = !DISubroutineType(types: !37) -// CHECK:STDOUT: !37 = !{null, !7} -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !35, type: !7) -// CHECK:STDOUT: !40 = !DILocation(line: 30, column: 10, scope: !35) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e9b64e5ce9c1b06d:core.Destroy.Core", scope: null, file: !1, line: 30, type: !36, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 30, column: 10, scope: !41) +// CHECK:STDOUT: !4 = !DIFile(filename: "overloaded.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !7 = !{!6, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !{!6, !6, !6} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = !{null, !6} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:Negate.Core", scope: null, file: !4, line: 18, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !13, type: !6) +// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 32, scope: !13) +// CHECK:STDOUT: !19 = !DILocation(line: 19, column: 28, scope: !13) +// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 12, scope: !13) +// CHECK:STDOUT: !21 = !DILocation(line: 19, column: 5, scope: !13) +// CHECK:STDOUT: !22 = !{!14} +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:MulWith.124acaad20680602.Core", scope: null, file: !4, line: 23, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !39) +// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !23, type: !6) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !23, type: !6) +// CHECK:STDOUT: !30 = !DILocation(line: 24, column: 29, scope: !23) +// CHECK:STDOUT: !31 = !DILocation(line: 24, column: 50, scope: !23) +// CHECK:STDOUT: !32 = !DILocation(line: 24, column: 28, scope: !23) +// CHECK:STDOUT: !33 = !DILocation(line: 25, column: 34, scope: !23) +// CHECK:STDOUT: !34 = !DILocation(line: 25, column: 30, scope: !23) +// CHECK:STDOUT: !35 = !DILocation(line: 25, column: 59, scope: !23) +// CHECK:STDOUT: !36 = !DILocation(line: 25, column: 55, scope: !23) +// CHECK:STDOUT: !37 = !DILocation(line: 24, column: 12, scope: !23) +// CHECK:STDOUT: !38 = !DILocation(line: 24, column: 5, scope: !23) +// CHECK:STDOUT: !39 = !{!24, !25} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Calculate", linkageName: "_CCalculate.Main", scope: null, file: !4, line: 29, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !6) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 2, scope: !40, type: !6) +// CHECK:STDOUT: !48 = !DILocation(line: 30, column: 10, scope: !40) +// CHECK:STDOUT: !50 = !DILocation(line: 30, column: 3, scope: !40) +// CHECK:STDOUT: !51 = !{!41, !42} +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c93d65ba26581f30:core.Destroy.Core", scope: null, file: !4, line: 30, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !52, type: !6) +// CHECK:STDOUT: !54 = !DILocation(line: 30, column: 10, scope: !52) +// CHECK:STDOUT: !55 = !{!53} +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e9b64e5ce9c1b06d:core.Destroy.Core", scope: null, file: !4, line: 30, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !59) +// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !56, type: !6) +// CHECK:STDOUT: !58 = !DILocation(line: 30, column: 10, scope: !56) +// CHECK:STDOUT: !59 = !{!57} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/operators/string_indexing.carbon b/toolchain/lower/testdata/operators/string_indexing.carbon index 5195904333bf..74b67e99aee7 100644 --- a/toolchain/lower/testdata/operators/string_indexing.carbon +++ b/toolchain/lower/testdata/operators/string_indexing.carbon @@ -28,41 +28,41 @@ fn F2(index: i64) -> char { // CHECK:STDOUT: @String.val.String.val = internal constant { ptr, i64 } { ptr @0, i64 4 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i8 @_CF.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i8 84, !dbg !8 +// CHECK:STDOUT: ret i8 84, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @_CF2.Main(i64 %index) #0 !dbg !9 { +// CHECK:STDOUT: define i8 @_CF2.Main(i64 %index) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.load = load { ptr, i64 }, ptr @String.val.String.val, align 8, !dbg !15 -// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.ptr = extractvalue { ptr, i64 } %str.as.IndexWith.impl.At.call.string.load, 0, !dbg !15 -// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.char_ptr = getelementptr inbounds i8, ptr %str.as.IndexWith.impl.At.call.string.ptr, i64 %index, !dbg !15 -// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.char = load i8, ptr %str.as.IndexWith.impl.At.call.string.char_ptr, align 1, !dbg !15 -// CHECK:STDOUT: ret i8 %str.as.IndexWith.impl.At.call.string.char, !dbg !16 +// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.load = load { ptr, i64 }, ptr @String.val.String.val, align 8, !dbg !25 +// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.ptr = extractvalue { ptr, i64 } %str.as.IndexWith.impl.At.call.string.load, 0, !dbg !25 +// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.char_ptr = getelementptr inbounds i8, ptr %str.as.IndexWith.impl.At.call.string.ptr, i64 %index, !dbg !25 +// CHECK:STDOUT: %str.as.IndexWith.impl.At.call.string.char = load i8, ptr %str.as.IndexWith.impl.At.call.string.char_ptr, align 1, !dbg !25 +// CHECK:STDOUT: ret i8 %str.as.IndexWith.impl.At.call.string.char, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "string_indexing.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !8 = !DILocation(line: 15, column: 5, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F2", linkageName: "_CF2.Main", scope: null, file: !1, line: 18, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{!7, !12} -// CHECK:STDOUT: !12 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !9, type: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 19, column: 19, scope: !9) -// CHECK:STDOUT: !16 = !DILocation(line: 20, column: 5, scope: !9) +// CHECK:STDOUT: !4 = !DIFile(filename: "string_indexing.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !{!6} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{!6, !7} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !4, line: 13, type: !9, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 5, scope: !12) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "F2", linkageName: "_CF2.Main", scope: null, file: !4, line: 18, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !7) +// CHECK:STDOUT: !25 = !DILocation(line: 19, column: 19, scope: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 20, column: 5, scope: !19) +// CHECK:STDOUT: !30 = !{!20} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/cross_package_call.carbon b/toolchain/lower/testdata/packages/cross_package_call.carbon index 90e0927e3735..c56a06a8968f 100644 --- a/toolchain/lower/testdata/packages/cross_package_call.carbon +++ b/toolchain/lower/testdata/packages/cross_package_call.carbon @@ -46,98 +46,98 @@ fn CallCAsI() { // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.NS.A() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.NS.A() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CG.NS.A(i32 %x) #0 !dbg !8 { +// CHECK:STDOUT: define i32 @_CG.NS.A(i32 %x) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 %x, !dbg !14 +// CHECK:STDOUT: ret i32 %x, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.A:I.A"() #0 !dbg !15 { +// CHECK:STDOUT: define void @"_CF.C.A:I.A"() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.NS.A", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "G", linkageName: "_CG.NS.A", scope: null, file: !1, line: 7, type: !9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !9 = !DISubroutineType(types: !10) -// CHECK:STDOUT: !10 = !{!11, !11} -// CHECK:STDOUT: !11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !8, type: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 26, scope: !8) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.A:I.A", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DILocation(line: 16, column: 3, scope: !15) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{!20, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.NS.A", scope: null, file: !18, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 5, column: 1, scope: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "G", linkageName: "_CG.NS.A", scope: null, file: !18, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !34) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !27, type: !20) +// CHECK:STDOUT: !33 = !DILocation(line: 7, column: 26, scope: !27) +// CHECK:STDOUT: !34 = !{!28} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.A:I.A", scope: null, file: !18, line: 16, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !35) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.NS.A(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CF.NS.A(), !dbg !42 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.NS.A() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CG.Main() #0 !dbg !9 { +// CHECK:STDOUT: define i32 @_CG.Main() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.NS.A(i32 1), !dbg !13 -// CHECK:STDOUT: ret i32 %G.call, !dbg !14 +// CHECK:STDOUT: %G.call = call i32 @_CG.NS.A(i32 1), !dbg !47 +// CHECK:STDOUT: ret i32 %G.call, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @_CG.NS.A(i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCAsI.Main() #0 !dbg !15 { +// CHECK:STDOUT: define void @_CCallCAsI.Main() #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.C.A:I.A"(), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @"_CF.C.A:I.A"(), !dbg !50 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF.C.A:I.A"() // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!38} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 4, column: 10, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 6, type: !10, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{!12} -// CHECK:STDOUT: !12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !13 = !DILocation(line: 6, column: 24, scope: !9) -// CHECK:STDOUT: !14 = !DILocation(line: 6, column: 17, scope: !9) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "CallCAsI", linkageName: "_CCallCAsI.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 3, scope: !15) -// CHECK:STDOUT: !17 = !DILocation(line: 8, column: 1, scope: !15) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !37 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !38 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !37, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !39 = !{!20} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !37, line: 4, type: !22, spFlags: DISPFlagDefinition, unit: !38) +// CHECK:STDOUT: !42 = !DILocation(line: 4, column: 10, scope: !41) +// CHECK:STDOUT: !43 = !DILocation(line: 4, column: 1, scope: !41) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !37, line: 6, type: !40, spFlags: DISPFlagDefinition, unit: !38) +// CHECK:STDOUT: !47 = !DILocation(line: 6, column: 24, scope: !44) +// CHECK:STDOUT: !48 = !DILocation(line: 6, column: 17, scope: !44) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "CallCAsI", linkageName: "_CCallCAsI.Main", scope: null, file: !37, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !38) +// CHECK:STDOUT: !50 = !DILocation(line: 9, column: 3, scope: !49) +// CHECK:STDOUT: !51 = !DILocation(line: 8, column: 1, scope: !49) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/imported_package_mangle.carbon b/toolchain/lower/testdata/packages/imported_package_mangle.carbon index 64cab31869a3..182f819db7a2 100644 --- a/toolchain/lower/testdata/packages/imported_package_mangle.carbon +++ b/toolchain/lower/testdata/packages/imported_package_mangle.carbon @@ -94,158 +94,158 @@ fn G() { // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.f327915d949d024f:I.A"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.f327915d949d024f:I.A"() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.f327915d949d024f:I.A", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "F", linkageName: "_CF.f327915d949d024f:I.A", scope: null, file: !18, line: 10, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !23 = !DILocation(line: 10, column: 3, scope: !22) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.B() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.B() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.A"(), !dbg !7 -// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"(), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.A"(), !dbg !27 +// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"(), !dbg !28 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF.f327915d949d024f:I.A"() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"() #0 !dbg !10 { -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"() #0 !dbg !30 { +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!25} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.B", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c", scope: null, file: !11, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 3, scope: !10) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !24 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !25 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !24, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.B", scope: null, file: !24, line: 4, type: !21, spFlags: DISPFlagDefinition, unit: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 7, column: 3, scope: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 10, column: 3, scope: !26) +// CHECK:STDOUT: !29 = !DILocation(line: 4, column: 1, scope: !26) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c", scope: null, file: !18, line: 14, type: !21, spFlags: DISPFlagDefinition, unit: !25) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !30) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'c.carbon' // CHECK:STDOUT: source_filename = "c.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.f6938aeb3cf77e6f:I.C"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.f6938aeb3cf77e6f:I.C"() #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.f6938aeb3cf77e6f:I.A"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.f6938aeb3cf77e6f:I.A"() #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.f327915d949d024f:I.C"() #0 !dbg !10 { +// CHECK:STDOUT: define void @"_CF.f327915d949d024f:I.C"() #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.C() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CG.C() #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.A"(), !dbg !13 -// CHECK:STDOUT: call void @"_CF.f6938aeb3cf77e6f:I.A"(), !dbg !14 -// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.C"(), !dbg !15 -// CHECK:STDOUT: call void @"_CF.f6938aeb3cf77e6f:I.C"(), !dbg !16 -// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"(), !dbg !17 -// CHECK:STDOUT: call void @"_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c"(), !dbg !18 -// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c"(), !dbg !19 -// CHECK:STDOUT: call void @"_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c"(), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.A"(), !dbg !41 +// CHECK:STDOUT: call void @"_CF.f6938aeb3cf77e6f:I.A"(), !dbg !42 +// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.C"(), !dbg !43 +// CHECK:STDOUT: call void @"_CF.f6938aeb3cf77e6f:I.C"(), !dbg !44 +// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"(), !dbg !45 +// CHECK:STDOUT: call void @"_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c"(), !dbg !46 +// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c"(), !dbg !47 +// CHECK:STDOUT: call void @"_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c"(), !dbg !48 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF.f327915d949d024f:I.A"() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"() #0 !dbg !22 { -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"() #0 !dbg !50 { +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c"() #0 !dbg !25 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c"() #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c"() #0 !dbg !27 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c"() #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c"() #0 !dbg !29 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c"() #0 !dbg !56 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "c.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.f6938aeb3cf77e6f:I.C", scope: null, file: !1, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.f6938aeb3cf77e6f:I.A", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 20, column: 3, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.f327915d949d024f:I.C", scope: null, file: !1, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 28, column: 3, scope: !10) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "G", linkageName: "_CG.C", scope: null, file: !1, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DILocation(line: 37, column: 3, scope: !12) -// CHECK:STDOUT: !14 = !DILocation(line: 38, column: 3, scope: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 39, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 40, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 43, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 44, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 45, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 46, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 35, column: 1, scope: !12) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c", scope: null, file: !23, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !23 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !24 = !DILocation(line: 14, column: 3, scope: !22) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c", scope: null, file: !1, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !26 = !DILocation(line: 24, column: 3, scope: !25) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c", scope: null, file: !1, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !28 = !DILocation(line: 32, column: 3, scope: !27) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "F", linkageName: "_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 3, scope: !29) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !32 = !DIFile(filename: "c.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.f6938aeb3cf77e6f:I.C", scope: null, file: !32, line: 12, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 12, column: 3, scope: !34) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "F", linkageName: "_CF.f6938aeb3cf77e6f:I.A", scope: null, file: !32, line: 20, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 3, scope: !36) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "F", linkageName: "_CF.f327915d949d024f:I.C", scope: null, file: !32, line: 28, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !39 = !DILocation(line: 28, column: 3, scope: !38) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "G", linkageName: "_CG.C", scope: null, file: !32, line: 35, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !41 = !DILocation(line: 37, column: 3, scope: !40) +// CHECK:STDOUT: !42 = !DILocation(line: 38, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !DILocation(line: 39, column: 3, scope: !40) +// CHECK:STDOUT: !44 = !DILocation(line: 40, column: 3, scope: !40) +// CHECK:STDOUT: !45 = !DILocation(line: 43, column: 3, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 44, column: 3, scope: !40) +// CHECK:STDOUT: !47 = !DILocation(line: 45, column: 3, scope: !40) +// CHECK:STDOUT: !48 = !DILocation(line: 46, column: 3, scope: !40) +// CHECK:STDOUT: !49 = !DILocation(line: 35, column: 1, scope: !40) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c", scope: null, file: !18, line: 14, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !51 = !DILocation(line: 14, column: 3, scope: !50) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "F", linkageName: "_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c", scope: null, file: !32, line: 24, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !53 = !DILocation(line: 24, column: 3, scope: !52) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c", scope: null, file: !32, line: 32, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !55 = !DILocation(line: 32, column: 3, scope: !54) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "F", linkageName: "_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c", scope: null, file: !32, line: 16, type: !21, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !57 = !DILocation(line: 16, column: 3, scope: !56) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon b/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon index 363a256cb4cf..aa556615a6f6 100644 --- a/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon +++ b/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon @@ -46,43 +46,43 @@ fn G() { // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 17, column: 3, scope: !8) +// CHECK:STDOUT: !18 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A", scope: null, file: !18, line: 10, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !23 = !DILocation(line: 10, column: 3, scope: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A", scope: null, file: !18, line: 17, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 3, scope: !24) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.B() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.B() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"(), !dbg !7 -// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"(), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"(), !dbg !29 +// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"(), !dbg !30 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"() @@ -91,17 +91,17 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!27} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.B", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !26 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !27 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !26, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "G", linkageName: "_CG.B", scope: null, file: !26, line: 4, type: !21, spFlags: DISPFlagDefinition, unit: !27) +// CHECK:STDOUT: !29 = !DILocation(line: 5, column: 3, scope: !28) +// CHECK:STDOUT: !30 = !DILocation(line: 6, column: 3, scope: !28) +// CHECK:STDOUT: !31 = !DILocation(line: 4, column: 1, scope: !28) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/imported_type_completeness.carbon b/toolchain/lower/testdata/packages/imported_type_completeness.carbon index de81d6c6a783..123103403bd3 100644 --- a/toolchain/lower/testdata/packages/imported_type_completeness.carbon +++ b/toolchain/lower/testdata/packages/imported_type_completeness.carbon @@ -96,13 +96,13 @@ fn CallF() { // CHECK:STDOUT: ; ModuleID = 'require_completion_in_call.carbon' // CHECK:STDOUT: source_filename = "require_completion_in_call.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "require_completion_in_call.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !18 = !DIFile(filename: "require_completion_in_call.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_without_completion_in_call.carbon' @@ -111,42 +111,42 @@ fn CallF() { // CHECK:STDOUT: @C.val.eeb = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CI.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CI.Main() #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.e43630e9a6c38c3f(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CG.Main.e43630e9a6c38c3f(), !dbg !30 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr %self) #0 !dbg !9 { +// CHECK:STDOUT: define weak_odr void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.e43630e9a6c38c3f() #0 !dbg !17 { -// CHECK:STDOUT: %temp = alloca {}, align 1, !dbg !18 -// CHECK:STDOUT: %temp1 = alloca {}, align 1, !dbg !19 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !18 -// CHECK:STDOUT: %1 = call i123 @_CF.C.Main.e43630e9a6c38c3f(), !dbg !20 -// CHECK:STDOUT: call void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr @C.val.eeb), !dbg !18 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !19 -// CHECK:STDOUT: %2 = call i456 @_CG.C.Main.e43630e9a6c38c3f(), !dbg !21 -// CHECK:STDOUT: call void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr @C.val.eeb), !dbg !19 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.e43630e9a6c38c3f() #0 !dbg !36 { +// CHECK:STDOUT: %temp = alloca {}, align 1, !dbg !38 +// CHECK:STDOUT: %temp1 = alloca {}, align 1, !dbg !42 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !38 +// CHECK:STDOUT: %1 = call i123 @_CF.C.Main.e43630e9a6c38c3f(), !dbg !39 +// CHECK:STDOUT: call void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr @C.val.eeb), !dbg !38 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !42 +// CHECK:STDOUT: %2 = call i456 @_CG.C.Main.e43630e9a6c38c3f(), !dbg !44 +// CHECK:STDOUT: call void @"_COp.fed6abc73c8aca6f:core.Destroy.Core"(ptr @C.val.eeb), !dbg !42 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i123 @_CF.C.Main.e43630e9a6c38c3f() #0 !dbg !23 { -// CHECK:STDOUT: ret i123 123, !dbg !27 +// CHECK:STDOUT: define linkonce_odr i123 @_CF.C.Main.e43630e9a6c38c3f() #0 !dbg !48 { +// CHECK:STDOUT: ret i123 123, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i456 @_CG.C.Main.e43630e9a6c38c3f() #0 !dbg !28 { -// CHECK:STDOUT: ret i456 456, !dbg !32 +// CHECK:STDOUT: define linkonce_odr i456 @_CG.C.Main.e43630e9a6c38c3f() #0 !dbg !52 { +// CHECK:STDOUT: ret i456 456, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -155,54 +155,54 @@ fn CallF() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_without_completion_in_call.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "I", linkageName: "_CI.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fed6abc73c8aca6f:core.Destroy.Core", scope: null, file: !10, line: 19, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !10 = !DIFile(filename: "require_completion_in_call.carbon", directory: "") -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !9, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 4, scope: !9) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e43630e9a6c38c3f", scope: null, file: !10, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 4, scope: !17) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 4, scope: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 3, scope: !17) -// CHECK:STDOUT: !21 = !DILocation(line: 22, column: 3, scope: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 16, column: 1, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.e43630e9a6c38c3f", scope: null, file: !10, line: 6, type: !24, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DIBasicType(name: "int", size: 123, encoding: DW_ATE_signed) -// CHECK:STDOUT: !27 = !DILocation(line: 7, column: 5, scope: !23) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "G", linkageName: "_CG.C.Main.e43630e9a6c38c3f", scope: null, file: !10, line: 11, type: !29, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !29 = !DISubroutineType(types: !30) -// CHECK:STDOUT: !30 = !{!31} -// CHECK:STDOUT: !31 = !DIBasicType(name: "int", size: 456, encoding: DW_ATE_signed) -// CHECK:STDOUT: !32 = !DILocation(line: 12, column: 5, scope: !28) +// CHECK:STDOUT: !18 = !DIFile(filename: "require_completion_in_call.carbon", directory: "") +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 123, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 456, encoding: DW_ATE_signed) +// CHECK:STDOUT: !22 = !DIFile(filename: "use_without_completion_in_call.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !27 = !{null, !26} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "I", linkageName: "_CI.Main", scope: null, file: !22, line: 6, type: !25, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 9, column: 3, scope: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 6, column: 1, scope: !29) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fed6abc73c8aca6f:core.Destroy.Core", scope: null, file: !18, line: 19, type: !28, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !26) +// CHECK:STDOUT: !34 = !DILocation(line: 19, column: 4, scope: !32) +// CHECK:STDOUT: !35 = !{!33} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e43630e9a6c38c3f", scope: null, file: !18, line: 16, type: !25, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 4, scope: !36) +// CHECK:STDOUT: !39 = !DILocation(line: 19, column: 3, scope: !36) +// CHECK:STDOUT: !40 = !{!20} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = !DILocation(line: 22, column: 4, scope: !36) +// CHECK:STDOUT: !44 = !DILocation(line: 22, column: 3, scope: !36) +// CHECK:STDOUT: !45 = !{!21} +// CHECK:STDOUT: !46 = !DISubroutineType(types: !45) +// CHECK:STDOUT: !47 = !DILocation(line: 16, column: 1, scope: !36) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.e43630e9a6c38c3f", scope: null, file: !18, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !51 = !DILocation(line: 7, column: 5, scope: !48) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "G", linkageName: "_CG.C.Main.e43630e9a6c38c3f", scope: null, file: !18, line: 11, type: !46, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !56 = !DILocation(line: 12, column: 5, scope: !52) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'require_completion_in_vtable.carbon' // CHECK:STDOUT: source_filename = "require_completion_in_vtable.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!58} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "require_completion_in_vtable.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !57 = !DIFile(filename: "require_completion_in_vtable.carbon", directory: "") +// CHECK:STDOUT: !58 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !57, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_without_completion_in_vtable.carbon' @@ -214,10 +214,10 @@ fn CallF() { // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 @_Cv.Main, ptr align 8 @C.val.loc9_1, i64 8, i1 false), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 @_Cv.Main, ptr align 8 @C.val.loc9_1, i64 8, i1 false), !dbg !64 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -226,45 +226,45 @@ fn CallF() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!62} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_without_completion_in_vtable.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !61 = !DIFile(filename: "use_without_completion_in_vtable.carbon", directory: "") +// CHECK:STDOUT: !62 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !61, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !61, type: !25, spFlags: DISPFlagDefinition, unit: !62) +// CHECK:STDOUT: !64 = !DILocation(line: 9, column: 1, scope: !63) +// CHECK:STDOUT: !65 = !DILocation(line: 0, scope: !63) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'require_completion_in_virtual_call.carbon' // CHECK:STDOUT: source_filename = "require_completion_in_virtual_call.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!67} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "require_completion_in_virtual_call.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !27 = !{null, !26} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !66 = !DIFile(filename: "require_completion_in_virtual_call.carbon", directory: "") +// CHECK:STDOUT: !67 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !66, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !71) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !26) +// CHECK:STDOUT: !70 = !DILocation(line: 7, column: 3, scope: !68) +// CHECK:STDOUT: !71 = !{!69} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_without_completion_in_virtual_call.carbon' @@ -276,66 +276,66 @@ fn CallF() { // CHECK:STDOUT: @C.val.9ff.anon = internal constant { ptr } { ptr @"_CC.Main.$vtable.9522ff908e97e267" } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !74 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_9.2.temp = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_9.2.temp), !dbg !7 -// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr @C.val.d1d.loc9_11.3), !dbg !8 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val.d1d), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %.loc9_9.2.temp = alloca {}, align 1, !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_9.2.temp), !dbg !75 +// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr @C.val.d1d.loc9_11.3), !dbg !76 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val.d1d), !dbg !75 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ea19ac2d92d0842:core.Destroy.Core"(ptr %self) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.565c6ab0bb3d654c:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.565c6ab0bb3d654c:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.9522ff908e97e267(ptr %t) #0 !dbg !26 { -// CHECK:STDOUT: %1 = alloca { ptr }, align 8, !dbg !29 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !29 -// CHECK:STDOUT: %vptr = getelementptr inbounds nuw { ptr }, ptr %1, i32 0, i32 0, !dbg !30 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1, ptr align 8 @C.val.9ff.anon, i64 8, i1 false), !dbg !29 -// CHECK:STDOUT: %vtable = load ptr, ptr %1, align 8, !dbg !31 -// CHECK:STDOUT: %2 = call ptr @llvm.load.relative.i32(ptr %vtable, i32 0), !dbg !31 -// CHECK:STDOUT: %3 = call i11 %2(ptr %1), !dbg !31 -// CHECK:STDOUT: %vtable1 = load ptr, ptr %1, align 8, !dbg !32 -// CHECK:STDOUT: %4 = call ptr @llvm.load.relative.i32(ptr %vtable1, i32 4), !dbg !32 -// CHECK:STDOUT: %5 = call i12 %4(ptr %1, ptr %t), !dbg !32 -// CHECK:STDOUT: call void @"_COp.565c6ab0bb3d654c:core.Destroy.Core"(ptr %1), !dbg !29 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.9522ff908e97e267(ptr %t) #0 !dbg !90 { +// CHECK:STDOUT: %1 = alloca { ptr }, align 8, !dbg !93 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !93 +// CHECK:STDOUT: %vptr = getelementptr inbounds nuw { ptr }, ptr %1, i32 0, i32 0, !dbg !94 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1, ptr align 8 @C.val.9ff.anon, i64 8, i1 false), !dbg !93 +// CHECK:STDOUT: %vtable = load ptr, ptr %1, align 8, !dbg !96 +// CHECK:STDOUT: %2 = call ptr @llvm.load.relative.i32(ptr %vtable, i32 0), !dbg !96 +// CHECK:STDOUT: %3 = call i11 %2(ptr %1), !dbg !96 +// CHECK:STDOUT: %vtable1 = load ptr, ptr %1, align 8, !dbg !99 +// CHECK:STDOUT: %4 = call ptr @llvm.load.relative.i32(ptr %vtable1, i32 4), !dbg !99 +// CHECK:STDOUT: %5 = call i12 %4(ptr %1, ptr %t), !dbg !99 +// CHECK:STDOUT: call void @"_COp.565c6ab0bb3d654c:core.Destroy.Core"(ptr %1), !dbg !93 +// CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i11 @_CF.C.Main.9522ff908e97e267(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: ret i11 11, !dbg !41 +// CHECK:STDOUT: define linkonce_odr i11 @_CF.C.Main.9522ff908e97e267(ptr %self) #0 !dbg !105 { +// CHECK:STDOUT: ret i11 11, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: read) // CHECK:STDOUT: declare ptr @llvm.load.relative.i32(ptr, i32) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i12 @_CG.C.Main.9522ff908e97e267(ptr %self, ptr %t) #0 !dbg !42 { -// CHECK:STDOUT: ret i12 12, !dbg !49 +// CHECK:STDOUT: define linkonce_odr i12 @_CG.C.Main.9522ff908e97e267(ptr %self, ptr %t) #0 !dbg !112 { +// CHECK:STDOUT: ret i12 12, !dbg !119 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -345,57 +345,57 @@ fn CallF() { // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!73} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_without_completion_in_virtual_call.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 8, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 8, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 9, column: 8, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !18, line: 7, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !18 = !DIFile(filename: "require_completion_in_virtual_call.carbon", directory: "") -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) -// CHECK:STDOUT: !21 = !DILocation(line: 7, column: 3, scope: !17) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.565c6ab0bb3d654c:core.Destroy.Core", scope: null, file: !18, line: 7, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !13) -// CHECK:STDOUT: !25 = !DILocation(line: 7, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9522ff908e97e267", scope: null, file: !18, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !13) -// CHECK:STDOUT: !29 = !DILocation(line: 7, column: 3, scope: !26) -// CHECK:STDOUT: !30 = !DILocation(line: 7, column: 17, scope: !26) -// CHECK:STDOUT: !31 = !DILocation(line: 8, column: 3, scope: !26) -// CHECK:STDOUT: !32 = !DILocation(line: 9, column: 3, scope: !26) -// CHECK:STDOUT: !33 = !DILocation(line: 6, column: 1, scope: !26) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.9522ff908e97e267", scope: null, file: !35, line: 6, type: !36, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !35 = !DIFile(filename: "require_completion_in_vtable.carbon", directory: "") -// CHECK:STDOUT: !36 = !DISubroutineType(types: !37) -// CHECK:STDOUT: !37 = !{!38, !13} -// CHECK:STDOUT: !38 = !DIBasicType(name: "int", size: 11, encoding: DW_ATE_signed) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !34, type: !13) -// CHECK:STDOUT: !41 = !DILocation(line: 6, column: 47, scope: !34) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "G", linkageName: "_CG.C.Main.9522ff908e97e267", scope: null, file: !35, line: 7, type: !43, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !43 = !DISubroutineType(types: !44) -// CHECK:STDOUT: !44 = !{!45, !13, !13} -// CHECK:STDOUT: !45 = !DIBasicType(name: "int", size: 12, encoding: DW_ATE_signed) -// CHECK:STDOUT: !46 = !{!47, !48} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !42, type: !13) -// CHECK:STDOUT: !48 = !DILocalVariable(arg: 2, scope: !42, type: !13) -// CHECK:STDOUT: !49 = !DILocation(line: 7, column: 60, scope: !42) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !27 = !{null, !26} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !57 = !DIFile(filename: "require_completion_in_vtable.carbon", directory: "") +// CHECK:STDOUT: !59 = !DIBasicType(name: "int", size: 11, encoding: DW_ATE_signed) +// CHECK:STDOUT: !60 = !DIBasicType(name: "int", size: 12, encoding: DW_ATE_signed) +// CHECK:STDOUT: !66 = !DIFile(filename: "require_completion_in_virtual_call.carbon", directory: "") +// CHECK:STDOUT: !72 = !DIFile(filename: "use_without_completion_in_virtual_call.carbon", directory: "") +// CHECK:STDOUT: !73 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !72, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !72, line: 8, type: !25, spFlags: DISPFlagDefinition, unit: !73) +// CHECK:STDOUT: !75 = !DILocation(line: 9, column: 8, scope: !74) +// CHECK:STDOUT: !76 = !DILocation(line: 9, column: 3, scope: !74) +// CHECK:STDOUT: !77 = !DILocation(line: 8, column: 1, scope: !74) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !72, line: 9, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !81) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !26) +// CHECK:STDOUT: !80 = !DILocation(line: 9, column: 8, scope: !78) +// CHECK:STDOUT: !81 = !{!79} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ea19ac2d92d0842:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !85) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !26) +// CHECK:STDOUT: !84 = !DILocation(line: 7, column: 3, scope: !82) +// CHECK:STDOUT: !85 = !{!83} +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.565c6ab0bb3d654c:core.Destroy.Core", scope: null, file: !66, line: 7, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !89) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !26) +// CHECK:STDOUT: !88 = !DILocation(line: 7, column: 3, scope: !86) +// CHECK:STDOUT: !89 = !{!87} +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9522ff908e97e267", scope: null, file: !66, line: 6, type: !28, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !104) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !90, type: !26) +// CHECK:STDOUT: !93 = !DILocation(line: 7, column: 3, scope: !90) +// CHECK:STDOUT: !94 = !DILocation(line: 7, column: 17, scope: !90) +// CHECK:STDOUT: !96 = !DILocation(line: 8, column: 3, scope: !90) +// CHECK:STDOUT: !97 = !{!59, !26} +// CHECK:STDOUT: !98 = !DISubroutineType(types: !97) +// CHECK:STDOUT: !99 = !DILocation(line: 9, column: 3, scope: !90) +// CHECK:STDOUT: !101 = !{!60, !26, !26} +// CHECK:STDOUT: !102 = !DISubroutineType(types: !101) +// CHECK:STDOUT: !103 = !DILocation(line: 6, column: 1, scope: !90) +// CHECK:STDOUT: !104 = !{!91} +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.9522ff908e97e267", scope: null, file: !57, line: 6, type: !98, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !111) +// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !105, type: !26) +// CHECK:STDOUT: !110 = !DILocation(line: 6, column: 47, scope: !105) +// CHECK:STDOUT: !111 = !{!106} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "G", linkageName: "_CG.C.Main.9522ff908e97e267", scope: null, file: !57, line: 7, type: !102, spFlags: DISPFlagDefinition, unit: !73, retainedNodes: !120) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !26) +// CHECK:STDOUT: !114 = !DILocalVariable(arg: 2, scope: !112, type: !26) +// CHECK:STDOUT: !119 = !DILocation(line: 7, column: 60, scope: !112) +// CHECK:STDOUT: !120 = !{!113, !114} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/private_external_mangle.carbon b/toolchain/lower/testdata/packages/private_external_mangle.carbon index 38ca0d915f9d..11d5f6f5036b 100644 --- a/toolchain/lower/testdata/packages/private_external_mangle.carbon +++ b/toolchain/lower/testdata/packages/private_external_mangle.carbon @@ -72,36 +72,36 @@ fn F() { // CHECK:STDOUT: declare void @_CA.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main.c14f6fa2d8939391() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCall.Main.c14f6fa2d8939391() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CA.Main(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CA.Main(), !dbg !23 +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.C.Main.df01d416cc5a0873() #0 !dbg !9 { +// CHECK:STDOUT: define void @_CCall.C.Main.df01d416cc5a0873() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CA.Main(), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CA.Main(), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "private_call_a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.c14f6fa2d8939391", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.df01d416cc5a0873", scope: null, file: !1, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 5, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 11, column: 3, scope: !9) +// CHECK:STDOUT: !18 = !DIFile(filename: "private_call_a.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.c14f6fa2d8939391", scope: null, file: !18, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !23 = !DILocation(line: 7, column: 3, scope: !22) +// CHECK:STDOUT: !24 = !DILocation(line: 6, column: 1, scope: !22) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.df01d416cc5a0873", scope: null, file: !18, line: 11, type: !21, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 12, column: 5, scope: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 11, column: 3, scope: !25) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'private_call_b.carbon' @@ -110,61 +110,61 @@ fn F() { // CHECK:STDOUT: declare void @_CB.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main.d20b101f33acb508() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCall.Main.d20b101f33acb508() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CB.Main(), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.C.Main.df01d416cc5a0873() #0 !dbg !9 { +// CHECK:STDOUT: define void @_CCall.C.Main.df01d416cc5a0873() #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main(), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CB.Main(), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!29} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "private_call_b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.d20b101f33acb508", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.df01d416cc5a0873", scope: null, file: !1, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 5, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 11, column: 3, scope: !9) +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !28 = !DIFile(filename: "private_call_b.carbon", directory: "") +// CHECK:STDOUT: !29 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !28, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.d20b101f33acb508", scope: null, file: !28, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 7, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 6, column: 1, scope: !30) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.df01d416cc5a0873", scope: null, file: !28, line: 11, type: !21, spFlags: DISPFlagDefinition, unit: !29) +// CHECK:STDOUT: !34 = !DILocation(line: 12, column: 5, scope: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 11, column: 3, scope: !33) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_a_and_b.carbon' // CHECK:STDOUT: source_filename = "use_a_and_b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallInA.Main.6944efcfbb6a8360(), !dbg !7 -// CHECK:STDOUT: call void @_CCallInB.Main.6944efcfbb6a8360(), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: call void @_CCallInA.Main.6944efcfbb6a8360(), !dbg !39 +// CHECK:STDOUT: call void @_CCallInB.Main.6944efcfbb6a8360(), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallInA.Main.6944efcfbb6a8360() #0 !dbg !10 { -// CHECK:STDOUT: call void @_CCall.Main.c14f6fa2d8939391(), !dbg !12 -// CHECK:STDOUT: call void @_CCall.C.Main.df01d416cc5a0873(), !dbg !13 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: define linkonce_odr void @_CCallInA.Main.6944efcfbb6a8360() #0 !dbg !42 { +// CHECK:STDOUT: call void @_CCall.Main.c14f6fa2d8939391(), !dbg !43 +// CHECK:STDOUT: call void @_CCall.C.Main.df01d416cc5a0873(), !dbg !44 +// CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallInB.Main.6944efcfbb6a8360() #0 !dbg !15 { -// CHECK:STDOUT: call void @_CCall.Main.d20b101f33acb508(), !dbg !17 -// CHECK:STDOUT: call void @_CCall.C.Main.df01d416cc5a0873(), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: define linkonce_odr void @_CCallInB.Main.6944efcfbb6a8360() #0 !dbg !46 { +// CHECK:STDOUT: call void @_CCall.Main.d20b101f33acb508(), !dbg !47 +// CHECK:STDOUT: call void @_CCall.C.Main.df01d416cc5a0873(), !dbg !48 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CA.Main() @@ -182,27 +182,27 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!37} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_a_and_b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 7, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "CallInA", linkageName: "_CCallInA.Main.6944efcfbb6a8360", scope: null, file: !11, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DIFile(filename: "private_call_a.carbon", directory: "") -// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 3, scope: !10) -// CHECK:STDOUT: !13 = !DILocation(line: 18, column: 3, scope: !10) -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 1, scope: !10) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "CallInB", linkageName: "_CCallInB.Main.6944efcfbb6a8360", scope: null, file: !16, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DIFile(filename: "private_call_b.carbon", directory: "") -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 3, scope: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 3, scope: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 1, scope: !15) +// CHECK:STDOUT: !18 = !DIFile(filename: "private_call_a.carbon", directory: "") +// CHECK:STDOUT: !20 = !{null} +// CHECK:STDOUT: !21 = !DISubroutineType(types: !20) +// CHECK:STDOUT: !28 = !DIFile(filename: "private_call_b.carbon", directory: "") +// CHECK:STDOUT: !36 = !DIFile(filename: "use_a_and_b.carbon", directory: "") +// CHECK:STDOUT: !37 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !36, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !36, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !39 = !DILocation(line: 9, column: 3, scope: !38) +// CHECK:STDOUT: !40 = !DILocation(line: 10, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !DILocation(line: 7, column: 1, scope: !38) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "CallInA", linkageName: "_CCallInA.Main.6944efcfbb6a8360", scope: null, file: !18, line: 16, type: !21, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !43 = !DILocation(line: 17, column: 3, scope: !42) +// CHECK:STDOUT: !44 = !DILocation(line: 18, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !DILocation(line: 16, column: 1, scope: !42) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "CallInB", linkageName: "_CCallInB.Main.6944efcfbb6a8360", scope: null, file: !28, line: 16, type: !21, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !47 = !DILocation(line: 17, column: 3, scope: !46) +// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 3, scope: !46) +// CHECK:STDOUT: !49 = !DILocation(line: 16, column: 1, scope: !46) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/separate_compilation_witness.carbon b/toolchain/lower/testdata/packages/separate_compilation_witness.carbon index 21fbb218bb01..93f4bd4b2c28 100644 --- a/toolchain/lower/testdata/packages/separate_compilation_witness.carbon +++ b/toolchain/lower/testdata/packages/separate_compilation_witness.carbon @@ -118,73 +118,73 @@ fn CallGeneric() { // CHECK:STDOUT: source_filename = "owner.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }) %return, ptr %self, ptr %other) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }) %return, ptr %self, ptr %other) #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_22.1.x = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc9_22.2 = load i32, ptr %.loc9_22.1.x, align 4, !dbg !11 -// CHECK:STDOUT: %.loc9_32.1.x = getelementptr inbounds nuw { i32 }, ptr %other, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc9_32.2 = load i32, ptr %.loc9_32.1.x, align 4, !dbg !12 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %.loc9_22.2, %.loc9_32.2, !dbg !11 -// CHECK:STDOUT: %.loc9_34.2.x = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !13 -// CHECK:STDOUT: store i32 %Int.as.AddWith.impl.Op.call, ptr %.loc9_34.2.x, align 4, !dbg !13 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: %.loc9_22.1.x = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !19 +// CHECK:STDOUT: %.loc9_22.2 = load i32, ptr %.loc9_22.1.x, align 4, !dbg !19 +// CHECK:STDOUT: %.loc9_32.1.x = getelementptr inbounds nuw { i32 }, ptr %other, i32 0, i32 0, !dbg !20 +// CHECK:STDOUT: %.loc9_32.2 = load i32, ptr %.loc9_32.1.x, align 4, !dbg !20 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %.loc9_22.2, %.loc9_32.2, !dbg !19 +// CHECK:STDOUT: %.loc9_34.2.x = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !21 +// CHECK:STDOUT: store i32 %Int.as.AddWith.impl.Op.call, ptr %.loc9_34.2.x, align 4, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }) %return, ptr %self, i32 %n) #0 !dbg !15 { +// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }) %return, ptr %self, i32 %n) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc15_22.1.x = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !22 -// CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.x, align 4, !dbg !22 -// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %.loc15_22.2, %n, !dbg !22 -// CHECK:STDOUT: %.loc15_28.2.x = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !23 -// CHECK:STDOUT: store i32 %Int.as.MulWith.impl.Op.call, ptr %.loc15_28.2.x, align 4, !dbg !23 -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: %.loc15_22.1.x = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !31 +// CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.x, align 4, !dbg !31 +// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %.loc15_22.2, %n, !dbg !31 +// CHECK:STDOUT: %.loc15_28.2.x = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: store i32 %Int.as.MulWith.impl.Op.call, ptr %.loc15_28.2.x, align 4, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "owner.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:AddWith.f941828044620367.Core", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} +// CHECK:STDOUT: !4 = !DIFile(filename: "owner.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 18, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 27, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 9, column: 12, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core", scope: null, file: !1, line: 14, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{!7, !7, !18} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20, !21} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !7) -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 2, scope: !15, type: !18) -// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 18, scope: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 15, column: 12, scope: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 5, scope: !15) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !10 = !{!7, !7, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:AddWith.f941828044620367.Core", scope: null, file: !4, line: 8, type: !9, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !23) +// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !12, type: !7) +// CHECK:STDOUT: !14 = !DILocalVariable(arg: 2, scope: !12, type: !7) +// CHECK:STDOUT: !19 = !DILocation(line: 9, column: 18, scope: !12) +// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 27, scope: !12) +// CHECK:STDOUT: !21 = !DILocation(line: 9, column: 12, scope: !12) +// CHECK:STDOUT: !22 = !DILocation(line: 9, column: 5, scope: !12) +// CHECK:STDOUT: !23 = !{!13, !14} +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core", scope: null, file: !4, line: 14, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !7) +// CHECK:STDOUT: !26 = !DILocalVariable(arg: 2, scope: !24, type: !6) +// CHECK:STDOUT: !31 = !DILocation(line: 15, column: 18, scope: !24) +// CHECK:STDOUT: !33 = !DILocation(line: 15, column: 12, scope: !24) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 5, scope: !24) +// CHECK:STDOUT: !35 = !{!25, !26} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'owner.impl.carbon' // CHECK:STDOUT: source_filename = "owner.impl.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDirectInImplFile.OwningPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CDirectInImplFile.OwningPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc5_18.1.temp = alloca { i32 }, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_18.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc5_18.1.temp, ptr %v2, i32 2), !dbg !11 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc5_18.1.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc5_18.1.temp), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %.loc5_18.1.temp = alloca { i32 }, align 4, !dbg !50 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_18.1.temp), !dbg !50 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc5_18.1.temp, ptr %v2, i32 2), !dbg !50 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc5_18.1.temp), !dbg !49 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc5_18.1.temp), !dbg !50 +// CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) @@ -192,21 +192,21 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -215,54 +215,54 @@ fn CallGeneric() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!37} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "owner.impl.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "DirectInImplFile", linkageName: "_CDirectInImplFile.OwningPackage", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 15, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 5, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 5, column: 15, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !7} -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 5, column: 15, scope: !21) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 5, column: 15, scope: !27) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !36 = !DIFile(filename: "owner.impl.carbon", directory: "") +// CHECK:STDOUT: !37 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !36, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "DirectInImplFile", linkageName: "_CDirectInImplFile.OwningPackage", scope: null, file: !36, line: 3, type: !9, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !52) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !7) +// CHECK:STDOUT: !44 = !DILocalVariable(arg: 2, scope: !42, type: !7) +// CHECK:STDOUT: !49 = !DILocation(line: 5, column: 10, scope: !42) +// CHECK:STDOUT: !50 = !DILocation(line: 5, column: 15, scope: !42) +// CHECK:STDOUT: !51 = !DILocation(line: 5, column: 3, scope: !42) +// CHECK:STDOUT: !52 = !{!43, !44} +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !36, line: 5, type: !39, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !56) +// CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !53, type: !6) +// CHECK:STDOUT: !55 = !DILocation(line: 5, column: 15, scope: !53) +// CHECK:STDOUT: !56 = !{!54} +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !36, line: 5, type: !41, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !60) +// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !7) +// CHECK:STDOUT: !59 = !DILocation(line: 5, column: 15, scope: !57) +// CHECK:STDOUT: !60 = !{!58} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !36, line: 5, type: !41, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !64) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !7) +// CHECK:STDOUT: !63 = !DILocation(line: 5, column: 15, scope: !61) +// CHECK:STDOUT: !64 = !{!62} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'direct_same_package.carbon' // CHECK:STDOUT: source_filename = "direct_same_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDirect.OwningPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CDirect.OwningPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !67 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_18.1.temp = alloca { i32 }, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !11 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %.loc7_18.1.temp = alloca { i32 }, align 4, !dbg !75 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !75 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !75 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !74 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !75 +// CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) @@ -270,21 +270,21 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -293,40 +293,40 @@ fn CallGeneric() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!66} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "direct_same_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Direct", linkageName: "_CDirect.OwningPackage", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 15, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 15, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !7} -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 7, column: 15, scope: !21) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 7, column: 15, scope: !27) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !65 = !DIFile(filename: "direct_same_package.carbon", directory: "") +// CHECK:STDOUT: !66 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !65, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Direct", linkageName: "_CDirect.OwningPackage", scope: null, file: !65, line: 5, type: !9, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !77) +// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !67, type: !7) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !67, type: !7) +// CHECK:STDOUT: !74 = !DILocation(line: 7, column: 10, scope: !67) +// CHECK:STDOUT: !75 = !DILocation(line: 7, column: 15, scope: !67) +// CHECK:STDOUT: !76 = !DILocation(line: 7, column: 3, scope: !67) +// CHECK:STDOUT: !77 = !{!68, !69} +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !65, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !81) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !6) +// CHECK:STDOUT: !80 = !DILocation(line: 7, column: 15, scope: !78) +// CHECK:STDOUT: !81 = !{!79} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !65, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !85) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !7) +// CHECK:STDOUT: !84 = !DILocation(line: 7, column: 15, scope: !82) +// CHECK:STDOUT: !85 = !{!83} +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !65, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !66, retainedNodes: !89) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !7) +// CHECK:STDOUT: !88 = !DILocation(line: 7, column: 15, scope: !86) +// CHECK:STDOUT: !89 = !{!87} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_same_package.carbon' @@ -337,106 +337,106 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !94 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !98 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OwningPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!91} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_same_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 15, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 15, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 15, scope: !18) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !90 = !DIFile(filename: "generic_same_package.carbon", directory: "") +// CHECK:STDOUT: !91 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !90, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !90, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !97) +// CHECK:STDOUT: !95 = !DILocalVariable(arg: 1, scope: !94, type: !6) +// CHECK:STDOUT: !96 = !DILocation(line: 6, column: 15, scope: !94) +// CHECK:STDOUT: !97 = !{!95} +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !90, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !101) +// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !98, type: !7) +// CHECK:STDOUT: !100 = !DILocation(line: 6, column: 15, scope: !98) +// CHECK:STDOUT: !101 = !{!99} +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !90, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !105) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !7) +// CHECK:STDOUT: !104 = !DILocation(line: 6, column: 15, scope: !102) +// CHECK:STDOUT: !105 = !{!103} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'indirect_same_package.carbon' // CHECK:STDOUT: source_filename = "indirect_same_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallGeneric.OwningPackage() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCallGeneric.OwningPackage() #0 !dbg !110 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_20.1.temp = alloca { i32 }, align 4, !dbg !7 -// CHECK:STDOUT: %.loc7_28.1.temp = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %.loc7_29.2.temp = alloca { i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_20.1.temp), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !9 -// CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %.loc7_20.1.temp = alloca { i32 }, align 4, !dbg !111 +// CHECK:STDOUT: %.loc7_28.1.temp = alloca { i32 }, align 4, !dbg !112 +// CHECK:STDOUT: %.loc7_29.2.temp = alloca { i32 }, align 4, !dbg !113 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !111 +// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_20.1.temp), !dbg !111 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_28.1.temp), !dbg !112 +// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_28.1.temp), !dbg !112 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !113 +// CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !113 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !113 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !112 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !111 +// CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OwningPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !115 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !119 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !29 { -// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !36 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !36 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !37 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: define linkonce_odr void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !127 { +// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !135 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !135 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !135 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !134 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !135 +// CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) @@ -451,62 +451,62 @@ fn CallGeneric() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!107} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "indirect_same_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.OwningPackage", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 15, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 23, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Generic", linkageName: "_CGeneric.OwningPackage.e43630e9a6c38c3f", scope: null, file: !30, line: 5, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !30 = !DIFile(filename: "generic_same_package.carbon", directory: "") -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!21, !21, !21} -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !21) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !29, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 15, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 10, scope: !29) -// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 3, scope: !29) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !90 = !DIFile(filename: "generic_same_package.carbon", directory: "") +// CHECK:STDOUT: !106 = !DIFile(filename: "indirect_same_package.carbon", directory: "") +// CHECK:STDOUT: !107 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !106, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !108 = !{null} +// CHECK:STDOUT: !109 = !DISubroutineType(types: !108) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.OwningPackage", scope: null, file: !106, line: 5, type: !109, spFlags: DISPFlagDefinition, unit: !107) +// CHECK:STDOUT: !111 = !DILocation(line: 7, column: 15, scope: !110) +// CHECK:STDOUT: !112 = !DILocation(line: 7, column: 23, scope: !110) +// CHECK:STDOUT: !113 = !DILocation(line: 7, column: 3, scope: !110) +// CHECK:STDOUT: !114 = !DILocation(line: 5, column: 1, scope: !110) +// CHECK:STDOUT: !115 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !106, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !118) +// CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !115, type: !6) +// CHECK:STDOUT: !117 = !DILocation(line: 7, column: 3, scope: !115) +// CHECK:STDOUT: !118 = !{!116} +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !106, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !122) +// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !119, type: !7) +// CHECK:STDOUT: !121 = !DILocation(line: 7, column: 3, scope: !119) +// CHECK:STDOUT: !122 = !{!120} +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !106, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !126) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !7) +// CHECK:STDOUT: !125 = !DILocation(line: 7, column: 3, scope: !123) +// CHECK:STDOUT: !126 = !{!124} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Generic", linkageName: "_CGeneric.OwningPackage.e43630e9a6c38c3f", scope: null, file: !90, line: 5, type: !9, spFlags: DISPFlagDefinition, unit: !107, retainedNodes: !137) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !7) +// CHECK:STDOUT: !129 = !DILocalVariable(arg: 2, scope: !127, type: !7) +// CHECK:STDOUT: !134 = !DILocation(line: 6, column: 10, scope: !127) +// CHECK:STDOUT: !135 = !DILocation(line: 6, column: 15, scope: !127) +// CHECK:STDOUT: !136 = !DILocation(line: 6, column: 3, scope: !127) +// CHECK:STDOUT: !137 = !{!128, !129} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'direct_different_package.carbon' // CHECK:STDOUT: source_filename = "direct_different_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CDirect.OtherPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CDirect.OtherPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !140 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_18.1.temp = alloca { i32 }, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !11 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %.loc7_18.1.temp = alloca { i32 }, align 4, !dbg !148 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !148 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !148 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !147 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !148 +// CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) @@ -514,21 +514,21 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !151 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !155 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !157 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !159 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -537,94 +537,94 @@ fn CallGeneric() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!139} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "direct_different_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Direct", linkageName: "_CDirect.OtherPackage", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 15, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 15, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !7} -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 7, column: 15, scope: !21) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 7, column: 15, scope: !27) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !138 = !DIFile(filename: "direct_different_package.carbon", directory: "") +// CHECK:STDOUT: !139 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !138, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !140 = distinct !DISubprogram(name: "Direct", linkageName: "_CDirect.OtherPackage", scope: null, file: !138, line: 5, type: !9, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !150) +// CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !140, type: !7) +// CHECK:STDOUT: !142 = !DILocalVariable(arg: 2, scope: !140, type: !7) +// CHECK:STDOUT: !147 = !DILocation(line: 7, column: 10, scope: !140) +// CHECK:STDOUT: !148 = !DILocation(line: 7, column: 15, scope: !140) +// CHECK:STDOUT: !149 = !DILocation(line: 7, column: 3, scope: !140) +// CHECK:STDOUT: !150 = !{!141, !142} +// CHECK:STDOUT: !151 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !138, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !154) +// CHECK:STDOUT: !152 = !DILocalVariable(arg: 1, scope: !151, type: !6) +// CHECK:STDOUT: !153 = !DILocation(line: 7, column: 15, scope: !151) +// CHECK:STDOUT: !154 = !{!152} +// CHECK:STDOUT: !155 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !138, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !158) +// CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !155, type: !7) +// CHECK:STDOUT: !157 = !DILocation(line: 7, column: 15, scope: !155) +// CHECK:STDOUT: !158 = !{!156} +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !138, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !139, retainedNodes: !162) +// CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !7) +// CHECK:STDOUT: !161 = !DILocation(line: 7, column: 15, scope: !159) +// CHECK:STDOUT: !162 = !{!160} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'indirect_different_package_via_generic_in_same_package.carbon' // CHECK:STDOUT: source_filename = "indirect_different_package_via_generic_in_same_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallGenericInOwningPackage.OtherPackage() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCallGenericInOwningPackage.OtherPackage() #0 !dbg !165 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_48.1.temp = alloca { i32 }, align 4, !dbg !7 -// CHECK:STDOUT: %.loc7_70.1.temp = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %.loc7_71.2.temp = alloca { i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_48.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_48.1.temp), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_70.1.temp), !dbg !8 -// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_70.1.temp), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_71.2.temp), !dbg !9 -// CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_71.2.temp, ptr %.loc7_48.1.temp, ptr %.loc7_70.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_71.2.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_70.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_48.1.temp), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %.loc7_48.1.temp = alloca { i32 }, align 4, !dbg !166 +// CHECK:STDOUT: %.loc7_70.1.temp = alloca { i32 }, align 4, !dbg !167 +// CHECK:STDOUT: %.loc7_71.2.temp = alloca { i32 }, align 4, !dbg !168 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_48.1.temp), !dbg !166 +// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_48.1.temp), !dbg !166 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_70.1.temp), !dbg !167 +// CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_70.1.temp), !dbg !167 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_71.2.temp), !dbg !168 +// CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_71.2.temp, ptr %.loc7_48.1.temp, ptr %.loc7_70.1.temp), !dbg !168 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_71.2.temp), !dbg !168 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_70.1.temp), !dbg !167 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_48.1.temp), !dbg !166 +// CHECK:STDOUT: ret void, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OwningPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !170 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !174 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !176 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !178 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !180 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !29 { -// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !36 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !36 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !37 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: define linkonce_odr void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !182 { +// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !190 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !190 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !190 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !189 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !190 +// CHECK:STDOUT: ret void, !dbg !191 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) @@ -639,48 +639,48 @@ fn CallGeneric() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!164} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "indirect_different_package_via_generic_in_same_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallGenericInOwningPackage", linkageName: "_CCallGenericInOwningPackage.OtherPackage", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 29, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 51, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Generic", linkageName: "_CGeneric.OwningPackage.e43630e9a6c38c3f", scope: null, file: !30, line: 5, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !30 = !DIFile(filename: "generic_same_package.carbon", directory: "") -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!21, !21, !21} -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !21) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !29, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 15, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 10, scope: !29) -// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 3, scope: !29) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !90 = !DIFile(filename: "generic_same_package.carbon", directory: "") +// CHECK:STDOUT: !108 = !{null} +// CHECK:STDOUT: !109 = !DISubroutineType(types: !108) +// CHECK:STDOUT: !163 = !DIFile(filename: "indirect_different_package_via_generic_in_same_package.carbon", directory: "") +// CHECK:STDOUT: !164 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !163, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !165 = distinct !DISubprogram(name: "CallGenericInOwningPackage", linkageName: "_CCallGenericInOwningPackage.OtherPackage", scope: null, file: !163, line: 5, type: !109, spFlags: DISPFlagDefinition, unit: !164) +// CHECK:STDOUT: !166 = !DILocation(line: 7, column: 29, scope: !165) +// CHECK:STDOUT: !167 = !DILocation(line: 7, column: 51, scope: !165) +// CHECK:STDOUT: !168 = !DILocation(line: 7, column: 3, scope: !165) +// CHECK:STDOUT: !169 = !DILocation(line: 5, column: 1, scope: !165) +// CHECK:STDOUT: !170 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !163, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !173) +// CHECK:STDOUT: !171 = !DILocalVariable(arg: 1, scope: !170, type: !6) +// CHECK:STDOUT: !172 = !DILocation(line: 7, column: 3, scope: !170) +// CHECK:STDOUT: !173 = !{!171} +// CHECK:STDOUT: !174 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !163, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !177) +// CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !174, type: !7) +// CHECK:STDOUT: !176 = !DILocation(line: 7, column: 3, scope: !174) +// CHECK:STDOUT: !177 = !{!175} +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !163, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !181) +// CHECK:STDOUT: !179 = !DILocalVariable(arg: 1, scope: !178, type: !7) +// CHECK:STDOUT: !180 = !DILocation(line: 7, column: 3, scope: !178) +// CHECK:STDOUT: !181 = !{!179} +// CHECK:STDOUT: !182 = distinct !DISubprogram(name: "Generic", linkageName: "_CGeneric.OwningPackage.e43630e9a6c38c3f", scope: null, file: !90, line: 5, type: !9, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !192) +// CHECK:STDOUT: !183 = !DILocalVariable(arg: 1, scope: !182, type: !7) +// CHECK:STDOUT: !184 = !DILocalVariable(arg: 2, scope: !182, type: !7) +// CHECK:STDOUT: !189 = !DILocation(line: 6, column: 10, scope: !182) +// CHECK:STDOUT: !190 = !DILocation(line: 6, column: 15, scope: !182) +// CHECK:STDOUT: !191 = !DILocation(line: 6, column: 3, scope: !182) +// CHECK:STDOUT: !192 = !{!183, !184} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'generic_different_package.carbon' @@ -691,106 +691,106 @@ fn CallGeneric() { // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !195 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !197 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !199 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !201 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !203 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !205 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OtherPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!194} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "generic_different_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 15, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 15, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) -// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 15, scope: !18) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !193 = !DIFile(filename: "generic_different_package.carbon", directory: "") +// CHECK:STDOUT: !194 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !193, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !193, line: 6, type: !39, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !198) +// CHECK:STDOUT: !196 = !DILocalVariable(arg: 1, scope: !195, type: !6) +// CHECK:STDOUT: !197 = !DILocation(line: 6, column: 15, scope: !195) +// CHECK:STDOUT: !198 = !{!196} +// CHECK:STDOUT: !199 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !193, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !202) +// CHECK:STDOUT: !200 = !DILocalVariable(arg: 1, scope: !199, type: !7) +// CHECK:STDOUT: !201 = !DILocation(line: 6, column: 15, scope: !199) +// CHECK:STDOUT: !202 = !{!200} +// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !193, line: 6, type: !41, spFlags: DISPFlagDefinition, unit: !194, retainedNodes: !206) +// CHECK:STDOUT: !204 = !DILocalVariable(arg: 1, scope: !203, type: !7) +// CHECK:STDOUT: !205 = !DILocation(line: 6, column: 15, scope: !203) +// CHECK:STDOUT: !206 = !{!204} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'indirect_different_package_via_generic_in_different_package.carbon' // CHECK:STDOUT: source_filename = "indirect_different_package_via_generic_in_different_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallGeneric.OtherPackage() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCallGeneric.OtherPackage() #0 !dbg !209 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_20.1.temp = alloca { i32 }, align 4, !dbg !7 -// CHECK:STDOUT: %.loc7_28.1.temp = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %.loc7_29.2.temp = alloca { i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CMake.OtherPackage(ptr %.loc7_20.1.temp), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @_CMake.OtherPackage(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !9 -// CHECK:STDOUT: call void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %.loc7_20.1.temp = alloca { i32 }, align 4, !dbg !210 +// CHECK:STDOUT: %.loc7_28.1.temp = alloca { i32 }, align 4, !dbg !211 +// CHECK:STDOUT: %.loc7_29.2.temp = alloca { i32 }, align 4, !dbg !212 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !210 +// CHECK:STDOUT: call void @_CMake.OtherPackage(ptr %.loc7_20.1.temp), !dbg !210 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_28.1.temp), !dbg !211 +// CHECK:STDOUT: call void @_CMake.OtherPackage(ptr %.loc7_28.1.temp), !dbg !211 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !212 +// CHECK:STDOUT: call void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !212 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !212 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !211 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !210 +// CHECK:STDOUT: ret void, !dbg !213 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OtherPackage(ptr sret({ i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !214 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !216 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ec4ffd904220f7b:core.Destroy.Core"(ptr %self) #0 !dbg !218 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !220 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %self) #0 !dbg !222 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !224 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !29 { -// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !36 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !36 -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !37 -// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: define linkonce_odr void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !226 { +// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !234 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !234 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !234 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !233 +// CHECK:STDOUT: call void @"_COp.3e88a108c7e00533:core.Destroy.Core"(ptr %temp), !dbg !234 +// CHECK:STDOUT: ret void, !dbg !235 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) @@ -805,46 +805,46 @@ fn CallGeneric() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!208} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "indirect_different_package_via_generic_in_different_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.OtherPackage", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 15, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 23, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !25) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Generic", linkageName: "_CGeneric.OtherPackage.e43630e9a6c38c3f", scope: null, file: !30, line: 5, type: !31, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) -// CHECK:STDOUT: !30 = !DIFile(filename: "generic_different_package.carbon", directory: "") -// CHECK:STDOUT: !31 = !DISubroutineType(types: !32) -// CHECK:STDOUT: !32 = !{!21, !21, !21} -// CHECK:STDOUT: !33 = !{!34, !35} -// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !21) -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !29, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 15, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 10, scope: !29) -// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 3, scope: !29) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !8 = !{!7, !7, !7} +// CHECK:STDOUT: !9 = !DISubroutineType(types: !8) +// CHECK:STDOUT: !38 = !{null, !6} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !7} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !108 = !{null} +// CHECK:STDOUT: !109 = !DISubroutineType(types: !108) +// CHECK:STDOUT: !193 = !DIFile(filename: "generic_different_package.carbon", directory: "") +// CHECK:STDOUT: !207 = !DIFile(filename: "indirect_different_package_via_generic_in_different_package.carbon", directory: "") +// CHECK:STDOUT: !208 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !207, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.OtherPackage", scope: null, file: !207, line: 5, type: !109, spFlags: DISPFlagDefinition, unit: !208) +// CHECK:STDOUT: !210 = !DILocation(line: 7, column: 15, scope: !209) +// CHECK:STDOUT: !211 = !DILocation(line: 7, column: 23, scope: !209) +// CHECK:STDOUT: !212 = !DILocation(line: 7, column: 3, scope: !209) +// CHECK:STDOUT: !213 = !DILocation(line: 5, column: 1, scope: !209) +// CHECK:STDOUT: !214 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !207, line: 7, type: !39, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !217) +// CHECK:STDOUT: !215 = !DILocalVariable(arg: 1, scope: !214, type: !6) +// CHECK:STDOUT: !216 = !DILocation(line: 7, column: 3, scope: !214) +// CHECK:STDOUT: !217 = !{!215} +// CHECK:STDOUT: !218 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ec4ffd904220f7b:core.Destroy.Core", scope: null, file: !207, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !221) +// CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !218, type: !7) +// CHECK:STDOUT: !220 = !DILocation(line: 7, column: 3, scope: !218) +// CHECK:STDOUT: !221 = !{!219} +// CHECK:STDOUT: !222 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e88a108c7e00533:core.Destroy.Core", scope: null, file: !207, line: 7, type: !41, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !225) +// CHECK:STDOUT: !223 = !DILocalVariable(arg: 1, scope: !222, type: !7) +// CHECK:STDOUT: !224 = !DILocation(line: 7, column: 3, scope: !222) +// CHECK:STDOUT: !225 = !{!223} +// CHECK:STDOUT: !226 = distinct !DISubprogram(name: "Generic", linkageName: "_CGeneric.OtherPackage.e43630e9a6c38c3f", scope: null, file: !193, line: 5, type: !9, spFlags: DISPFlagDefinition, unit: !208, retainedNodes: !236) +// CHECK:STDOUT: !227 = !DILocalVariable(arg: 1, scope: !226, type: !7) +// CHECK:STDOUT: !228 = !DILocalVariable(arg: 2, scope: !226, type: !7) +// CHECK:STDOUT: !233 = !DILocation(line: 6, column: 10, scope: !226) +// CHECK:STDOUT: !234 = !DILocation(line: 6, column: 15, scope: !226) +// CHECK:STDOUT: !235 = !DILocation(line: 6, column: 3, scope: !226) +// CHECK:STDOUT: !236 = !{!227, !228} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/pointer/address_of_field.carbon b/toolchain/lower/testdata/pointer/address_of_field.carbon index de82f7c95a53..a5a7fbd3472a 100644 --- a/toolchain/lower/testdata/pointer/address_of_field.carbon +++ b/toolchain/lower/testdata/pointer/address_of_field.carbon @@ -26,29 +26,29 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %s.var = alloca { i32, i32 }, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %s.var), !dbg !7 -// CHECK:STDOUT: %.loc16_46.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc16_46.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %s.var, ptr align 4 @struct.631.loc16_3, i64 8, i1 false), !dbg !7 -// CHECK:STDOUT: %.loc17.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !9 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc17.b), !dbg !10 -// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %s.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %s.var = alloca { i32, i32 }, align 4, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %s.var), !dbg !29 +// CHECK:STDOUT: %.loc16_46.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 0, !dbg !30 +// CHECK:STDOUT: %.loc16_46.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !30 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %s.var, ptr align 4 @struct.631.loc16_3, i64 8, i1 false), !dbg !29 +// CHECK:STDOUT: %.loc17.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc17.b), !dbg !34 +// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %s.var), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -60,33 +60,33 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "address_of_field.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 31, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 17, column: 6, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) +// CHECK:STDOUT: !18 = !DIFile(filename: "address_of_field.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !30 = !DILocation(line: 16, column: 31, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 17, column: 6, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !28) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !39) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !20) +// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !36) +// CHECK:STDOUT: !39 = !{!37} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 16, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !21) +// CHECK:STDOUT: !42 = !DILocation(line: 16, column: 3, scope: !40) +// CHECK:STDOUT: !43 = !{!41} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/pointer/address_of_unused.carbon b/toolchain/lower/testdata/pointer/address_of_unused.carbon index dfc5db950fee..e37d19484146 100644 --- a/toolchain/lower/testdata/pointer/address_of_unused.carbon +++ b/toolchain/lower/testdata/pointer/address_of_unused.carbon @@ -20,19 +20,19 @@ fn F() { // CHECK:STDOUT: source_filename = "address_of_unused.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !7 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !26 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !26 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !26 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !26 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !9 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -41,23 +41,23 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "address_of_unused.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null, !12} -// CHECK:STDOUT: !12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !9, type: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 14, column: 3, scope: !9) +// CHECK:STDOUT: !18 = !DIFile(filename: "address_of_unused.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 13, column: 1, scope: !25) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !34) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !20) +// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !31) +// CHECK:STDOUT: !34 = !{!32} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/pointer/basic.carbon b/toolchain/lower/testdata/pointer/basic.carbon index 886012cf441b..86d6ccb3a2ef 100644 --- a/toolchain/lower/testdata/pointer/basic.carbon +++ b/toolchain/lower/testdata/pointer/basic.carbon @@ -24,27 +24,27 @@ fn F() -> i32 { // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CG.Main(ptr %p) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CG.Main(ptr %p) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_10.2 = load i32, ptr %p, align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc14_10.2, !dbg !12 +// CHECK:STDOUT: %.loc14_10.2 = load i32, ptr %p, align 4, !dbg !34 +// CHECK:STDOUT: ret i32 %.loc14_10.2, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !16 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !16 -// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !16 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main(ptr %n.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !16 -// CHECK:STDOUT: ret i32 %G.call, !dbg !18 +// CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !40 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !40 +// CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !40 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main(ptr %n.var), !dbg !44 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %n.var), !dbg !40 +// CHECK:STDOUT: ret i32 %G.call, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -53,32 +53,32 @@ fn F() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "basic.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 17, type: !14, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!7} -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !13) -// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 10, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 19, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !7} -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 3, scope: !19) +// CHECK:STDOUT: !18 = !DIFile(filename: "basic.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !36) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !21) +// CHECK:STDOUT: !34 = !DILocation(line: 14, column: 10, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !36 = !{!29} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 17, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !40 = !DILocation(line: 18, column: 3, scope: !37) +// CHECK:STDOUT: !44 = !DILocation(line: 19, column: 10, scope: !37) +// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 3, scope: !37) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !49) +// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !46, type: !20) +// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 3, scope: !46) +// CHECK:STDOUT: !49 = !{!47} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/pointer/convert.carbon b/toolchain/lower/testdata/pointer/convert.carbon index c2121e10cec6..fea2e0fffb95 100644 --- a/toolchain/lower/testdata/pointer/convert.carbon +++ b/toolchain/lower/testdata/pointer/convert.carbon @@ -19,25 +19,25 @@ fn UnsafeAs(p: i32*) -> i64* { // CHECK:STDOUT: source_filename = "convert.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CUnsafeAs.Main(ptr %p) #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CUnsafeAs.Main(ptr %p) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr %p, !dbg !10 +// CHECK:STDOUT: ret ptr %p, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "UnsafeAs", linkageName: "_CUnsafeAs.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !4 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !9 = !{!8, !8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "UnsafeAs", linkageName: "_CUnsafeAs.Main", scope: null, file: !4, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !18) +// CHECK:STDOUT: !12 = !DILocalVariable(arg: 1, scope: !11, type: !8) +// CHECK:STDOUT: !17 = !DILocation(line: 14, column: 3, scope: !11) +// CHECK:STDOUT: !18 = !{!12} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/pointer/pointer_to_pointer.carbon b/toolchain/lower/testdata/pointer/pointer_to_pointer.carbon index 7ff0847adb2c..3c699381159d 100644 --- a/toolchain/lower/testdata/pointer/pointer_to_pointer.carbon +++ b/toolchain/lower/testdata/pointer/pointer_to_pointer.carbon @@ -22,22 +22,22 @@ fn F(p: i32**) -> i32 { // CHECK:STDOUT: source_filename = "pointer_to_pointer.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CF.Main(ptr %p) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CF.Main(ptr %p) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !11 -// CHECK:STDOUT: %b.var = alloca ptr, align 8, !dbg !12 -// CHECK:STDOUT: %c.var = alloca ptr, align 8, !dbg !13 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !11 -// CHECK:STDOUT: store ptr %p, ptr %_.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !12 -// CHECK:STDOUT: %.loc15_17.2 = load ptr, ptr %p, align 8, !dbg !14 -// CHECK:STDOUT: store ptr %.loc15_17.2, ptr %b.var, align 8, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !13 -// CHECK:STDOUT: store ptr %b.var, ptr %c.var, align 8, !dbg !13 -// CHECK:STDOUT: %.loc17_12 = load ptr, ptr %c.var, align 8, !dbg !15 -// CHECK:STDOUT: %.loc17_11.2 = load ptr, ptr %.loc17_12, align 8, !dbg !16 -// CHECK:STDOUT: %.loc17_10.2 = load i32, ptr %.loc17_11.2, align 4, !dbg !17 -// CHECK:STDOUT: ret i32 %.loc17_10.2, !dbg !18 +// CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !29 +// CHECK:STDOUT: %b.var = alloca ptr, align 8, !dbg !32 +// CHECK:STDOUT: %c.var = alloca ptr, align 8, !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !29 +// CHECK:STDOUT: store ptr %p, ptr %_.var, align 8, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !32 +// CHECK:STDOUT: %.loc15_17.2 = load ptr, ptr %p, align 8, !dbg !34 +// CHECK:STDOUT: store ptr %.loc15_17.2, ptr %b.var, align 8, !dbg !32 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !36 +// CHECK:STDOUT: store ptr %b.var, ptr %c.var, align 8, !dbg !36 +// CHECK:STDOUT: %.loc17_12 = load ptr, ptr %c.var, align 8, !dbg !40 +// CHECK:STDOUT: %.loc17_11.2 = load ptr, ptr %.loc17_12, align 8, !dbg !41 +// CHECK:STDOUT: %.loc17_10.2 = load i32, ptr %.loc17_11.2, align 4, !dbg !42 +// CHECK:STDOUT: ret i32 %.loc17_10.2, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -49,26 +49,26 @@ fn F(p: i32**) -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pointer_to_pointer.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 15, column: 17, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 17, column: 12, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 11, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 10, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 17, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "pointer_to_pointer.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!20, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !21) +// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 3, scope: !24) +// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 3, scope: !24) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 17, scope: !24) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !24) +// CHECK:STDOUT: !40 = !DILocation(line: 17, column: 12, scope: !24) +// CHECK:STDOUT: !41 = !DILocation(line: 17, column: 11, scope: !24) +// CHECK:STDOUT: !42 = !DILocation(line: 17, column: 10, scope: !24) +// CHECK:STDOUT: !43 = !DILocation(line: 17, column: 3, scope: !24) +// CHECK:STDOUT: !44 = !{!25} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/bool.carbon b/toolchain/lower/testdata/primitives/bool.carbon index f21951073a43..d68044ba82dd 100644 --- a/toolchain/lower/testdata/primitives/bool.carbon +++ b/toolchain/lower/testdata/primitives/bool.carbon @@ -29,50 +29,50 @@ fn LoadStore(p: bool*, b: bool) -> bool { // CHECK:STDOUT: source_filename = "bool.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i1 @_CF.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i1 false, !dbg !8 +// CHECK:STDOUT: ret i1 false, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CT.Main() #0 !dbg !9 { +// CHECK:STDOUT: define i1 @_CT.Main() #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i1 true, !dbg !10 +// CHECK:STDOUT: ret i1 true, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i1 @_CLoadStore.Main(ptr %p, i1 %b) #0 !dbg !11 { +// CHECK:STDOUT: define i1 @_CLoadStore.Main(ptr %p, i1 %b) #0 !dbg !31 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22_17.2 = load i8, ptr %p, align 1, !dbg !17 -// CHECK:STDOUT: %.loc22_17.21 = trunc i8 %.loc22_17.2 to i1, !dbg !17 -// CHECK:STDOUT: %0 = zext i1 %b to i8, !dbg !18 -// CHECK:STDOUT: store i8 %0, ptr %p, align 1, !dbg !18 -// CHECK:STDOUT: ret i1 %.loc22_17.21, !dbg !19 +// CHECK:STDOUT: %.loc22_17.2 = load i8, ptr %p, align 1, !dbg !39 +// CHECK:STDOUT: %.loc22_17.21 = trunc i8 %.loc22_17.2 to i1, !dbg !39 +// CHECK:STDOUT: %0 = zext i1 %b to i8, !dbg !43 +// CHECK:STDOUT: store i8 %0, ptr %p, align 1, !dbg !43 +// CHECK:STDOUT: ret i1 %.loc22_17.21, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "bool.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "T", linkageName: "_CT.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 18, column: 3, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "LoadStore", linkageName: "_CLoadStore.Main", scope: null, file: !1, line: 21, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!7, !7, !7} -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !11, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 22, column: 17, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 23, column: 3, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 24, column: 3, scope: !11) +// CHECK:STDOUT: !16 = !DIFile(filename: "bool.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !19 = !{!18} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !{!18, !18, !18} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !16, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "T", linkageName: "_CT.Main", scope: null, file: !16, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !30 = !DILocation(line: 18, column: 3, scope: !27) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "LoadStore", linkageName: "_CLoadStore.Main", scope: null, file: !16, line: 21, type: !22, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !47) +// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !31, type: !18) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !31, type: !18) +// CHECK:STDOUT: !39 = !DILocation(line: 22, column: 17, scope: !31) +// CHECK:STDOUT: !43 = !DILocation(line: 23, column: 3, scope: !31) +// CHECK:STDOUT: !46 = !DILocation(line: 24, column: 3, scope: !31) +// CHECK:STDOUT: !47 = !{!32, !33} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/char.carbon b/toolchain/lower/testdata/primitives/char.carbon index e74f26b99ddf..25a74700dff1 100644 --- a/toolchain/lower/testdata/primitives/char.carbon +++ b/toolchain/lower/testdata/primitives/char.carbon @@ -109,430 +109,430 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: source_filename = "char.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %self) #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i8 120, !dbg !11 +// CHECK:STDOUT: ret i8 120, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvert.Main(i8 %c, i8 %u) #0 !dbg !12 { +// CHECK:STDOUT: define void @_CConvert.Main(i8 %c, i8 %u) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %c), !dbg !18 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc23 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee"(i8 %c), !dbg !19 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc23), !dbg !20 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc24 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f"(i8 %c), !dbg !21 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc24), !dbg !22 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc26 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666"(i8 %c), !dbg !23 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc26), !dbg !24 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc27 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %c), !dbg !25 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc27), !dbg !26 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %u), !dbg !27 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %c), !dbg !46 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc23 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee"(i8 %c), !dbg !49 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc23), !dbg !52 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc24 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f"(i8 %c), !dbg !55 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc24), !dbg !58 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc26 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666"(i8 %c), !dbg !61 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc26), !dbg !64 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc27 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %c), !dbg !67 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc27), !dbg !70 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %u), !dbg !74 +// CHECK:STDOUT: ret void, !dbg !75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertConstant.Main() #0 !dbg !29 { +// CHECK:STDOUT: define void @_CConvertConstant.Main() #0 !dbg !77 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !32 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc33 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee"(i8 120), !dbg !33 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc33), !dbg !34 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc34 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f"(i8 120), !dbg !35 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc34), !dbg !36 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc35 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666"(i8 120), !dbg !37 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc35), !dbg !38 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc36 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 120), !dbg !39 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc36), !dbg !40 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 123), !dbg !41 -// CHECK:STDOUT: ret void, !dbg !42 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !78 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc33 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee"(i8 120), !dbg !79 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc33), !dbg !80 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc34 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f"(i8 120), !dbg !81 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc34), !dbg !82 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc35 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666"(i8 120), !dbg !83 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc35), !dbg !84 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc36 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 120), !dbg !85 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc36), !dbg !86 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 123), !dbg !87 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCompareCharChar.Main(i8 %a, i8 %b) #0 !dbg !43 { +// CHECK:STDOUT: define void @_CCompareCharChar.Main(i8 %a, i8 %b) #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %a, %b, !dbg !47 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !48 -// CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %a, %b, !dbg !49 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !50 -// CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %a, %b, !dbg !51 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !52 -// CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %a, %b, !dbg !53 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !54 -// CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %a, %b, !dbg !55 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !56 -// CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %a, %b, !dbg !57 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !58 -// CHECK:STDOUT: ret void, !dbg !59 +// CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %a, %b, !dbg !94 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !96 +// CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %a, %b, !dbg !99 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !101 +// CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %a, %b, !dbg !102 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !104 +// CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %a, %b, !dbg !105 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !107 +// CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %a, %b, !dbg !108 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !110 +// CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %a, %b, !dbg !111 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !113 +// CHECK:STDOUT: ret void, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCompareCharCharLike.Main(i8 %a, ptr %b) #0 !dbg !60 { +// CHECK:STDOUT: define void @_CCompareCharCharLike.Main(i8 %a, ptr %b) #0 !dbg !116 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc50 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !66 -// CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc50, !dbg !67 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !68 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc51 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !69 -// CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc51, !dbg !70 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !71 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc52 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !72 -// CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc52, !dbg !73 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !74 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc53 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !75 -// CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc53, !dbg !76 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !77 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc54 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !78 -// CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc54, !dbg !79 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !80 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc55 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !81 -// CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc55, !dbg !82 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !83 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc57 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !84 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call = icmp eq i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc57, %a, !dbg !84 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.Equal.call), !dbg !85 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc58 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !86 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call = icmp ne i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc58, %a, !dbg !86 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.NotEqual.call), !dbg !87 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc59 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !88 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call = icmp ult i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc59, %a, !dbg !88 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Less.call), !dbg !89 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc60 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !90 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc60, %a, !dbg !90 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !91 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc61 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !92 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call = icmp ugt i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc61, %a, !dbg !92 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Greater.call), !dbg !93 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc62 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !94 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc62, %a, !dbg !94 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !95 -// CHECK:STDOUT: ret void, !dbg !96 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc50 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !122 +// CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc50, !dbg !121 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !123 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc51 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !125 +// CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc51, !dbg !124 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !126 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc52 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !128 +// CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc52, !dbg !127 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !129 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc53 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !131 +// CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc53, !dbg !130 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !132 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc54 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !134 +// CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc54, !dbg !133 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !135 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc55 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !137 +// CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc55, !dbg !136 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !138 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc57 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !139 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call = icmp eq i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc57, %a, !dbg !139 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.Equal.call), !dbg !141 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc58 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !142 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call = icmp ne i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc58, %a, !dbg !142 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.NotEqual.call), !dbg !144 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc59 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !145 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call = icmp ult i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc59, %a, !dbg !145 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Less.call), !dbg !147 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc60 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !148 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc60, %a, !dbg !148 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !150 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc61 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !151 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call = icmp ugt i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc61, %a, !dbg !151 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Greater.call), !dbg !153 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc62 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !154 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc62, %a, !dbg !154 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !156 +// CHECK:STDOUT: ret void, !dbg !157 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CSubCharChar.Main(i8 %c, ptr %d) #0 !dbg !97 { +// CHECK:STDOUT: define void @_CSubCharChar.Main(i8 %c, ptr %d) #0 !dbg !159 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc66 = call i32 @"_COp.Char.Core:SubWith.295cf9b677564c5c.Core"(i8 %c, i8 %c), !dbg !101 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call.loc66), !dbg !102 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc67 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %d), !dbg !103 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc67 = call i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.9188b823847778f0"(i8 %c, i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc67), !dbg !104 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call.loc67), !dbg !105 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc68 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %d), !dbg !106 -// CHECK:STDOUT: %T.as_type.as.SubWith.impl.Op.call = call i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.9188b823847778f0"(i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc68, i8 %c), !dbg !106 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %T.as_type.as.SubWith.impl.Op.call), !dbg !107 -// CHECK:STDOUT: ret void, !dbg !108 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc66 = call i32 @"_COp.Char.Core:SubWith.295cf9b677564c5c.Core"(i8 %c, i8 %c), !dbg !164 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call.loc66), !dbg !166 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc67 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %d), !dbg !168 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc67 = call i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.9188b823847778f0"(i8 %c, i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc67), !dbg !167 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call.loc67), !dbg !169 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc68 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %d), !dbg !170 +// CHECK:STDOUT: %T.as_type.as.SubWith.impl.Op.call = call i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.9188b823847778f0"(i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc68, i8 %c), !dbg !170 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %T.as_type.as.SubWith.impl.Op.call), !dbg !172 +// CHECK:STDOUT: ret void, !dbg !173 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @"_COp.Char.Core:SubWith.295cf9b677564c5c.Core"(i8, i8) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubInt8.Main(i8 %c, i8 %i) #0 !dbg !109 { +// CHECK:STDOUT: define void @_CAddSubInt8.Main(i8 %c, i8 %i) #0 !dbg !175 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %c, i8 %i), !dbg !116 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !117 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.be6db155159bf0e6"(i8 %i, i8 %c), !dbg !118 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !119 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %c, i8 %i), !dbg !120 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !121 -// CHECK:STDOUT: ret void, !dbg !122 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubInt16.Main(i8 %c, i16 %i) #0 !dbg !123 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %c, i16 %i), !dbg !130 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !131 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.b2ec6933266ee2f0"(i16 %i, i8 %c), !dbg !132 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !133 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %c, i16 %i), !dbg !134 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !135 -// CHECK:STDOUT: ret void, !dbg !136 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubInt32.Main(i8 %c, i32 %i) #0 !dbg !137 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %c, i32 %i), !dbg !144 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !145 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3c06bceea9ba44a7"(i32 %i, i8 %c), !dbg !146 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !147 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %c, i32 %i), !dbg !148 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !149 -// CHECK:STDOUT: ret void, !dbg !150 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubUInt8.Main(i8 %c, i8 %i) #0 !dbg !151 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %c, i8 %i), !dbg !155 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !156 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.c8c7baf2b5955a72"(i8 %i, i8 %c), !dbg !157 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !158 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %c, i8 %i), !dbg !159 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !160 -// CHECK:STDOUT: ret void, !dbg !161 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubUInt16.Main(i8 %c, i16 %i) #0 !dbg !162 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %c, i16 %i), !dbg !169 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !170 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.61bb220507f77095"(i16 %i, i8 %c), !dbg !171 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !172 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %c, i16 %i), !dbg !173 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !174 -// CHECK:STDOUT: ret void, !dbg !175 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubUInt32.Main(i8 %c, i32 %i) #0 !dbg !176 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %c, i32 %i), !dbg !183 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %c, i8 %i), !dbg !180 // CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !184 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4494a819d074492e"(i32 %i, i8 %c), !dbg !185 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !186 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %c, i32 %i), !dbg !187 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !188 -// CHECK:STDOUT: ret void, !dbg !189 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.be6db155159bf0e6"(i8 %i, i8 %c), !dbg !185 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !189 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %c, i8 %i), !dbg !190 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !192 +// CHECK:STDOUT: ret void, !dbg !193 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.15688e19507865c6(i8 %x) #0 !dbg !190 { +// CHECK:STDOUT: define void @_CAddSubInt16.Main(i8 %c, i16 %i) #0 !dbg !195 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !195 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %c, i16 %i), !dbg !200 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !204 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.b2ec6933266ee2f0"(i16 %i, i8 %c), !dbg !205 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !209 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %c, i16 %i), !dbg !210 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !212 +// CHECK:STDOUT: ret void, !dbg !213 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee"(i8 %self) #0 !dbg !196 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.335e322ca15c76a1"(i8 %self), !dbg !202 -// CHECK:STDOUT: ret i16 %1, !dbg !202 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.147e0bd019a31663(i16 %x) #0 !dbg !203 { +// CHECK:STDOUT: define void @_CAddSubInt32.Main(i8 %c, i32 %i) #0 !dbg !215 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !208 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %c, i32 %i), !dbg !220 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !224 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3c06bceea9ba44a7"(i32 %i, i8 %c), !dbg !225 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !229 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %c, i32 %i), !dbg !230 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !232 +// CHECK:STDOUT: ret void, !dbg !233 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f"(i8 %self) #0 !dbg !209 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %self), !dbg !214 -// CHECK:STDOUT: ret i32 %1, !dbg !214 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.eadca4a969cf6f21(i32 %x) #0 !dbg !215 { +// CHECK:STDOUT: define void @_CAddSubUInt8.Main(i8 %c, i8 %i) #0 !dbg !235 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !220 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %c, i8 %i), !dbg !240 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !244 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.c8c7baf2b5955a72"(i8 %i, i8 %c), !dbg !245 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !247 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %c, i8 %i), !dbg !248 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !250 +// CHECK:STDOUT: ret void, !dbg !251 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666"(i8 %self) #0 !dbg !221 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.90fccc2ec10748e3"(i8 %self), !dbg !226 -// CHECK:STDOUT: ret i16 %1, !dbg !226 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self) #0 !dbg !227 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self), !dbg !232 -// CHECK:STDOUT: ret i32 %1, !dbg !232 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %x) #0 !dbg !233 { +// CHECK:STDOUT: define void @_CAddSubUInt16.Main(i8 %c, i16 %i) #0 !dbg !253 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !238 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %c, i16 %i), !dbg !258 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !262 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.61bb220507f77095"(i16 %i, i8 %c), !dbg !263 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !267 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %c, i16 %i), !dbg !268 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !270 +// CHECK:STDOUT: ret void, !dbg !271 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.9188b823847778f0"(i8 %self, i8 %other) #0 !dbg !239 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !245 -// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !246 -// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !247 -// CHECK:STDOUT: ret i32 %3, !dbg !248 +// CHECK:STDOUT: define void @_CAddSubUInt32.Main(i8 %c, i32 %i) #0 !dbg !273 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %c, i32 %i), !dbg !278 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !282 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4494a819d074492e"(i32 %i, i8 %c), !dbg !283 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !287 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %c, i32 %i), !dbg !288 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !290 +// CHECK:STDOUT: ret void, !dbg !291 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.9188b823847778f0"(i8 %self, i8 %other) #0 !dbg !249 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !253 -// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !254 -// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !255 -// CHECK:STDOUT: ret i32 %3, !dbg !256 +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.15688e19507865c6(i8 %x) #0 !dbg !293 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !296 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %self, i8 %other) #0 !dbg !257 { -// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !263 -// CHECK:STDOUT: ret i8 %1, !dbg !264 +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee"(i8 %self) #0 !dbg !299 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.335e322ca15c76a1"(i8 %self), !dbg !305 +// CHECK:STDOUT: ret i16 %1, !dbg !305 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.be6db155159bf0e6"(i8 %self, i8 %other) #0 !dbg !265 { -// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !271 -// CHECK:STDOUT: ret i8 %1, !dbg !272 +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.147e0bd019a31663(i16 %x) #0 !dbg !307 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !310 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %self, i8 %other) #0 !dbg !273 { -// CHECK:STDOUT: %1 = sub i8 %self, %other, !dbg !277 -// CHECK:STDOUT: ret i8 %1, !dbg !278 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f"(i8 %self) #0 !dbg !312 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %self), !dbg !318 +// CHECK:STDOUT: ret i32 %1, !dbg !318 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %self, i16 %other) #0 !dbg !279 { -// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !285 -// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !286 -// CHECK:STDOUT: ret i8 %2, !dbg !287 +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.eadca4a969cf6f21(i32 %x) #0 !dbg !320 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !323 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.b2ec6933266ee2f0"(i16 %self, i8 %other) #0 !dbg !288 { -// CHECK:STDOUT: %1 = trunc i16 %self to i8, !dbg !294 -// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !295 -// CHECK:STDOUT: ret i8 %2, !dbg !296 +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666"(i8 %self) #0 !dbg !325 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.90fccc2ec10748e3"(i8 %self), !dbg !331 +// CHECK:STDOUT: ret i16 %1, !dbg !331 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %self, i16 %other) #0 !dbg !297 { -// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !301 -// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !302 -// CHECK:STDOUT: ret i8 %2, !dbg !303 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self) #0 !dbg !338 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self), !dbg !344 +// CHECK:STDOUT: ret i32 %1, !dbg !344 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %self, i32 %other) #0 !dbg !304 { -// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !310 -// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !311 -// CHECK:STDOUT: ret i8 %2, !dbg !312 +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %x) #0 !dbg !356 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !359 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3c06bceea9ba44a7"(i32 %self, i8 %other) #0 !dbg !313 { -// CHECK:STDOUT: %1 = trunc i32 %self to i8, !dbg !319 -// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !320 -// CHECK:STDOUT: ret i8 %2, !dbg !321 +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.9188b823847778f0"(i8 %self, i8 %other) #0 !dbg !361 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !368 +// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !369 +// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !370 +// CHECK:STDOUT: ret i32 %3, !dbg !371 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %self, i32 %other) #0 !dbg !322 { -// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !326 -// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !327 -// CHECK:STDOUT: ret i8 %2, !dbg !328 +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.9188b823847778f0"(i8 %self, i8 %other) #0 !dbg !373 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !380 +// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !381 +// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !382 +// CHECK:STDOUT: ret i32 %3, !dbg !383 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %self, i8 %other) #0 !dbg !329 { -// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !335 -// CHECK:STDOUT: ret i8 %1, !dbg !336 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %self, i8 %other) #0 !dbg !385 { +// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !394 +// CHECK:STDOUT: ret i8 %1, !dbg !396 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.c8c7baf2b5955a72"(i8 %self, i8 %other) #0 !dbg !337 { -// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !341 -// CHECK:STDOUT: ret i8 %1, !dbg !342 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.be6db155159bf0e6"(i8 %self, i8 %other) #0 !dbg !398 { +// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !407 +// CHECK:STDOUT: ret i8 %1, !dbg !409 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %self, i8 %other) #0 !dbg !343 { -// CHECK:STDOUT: %1 = sub i8 %self, %other, !dbg !347 -// CHECK:STDOUT: ret i8 %1, !dbg !348 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.be6db155159bf0e6"(i8 %self, i8 %other) #0 !dbg !411 { +// CHECK:STDOUT: %1 = sub i8 %self, %other, !dbg !420 +// CHECK:STDOUT: ret i8 %1, !dbg !422 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %self, i16 %other) #0 !dbg !349 { -// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !355 -// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !356 -// CHECK:STDOUT: ret i8 %2, !dbg !357 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %self, i16 %other) #0 !dbg !424 { +// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !432 +// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !433 +// CHECK:STDOUT: ret i8 %2, !dbg !435 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.61bb220507f77095"(i16 %self, i8 %other) #0 !dbg !358 { -// CHECK:STDOUT: %1 = trunc i16 %self to i8, !dbg !364 -// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !365 -// CHECK:STDOUT: ret i8 %2, !dbg !366 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.b2ec6933266ee2f0"(i16 %self, i8 %other) #0 !dbg !437 { +// CHECK:STDOUT: %1 = trunc i16 %self to i8, !dbg !444 +// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !446 +// CHECK:STDOUT: ret i8 %2, !dbg !448 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %self, i16 %other) #0 !dbg !367 { -// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !371 -// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !372 -// CHECK:STDOUT: ret i8 %2, !dbg !373 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0"(i8 %self, i16 %other) #0 !dbg !450 { +// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !458 +// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !459 +// CHECK:STDOUT: ret i8 %2, !dbg !461 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %self, i32 %other) #0 !dbg !374 { -// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !380 -// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !381 -// CHECK:STDOUT: ret i8 %2, !dbg !382 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %self, i32 %other) #0 !dbg !463 { +// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !471 +// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !472 +// CHECK:STDOUT: ret i8 %2, !dbg !474 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4494a819d074492e"(i32 %self, i8 %other) #0 !dbg !383 { -// CHECK:STDOUT: %1 = trunc i32 %self to i8, !dbg !389 -// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !390 -// CHECK:STDOUT: ret i8 %2, !dbg !391 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3c06bceea9ba44a7"(i32 %self, i8 %other) #0 !dbg !476 { +// CHECK:STDOUT: %1 = trunc i32 %self to i8, !dbg !483 +// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !485 +// CHECK:STDOUT: ret i8 %2, !dbg !487 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %self, i32 %other) #0 !dbg !392 { -// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !396 -// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !397 -// CHECK:STDOUT: ret i8 %2, !dbg !398 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7"(i8 %self, i32 %other) #0 !dbg !489 { +// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !497 +// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !498 +// CHECK:STDOUT: ret i8 %2, !dbg !500 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.335e322ca15c76a1"(i8 %self) #0 !dbg !399 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.e4ef44314f014f83"(i8 %self), !dbg !403 -// CHECK:STDOUT: ret i16 %1, !dbg !404 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %self, i8 %other) #0 !dbg !502 { +// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !511 +// CHECK:STDOUT: ret i8 %1, !dbg !513 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %self) #0 !dbg !405 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %self), !dbg !408 -// CHECK:STDOUT: ret i32 %1, !dbg !409 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.c8c7baf2b5955a72"(i8 %self, i8 %other) #0 !dbg !515 { +// CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !524 +// CHECK:STDOUT: ret i8 %1, !dbg !526 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.90fccc2ec10748e3"(i8 %self) #0 !dbg !410 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.4f3746a8c9265ebe"(i8 %self), !dbg !413 -// CHECK:STDOUT: ret i16 %1, !dbg !414 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72"(i8 %self, i8 %other) #0 !dbg !528 { +// CHECK:STDOUT: %1 = sub i8 %self, %other, !dbg !537 +// CHECK:STDOUT: ret i8 %1, !dbg !539 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self) #0 !dbg !415 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %self), !dbg !418 -// CHECK:STDOUT: ret i32 %1, !dbg !419 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %self, i16 %other) #0 !dbg !541 { +// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !549 +// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !550 +// CHECK:STDOUT: ret i8 %2, !dbg !552 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.e4ef44314f014f83"(i8 %from) #0 !dbg !420 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !423 -// CHECK:STDOUT: %2 = zext i8 %1 to i16, !dbg !424 -// CHECK:STDOUT: ret i16 %2, !dbg !425 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.61bb220507f77095"(i16 %self, i8 %other) #0 !dbg !554 { +// CHECK:STDOUT: %1 = trunc i16 %self to i8, !dbg !561 +// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !563 +// CHECK:STDOUT: ret i8 %2, !dbg !565 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %from) #0 !dbg !426 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !429 -// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !430 -// CHECK:STDOUT: ret i32 %2, !dbg !431 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.61bb220507f77095"(i8 %self, i16 %other) #0 !dbg !567 { +// CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !575 +// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !576 +// CHECK:STDOUT: ret i8 %2, !dbg !578 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.4f3746a8c9265ebe"(i8 %from) #0 !dbg !432 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !435 -// CHECK:STDOUT: %2 = zext i8 %1 to i16, !dbg !436 -// CHECK:STDOUT: ret i16 %2, !dbg !437 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %self, i32 %other) #0 !dbg !580 { +// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !588 +// CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !589 +// CHECK:STDOUT: ret i8 %2, !dbg !591 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %from) #0 !dbg !438 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !441 -// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !442 -// CHECK:STDOUT: ret i32 %2, !dbg !443 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4494a819d074492e"(i32 %self, i8 %other) #0 !dbg !593 { +// CHECK:STDOUT: %1 = trunc i32 %self to i8, !dbg !600 +// CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !602 +// CHECK:STDOUT: ret i8 %2, !dbg !604 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !444 { -// CHECK:STDOUT: ret i8 %self, !dbg !449 +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4494a819d074492e"(i8 %self, i32 %other) #0 !dbg !606 { +// CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !614 +// CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !615 +// CHECK:STDOUT: ret i8 %2, !dbg !617 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.335e322ca15c76a1"(i8 %self) #0 !dbg !620 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.e4ef44314f014f83"(i8 %self), !dbg !626 +// CHECK:STDOUT: ret i16 %1, !dbg !627 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %self) #0 !dbg !629 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %self), !dbg !635 +// CHECK:STDOUT: ret i32 %1, !dbg !636 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.90fccc2ec10748e3"(i8 %self) #0 !dbg !638 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.4f3746a8c9265ebe"(i8 %self), !dbg !644 +// CHECK:STDOUT: ret i16 %1, !dbg !645 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self) #0 !dbg !647 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %self), !dbg !653 +// CHECK:STDOUT: ret i32 %1, !dbg !654 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.e4ef44314f014f83"(i8 %from) #0 !dbg !656 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !661 +// CHECK:STDOUT: %2 = zext i8 %1 to i16, !dbg !664 +// CHECK:STDOUT: ret i16 %2, !dbg !665 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %from) #0 !dbg !667 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !672 +// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !673 +// CHECK:STDOUT: ret i32 %2, !dbg !674 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.4f3746a8c9265ebe"(i8 %from) #0 !dbg !676 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !681 +// CHECK:STDOUT: %2 = zext i8 %1 to i16, !dbg !682 +// CHECK:STDOUT: ret i16 %2, !dbg !683 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %from) #0 !dbg !685 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !690 +// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !691 +// CHECK:STDOUT: ret i32 %2, !dbg !692 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !694 { +// CHECK:STDOUT: ret i8 %self, !dbg !700 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -548,457 +548,457 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "char.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 39, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !1, line: 21, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !7, !7} -// CHECK:STDOUT: !15 = !{!16, !17} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !12, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 23, column: 11, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 23, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 24, column: 11, scope: !12) -// CHECK:STDOUT: !22 = !DILocation(line: 24, column: 3, scope: !12) -// CHECK:STDOUT: !23 = !DILocation(line: 26, column: 11, scope: !12) -// CHECK:STDOUT: !24 = !DILocation(line: 26, column: 3, scope: !12) -// CHECK:STDOUT: !25 = !DILocation(line: 27, column: 11, scope: !12) -// CHECK:STDOUT: !26 = !DILocation(line: 27, column: 3, scope: !12) -// CHECK:STDOUT: !27 = !DILocation(line: 28, column: 3, scope: !12) -// CHECK:STDOUT: !28 = !DILocation(line: 21, column: 1, scope: !12) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "ConvertConstant", linkageName: "_CConvertConstant.Main", scope: null, file: !1, line: 31, type: !30, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !30 = !DISubroutineType(types: !31) -// CHECK:STDOUT: !31 = !{null} -// CHECK:STDOUT: !32 = !DILocation(line: 32, column: 3, scope: !29) -// CHECK:STDOUT: !33 = !DILocation(line: 33, column: 11, scope: !29) -// CHECK:STDOUT: !34 = !DILocation(line: 33, column: 3, scope: !29) -// CHECK:STDOUT: !35 = !DILocation(line: 34, column: 11, scope: !29) -// CHECK:STDOUT: !36 = !DILocation(line: 34, column: 3, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 35, column: 11, scope: !29) -// CHECK:STDOUT: !38 = !DILocation(line: 35, column: 3, scope: !29) -// CHECK:STDOUT: !39 = !DILocation(line: 36, column: 11, scope: !29) -// CHECK:STDOUT: !40 = !DILocation(line: 36, column: 3, scope: !29) -// CHECK:STDOUT: !41 = !DILocation(line: 37, column: 3, scope: !29) -// CHECK:STDOUT: !42 = !DILocation(line: 31, column: 1, scope: !29) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "CompareCharChar", linkageName: "_CCompareCharChar.Main", scope: null, file: !1, line: 40, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !44 = !{!45, !46} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) -// CHECK:STDOUT: !46 = !DILocalVariable(arg: 2, scope: !43, type: !7) -// CHECK:STDOUT: !47 = !DILocation(line: 41, column: 11, scope: !43) -// CHECK:STDOUT: !48 = !DILocation(line: 41, column: 3, scope: !43) -// CHECK:STDOUT: !49 = !DILocation(line: 42, column: 11, scope: !43) -// CHECK:STDOUT: !50 = !DILocation(line: 42, column: 3, scope: !43) -// CHECK:STDOUT: !51 = !DILocation(line: 43, column: 11, scope: !43) -// CHECK:STDOUT: !52 = !DILocation(line: 43, column: 3, scope: !43) -// CHECK:STDOUT: !53 = !DILocation(line: 44, column: 11, scope: !43) -// CHECK:STDOUT: !54 = !DILocation(line: 44, column: 3, scope: !43) -// CHECK:STDOUT: !55 = !DILocation(line: 45, column: 11, scope: !43) -// CHECK:STDOUT: !56 = !DILocation(line: 45, column: 3, scope: !43) -// CHECK:STDOUT: !57 = !DILocation(line: 46, column: 11, scope: !43) -// CHECK:STDOUT: !58 = !DILocation(line: 46, column: 3, scope: !43) -// CHECK:STDOUT: !59 = !DILocation(line: 40, column: 1, scope: !43) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "CompareCharCharLike", linkageName: "_CCompareCharCharLike.Main", scope: null, file: !1, line: 49, type: !61, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !63) -// CHECK:STDOUT: !61 = !DISubroutineType(types: !62) -// CHECK:STDOUT: !62 = !{null, !7, !8} -// CHECK:STDOUT: !63 = !{!64, !65} -// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !60, type: !7) -// CHECK:STDOUT: !65 = !DILocalVariable(arg: 2, scope: !60, type: !8) -// CHECK:STDOUT: !66 = !DILocation(line: 50, column: 16, scope: !60) -// CHECK:STDOUT: !67 = !DILocation(line: 50, column: 11, scope: !60) -// CHECK:STDOUT: !68 = !DILocation(line: 50, column: 3, scope: !60) -// CHECK:STDOUT: !69 = !DILocation(line: 51, column: 16, scope: !60) -// CHECK:STDOUT: !70 = !DILocation(line: 51, column: 11, scope: !60) -// CHECK:STDOUT: !71 = !DILocation(line: 51, column: 3, scope: !60) -// CHECK:STDOUT: !72 = !DILocation(line: 52, column: 15, scope: !60) -// CHECK:STDOUT: !73 = !DILocation(line: 52, column: 11, scope: !60) -// CHECK:STDOUT: !74 = !DILocation(line: 52, column: 3, scope: !60) -// CHECK:STDOUT: !75 = !DILocation(line: 53, column: 16, scope: !60) -// CHECK:STDOUT: !76 = !DILocation(line: 53, column: 11, scope: !60) -// CHECK:STDOUT: !77 = !DILocation(line: 53, column: 3, scope: !60) -// CHECK:STDOUT: !78 = !DILocation(line: 54, column: 15, scope: !60) -// CHECK:STDOUT: !79 = !DILocation(line: 54, column: 11, scope: !60) -// CHECK:STDOUT: !80 = !DILocation(line: 54, column: 3, scope: !60) -// CHECK:STDOUT: !81 = !DILocation(line: 55, column: 16, scope: !60) -// CHECK:STDOUT: !82 = !DILocation(line: 55, column: 11, scope: !60) -// CHECK:STDOUT: !83 = !DILocation(line: 55, column: 3, scope: !60) -// CHECK:STDOUT: !84 = !DILocation(line: 57, column: 11, scope: !60) -// CHECK:STDOUT: !85 = !DILocation(line: 57, column: 3, scope: !60) -// CHECK:STDOUT: !86 = !DILocation(line: 58, column: 11, scope: !60) -// CHECK:STDOUT: !87 = !DILocation(line: 58, column: 3, scope: !60) -// CHECK:STDOUT: !88 = !DILocation(line: 59, column: 11, scope: !60) -// CHECK:STDOUT: !89 = !DILocation(line: 59, column: 3, scope: !60) -// CHECK:STDOUT: !90 = !DILocation(line: 60, column: 11, scope: !60) -// CHECK:STDOUT: !91 = !DILocation(line: 60, column: 3, scope: !60) -// CHECK:STDOUT: !92 = !DILocation(line: 61, column: 11, scope: !60) -// CHECK:STDOUT: !93 = !DILocation(line: 61, column: 3, scope: !60) -// CHECK:STDOUT: !94 = !DILocation(line: 62, column: 11, scope: !60) -// CHECK:STDOUT: !95 = !DILocation(line: 62, column: 3, scope: !60) -// CHECK:STDOUT: !96 = !DILocation(line: 49, column: 1, scope: !60) -// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "SubCharChar", linkageName: "_CSubCharChar.Main", scope: null, file: !1, line: 65, type: !61, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !98) -// CHECK:STDOUT: !98 = !{!99, !100} -// CHECK:STDOUT: !99 = !DILocalVariable(arg: 1, scope: !97, type: !7) -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 2, scope: !97, type: !8) -// CHECK:STDOUT: !101 = !DILocation(line: 66, column: 11, scope: !97) -// CHECK:STDOUT: !102 = !DILocation(line: 66, column: 3, scope: !97) -// CHECK:STDOUT: !103 = !DILocation(line: 67, column: 15, scope: !97) -// CHECK:STDOUT: !104 = !DILocation(line: 67, column: 11, scope: !97) -// CHECK:STDOUT: !105 = !DILocation(line: 67, column: 3, scope: !97) -// CHECK:STDOUT: !106 = !DILocation(line: 68, column: 11, scope: !97) -// CHECK:STDOUT: !107 = !DILocation(line: 68, column: 3, scope: !97) -// CHECK:STDOUT: !108 = !DILocation(line: 65, column: 1, scope: !97) -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "AddSubInt8", linkageName: "_CAddSubInt8.Main", scope: null, file: !1, line: 71, type: !110, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !113) -// CHECK:STDOUT: !110 = !DISubroutineType(types: !111) -// CHECK:STDOUT: !111 = !{null, !7, !112} -// CHECK:STDOUT: !112 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) -// CHECK:STDOUT: !113 = !{!114, !115} -// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !109, type: !7) -// CHECK:STDOUT: !115 = !DILocalVariable(arg: 2, scope: !109, type: !112) -// CHECK:STDOUT: !116 = !DILocation(line: 72, column: 11, scope: !109) -// CHECK:STDOUT: !117 = !DILocation(line: 72, column: 3, scope: !109) -// CHECK:STDOUT: !118 = !DILocation(line: 73, column: 11, scope: !109) -// CHECK:STDOUT: !119 = !DILocation(line: 73, column: 3, scope: !109) -// CHECK:STDOUT: !120 = !DILocation(line: 74, column: 11, scope: !109) -// CHECK:STDOUT: !121 = !DILocation(line: 74, column: 3, scope: !109) -// CHECK:STDOUT: !122 = !DILocation(line: 71, column: 1, scope: !109) -// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "AddSubInt16", linkageName: "_CAddSubInt16.Main", scope: null, file: !1, line: 77, type: !124, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !127) -// CHECK:STDOUT: !124 = !DISubroutineType(types: !125) -// CHECK:STDOUT: !125 = !{null, !7, !126} -// CHECK:STDOUT: !126 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) -// CHECK:STDOUT: !127 = !{!128, !129} -// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !123, type: !7) -// CHECK:STDOUT: !129 = !DILocalVariable(arg: 2, scope: !123, type: !126) -// CHECK:STDOUT: !130 = !DILocation(line: 78, column: 11, scope: !123) -// CHECK:STDOUT: !131 = !DILocation(line: 78, column: 3, scope: !123) -// CHECK:STDOUT: !132 = !DILocation(line: 79, column: 11, scope: !123) -// CHECK:STDOUT: !133 = !DILocation(line: 79, column: 3, scope: !123) -// CHECK:STDOUT: !134 = !DILocation(line: 80, column: 11, scope: !123) -// CHECK:STDOUT: !135 = !DILocation(line: 80, column: 3, scope: !123) -// CHECK:STDOUT: !136 = !DILocation(line: 77, column: 1, scope: !123) -// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "AddSubInt32", linkageName: "_CAddSubInt32.Main", scope: null, file: !1, line: 83, type: !138, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !141) -// CHECK:STDOUT: !138 = !DISubroutineType(types: !139) -// CHECK:STDOUT: !139 = !{null, !7, !140} -// CHECK:STDOUT: !140 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !141 = !{!142, !143} -// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !137, type: !7) -// CHECK:STDOUT: !143 = !DILocalVariable(arg: 2, scope: !137, type: !140) -// CHECK:STDOUT: !144 = !DILocation(line: 84, column: 11, scope: !137) -// CHECK:STDOUT: !145 = !DILocation(line: 84, column: 3, scope: !137) -// CHECK:STDOUT: !146 = !DILocation(line: 85, column: 11, scope: !137) -// CHECK:STDOUT: !147 = !DILocation(line: 85, column: 3, scope: !137) -// CHECK:STDOUT: !148 = !DILocation(line: 86, column: 11, scope: !137) -// CHECK:STDOUT: !149 = !DILocation(line: 86, column: 3, scope: !137) -// CHECK:STDOUT: !150 = !DILocation(line: 83, column: 1, scope: !137) -// CHECK:STDOUT: !151 = distinct !DISubprogram(name: "AddSubUInt8", linkageName: "_CAddSubUInt8.Main", scope: null, file: !1, line: 89, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !152) -// CHECK:STDOUT: !152 = !{!153, !154} -// CHECK:STDOUT: !153 = !DILocalVariable(arg: 1, scope: !151, type: !7) -// CHECK:STDOUT: !154 = !DILocalVariable(arg: 2, scope: !151, type: !7) -// CHECK:STDOUT: !155 = !DILocation(line: 90, column: 11, scope: !151) -// CHECK:STDOUT: !156 = !DILocation(line: 90, column: 3, scope: !151) -// CHECK:STDOUT: !157 = !DILocation(line: 91, column: 11, scope: !151) -// CHECK:STDOUT: !158 = !DILocation(line: 91, column: 3, scope: !151) -// CHECK:STDOUT: !159 = !DILocation(line: 92, column: 11, scope: !151) -// CHECK:STDOUT: !160 = !DILocation(line: 92, column: 3, scope: !151) -// CHECK:STDOUT: !161 = !DILocation(line: 89, column: 1, scope: !151) -// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "AddSubUInt16", linkageName: "_CAddSubUInt16.Main", scope: null, file: !1, line: 95, type: !163, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !166) -// CHECK:STDOUT: !163 = !DISubroutineType(types: !164) -// CHECK:STDOUT: !164 = !{null, !7, !165} -// CHECK:STDOUT: !165 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !166 = !{!167, !168} -// CHECK:STDOUT: !167 = !DILocalVariable(arg: 1, scope: !162, type: !7) -// CHECK:STDOUT: !168 = !DILocalVariable(arg: 2, scope: !162, type: !165) -// CHECK:STDOUT: !169 = !DILocation(line: 96, column: 11, scope: !162) -// CHECK:STDOUT: !170 = !DILocation(line: 96, column: 3, scope: !162) -// CHECK:STDOUT: !171 = !DILocation(line: 97, column: 11, scope: !162) -// CHECK:STDOUT: !172 = !DILocation(line: 97, column: 3, scope: !162) -// CHECK:STDOUT: !173 = !DILocation(line: 98, column: 11, scope: !162) -// CHECK:STDOUT: !174 = !DILocation(line: 98, column: 3, scope: !162) -// CHECK:STDOUT: !175 = !DILocation(line: 95, column: 1, scope: !162) -// CHECK:STDOUT: !176 = distinct !DISubprogram(name: "AddSubUInt32", linkageName: "_CAddSubUInt32.Main", scope: null, file: !1, line: 101, type: !177, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !180) -// CHECK:STDOUT: !177 = !DISubroutineType(types: !178) -// CHECK:STDOUT: !178 = !{null, !7, !179} -// CHECK:STDOUT: !179 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !180 = !{!181, !182} -// CHECK:STDOUT: !181 = !DILocalVariable(arg: 1, scope: !176, type: !7) -// CHECK:STDOUT: !182 = !DILocalVariable(arg: 2, scope: !176, type: !179) -// CHECK:STDOUT: !183 = !DILocation(line: 102, column: 11, scope: !176) -// CHECK:STDOUT: !184 = !DILocation(line: 102, column: 3, scope: !176) -// CHECK:STDOUT: !185 = !DILocation(line: 103, column: 11, scope: !176) -// CHECK:STDOUT: !186 = !DILocation(line: 103, column: 3, scope: !176) -// CHECK:STDOUT: !187 = !DILocation(line: 104, column: 11, scope: !176) -// CHECK:STDOUT: !188 = !DILocation(line: 104, column: 3, scope: !176) -// CHECK:STDOUT: !189 = !DILocation(line: 101, column: 1, scope: !176) -// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.15688e19507865c6", scope: null, file: !1, line: 19, type: !191, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !193) -// CHECK:STDOUT: !191 = !DISubroutineType(types: !192) -// CHECK:STDOUT: !192 = !{null, !7} -// CHECK:STDOUT: !193 = !{!194} -// CHECK:STDOUT: !194 = !DILocalVariable(arg: 1, scope: !190, type: !7) -// CHECK:STDOUT: !195 = !DILocation(line: 19, column: 1, scope: !190) -// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee", scope: null, file: !197, line: 42, type: !198, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !200) -// CHECK:STDOUT: !197 = !DIFile(filename: "{{.*}}/prelude/types/char.carbon", directory: "") -// CHECK:STDOUT: !198 = !DISubroutineType(types: !199) -// CHECK:STDOUT: !199 = !{!165, !7} -// CHECK:STDOUT: !200 = !{!201} -// CHECK:STDOUT: !201 = !DILocalVariable(arg: 1, scope: !196, type: !7) -// CHECK:STDOUT: !202 = !DILocation(line: 43, column: 5, scope: !196) -// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.147e0bd019a31663", scope: null, file: !1, line: 19, type: !204, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !206) -// CHECK:STDOUT: !204 = !DISubroutineType(types: !205) -// CHECK:STDOUT: !205 = !{null, !165} -// CHECK:STDOUT: !206 = !{!207} -// CHECK:STDOUT: !207 = !DILocalVariable(arg: 1, scope: !203, type: !165) -// CHECK:STDOUT: !208 = !DILocation(line: 19, column: 1, scope: !203) -// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f", scope: null, file: !197, line: 42, type: !210, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !212) -// CHECK:STDOUT: !210 = !DISubroutineType(types: !211) -// CHECK:STDOUT: !211 = !{!179, !7} -// CHECK:STDOUT: !212 = !{!213} -// CHECK:STDOUT: !213 = !DILocalVariable(arg: 1, scope: !209, type: !7) -// CHECK:STDOUT: !214 = !DILocation(line: 43, column: 5, scope: !209) -// CHECK:STDOUT: !215 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.eadca4a969cf6f21", scope: null, file: !1, line: 19, type: !216, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !218) -// CHECK:STDOUT: !216 = !DISubroutineType(types: !217) -// CHECK:STDOUT: !217 = !{null, !179} -// CHECK:STDOUT: !218 = !{!219} -// CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !215, type: !179) -// CHECK:STDOUT: !220 = !DILocation(line: 19, column: 1, scope: !215) -// CHECK:STDOUT: !221 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666", scope: null, file: !197, line: 42, type: !222, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !224) -// CHECK:STDOUT: !222 = !DISubroutineType(types: !223) -// CHECK:STDOUT: !223 = !{!126, !7} -// CHECK:STDOUT: !224 = !{!225} -// CHECK:STDOUT: !225 = !DILocalVariable(arg: 1, scope: !221, type: !7) -// CHECK:STDOUT: !226 = !DILocation(line: 43, column: 5, scope: !221) -// CHECK:STDOUT: !227 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1", scope: null, file: !197, line: 42, type: !228, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !230) -// CHECK:STDOUT: !228 = !DISubroutineType(types: !229) -// CHECK:STDOUT: !229 = !{!140, !7} -// CHECK:STDOUT: !230 = !{!231} -// CHECK:STDOUT: !231 = !DILocalVariable(arg: 1, scope: !227, type: !7) -// CHECK:STDOUT: !232 = !DILocation(line: 43, column: 5, scope: !227) -// CHECK:STDOUT: !233 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.a4c7fafe8a72cac4", scope: null, file: !1, line: 19, type: !234, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !236) -// CHECK:STDOUT: !234 = !DISubroutineType(types: !235) -// CHECK:STDOUT: !235 = !{null, !8} -// CHECK:STDOUT: !236 = !{!237} -// CHECK:STDOUT: !237 = !DILocalVariable(arg: 1, scope: !233, type: !8) -// CHECK:STDOUT: !238 = !DILocation(line: 19, column: 1, scope: !233) -// CHECK:STDOUT: !239 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.7c3e388e0087434a.Core.9188b823847778f0", scope: null, file: !197, line: 129, type: !240, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !242) -// CHECK:STDOUT: !240 = !DISubroutineType(types: !241) -// CHECK:STDOUT: !241 = !{!140, !7, !7} -// CHECK:STDOUT: !242 = !{!243, !244} -// CHECK:STDOUT: !243 = !DILocalVariable(arg: 1, scope: !239, type: !7) -// CHECK:STDOUT: !244 = !DILocalVariable(arg: 2, scope: !239, type: !7) -// CHECK:STDOUT: !245 = !DILocation(line: 130, column: 13, scope: !239) -// CHECK:STDOUT: !246 = !DILocation(line: 130, column: 29, scope: !239) -// CHECK:STDOUT: !247 = !DILocation(line: 130, column: 12, scope: !239) -// CHECK:STDOUT: !248 = !DILocation(line: 130, column: 5, scope: !239) -// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.9188b823847778f0", scope: null, file: !197, line: 123, type: !240, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !250) -// CHECK:STDOUT: !250 = !{!251, !252} -// CHECK:STDOUT: !251 = !DILocalVariable(arg: 1, scope: !249, type: !7) -// CHECK:STDOUT: !252 = !DILocalVariable(arg: 2, scope: !249, type: !7) -// CHECK:STDOUT: !253 = !DILocation(line: 124, column: 13, scope: !249) -// CHECK:STDOUT: !254 = !DILocation(line: 124, column: 29, scope: !249) -// CHECK:STDOUT: !255 = !DILocation(line: 124, column: 12, scope: !249) -// CHECK:STDOUT: !256 = !DILocation(line: 124, column: 5, scope: !249) -// CHECK:STDOUT: !257 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.be6db155159bf0e6", scope: null, file: !197, line: 94, type: !258, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !260) -// CHECK:STDOUT: !258 = !DISubroutineType(types: !259) -// CHECK:STDOUT: !259 = !{!7, !7, !112} -// CHECK:STDOUT: !260 = !{!261, !262} -// CHECK:STDOUT: !261 = !DILocalVariable(arg: 1, scope: !257, type: !7) -// CHECK:STDOUT: !262 = !DILocalVariable(arg: 2, scope: !257, type: !112) -// CHECK:STDOUT: !263 = !DILocation(line: 96, column: 13, scope: !257) -// CHECK:STDOUT: !264 = !DILocation(line: 96, column: 5, scope: !257) -// CHECK:STDOUT: !265 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.be6db155159bf0e6", scope: null, file: !197, line: 102, type: !266, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !268) -// CHECK:STDOUT: !266 = !DISubroutineType(types: !267) -// CHECK:STDOUT: !267 = !{!7, !112, !7} -// CHECK:STDOUT: !268 = !{!269, !270} -// CHECK:STDOUT: !269 = !DILocalVariable(arg: 1, scope: !265, type: !112) -// CHECK:STDOUT: !270 = !DILocalVariable(arg: 2, scope: !265, type: !7) -// CHECK:STDOUT: !271 = !DILocation(line: 104, column: 13, scope: !265) -// CHECK:STDOUT: !272 = !DILocation(line: 104, column: 5, scope: !265) -// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.be6db155159bf0e6", scope: null, file: !197, line: 110, type: !258, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !274) -// CHECK:STDOUT: !274 = !{!275, !276} -// CHECK:STDOUT: !275 = !DILocalVariable(arg: 1, scope: !273, type: !7) -// CHECK:STDOUT: !276 = !DILocalVariable(arg: 2, scope: !273, type: !112) -// CHECK:STDOUT: !277 = !DILocation(line: 112, column: 13, scope: !273) -// CHECK:STDOUT: !278 = !DILocation(line: 112, column: 5, scope: !273) -// CHECK:STDOUT: !279 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0", scope: null, file: !197, line: 94, type: !280, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !282) -// CHECK:STDOUT: !280 = !DISubroutineType(types: !281) -// CHECK:STDOUT: !281 = !{!7, !7, !126} -// CHECK:STDOUT: !282 = !{!283, !284} -// CHECK:STDOUT: !283 = !DILocalVariable(arg: 1, scope: !279, type: !7) -// CHECK:STDOUT: !284 = !DILocalVariable(arg: 2, scope: !279, type: !126) -// CHECK:STDOUT: !285 = !DILocation(line: 96, column: 29, scope: !279) -// CHECK:STDOUT: !286 = !DILocation(line: 96, column: 13, scope: !279) -// CHECK:STDOUT: !287 = !DILocation(line: 96, column: 5, scope: !279) -// CHECK:STDOUT: !288 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.b2ec6933266ee2f0", scope: null, file: !197, line: 102, type: !289, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !291) -// CHECK:STDOUT: !289 = !DISubroutineType(types: !290) -// CHECK:STDOUT: !290 = !{!7, !126, !7} -// CHECK:STDOUT: !291 = !{!292, !293} -// CHECK:STDOUT: !292 = !DILocalVariable(arg: 1, scope: !288, type: !126) -// CHECK:STDOUT: !293 = !DILocalVariable(arg: 2, scope: !288, type: !7) -// CHECK:STDOUT: !294 = !DILocation(line: 104, column: 14, scope: !288) -// CHECK:STDOUT: !295 = !DILocation(line: 104, column: 13, scope: !288) -// CHECK:STDOUT: !296 = !DILocation(line: 104, column: 5, scope: !288) -// CHECK:STDOUT: !297 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0", scope: null, file: !197, line: 110, type: !280, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !298) -// CHECK:STDOUT: !298 = !{!299, !300} -// CHECK:STDOUT: !299 = !DILocalVariable(arg: 1, scope: !297, type: !7) -// CHECK:STDOUT: !300 = !DILocalVariable(arg: 2, scope: !297, type: !126) -// CHECK:STDOUT: !301 = !DILocation(line: 112, column: 29, scope: !297) -// CHECK:STDOUT: !302 = !DILocation(line: 112, column: 13, scope: !297) -// CHECK:STDOUT: !303 = !DILocation(line: 112, column: 5, scope: !297) -// CHECK:STDOUT: !304 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7", scope: null, file: !197, line: 94, type: !305, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !307) -// CHECK:STDOUT: !305 = !DISubroutineType(types: !306) -// CHECK:STDOUT: !306 = !{!7, !7, !140} -// CHECK:STDOUT: !307 = !{!308, !309} -// CHECK:STDOUT: !308 = !DILocalVariable(arg: 1, scope: !304, type: !7) -// CHECK:STDOUT: !309 = !DILocalVariable(arg: 2, scope: !304, type: !140) -// CHECK:STDOUT: !310 = !DILocation(line: 96, column: 29, scope: !304) -// CHECK:STDOUT: !311 = !DILocation(line: 96, column: 13, scope: !304) -// CHECK:STDOUT: !312 = !DILocation(line: 96, column: 5, scope: !304) -// CHECK:STDOUT: !313 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3c06bceea9ba44a7", scope: null, file: !197, line: 102, type: !314, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !316) -// CHECK:STDOUT: !314 = !DISubroutineType(types: !315) -// CHECK:STDOUT: !315 = !{!7, !140, !7} -// CHECK:STDOUT: !316 = !{!317, !318} -// CHECK:STDOUT: !317 = !DILocalVariable(arg: 1, scope: !313, type: !140) -// CHECK:STDOUT: !318 = !DILocalVariable(arg: 2, scope: !313, type: !7) -// CHECK:STDOUT: !319 = !DILocation(line: 104, column: 14, scope: !313) -// CHECK:STDOUT: !320 = !DILocation(line: 104, column: 13, scope: !313) -// CHECK:STDOUT: !321 = !DILocation(line: 104, column: 5, scope: !313) -// CHECK:STDOUT: !322 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7", scope: null, file: !197, line: 110, type: !305, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !323) -// CHECK:STDOUT: !323 = !{!324, !325} -// CHECK:STDOUT: !324 = !DILocalVariable(arg: 1, scope: !322, type: !7) -// CHECK:STDOUT: !325 = !DILocalVariable(arg: 2, scope: !322, type: !140) -// CHECK:STDOUT: !326 = !DILocation(line: 112, column: 29, scope: !322) -// CHECK:STDOUT: !327 = !DILocation(line: 112, column: 13, scope: !322) -// CHECK:STDOUT: !328 = !DILocation(line: 112, column: 5, scope: !322) -// CHECK:STDOUT: !329 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72", scope: null, file: !197, line: 94, type: !330, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !332) -// CHECK:STDOUT: !330 = !DISubroutineType(types: !331) -// CHECK:STDOUT: !331 = !{!7, !7, !7} -// CHECK:STDOUT: !332 = !{!333, !334} -// CHECK:STDOUT: !333 = !DILocalVariable(arg: 1, scope: !329, type: !7) -// CHECK:STDOUT: !334 = !DILocalVariable(arg: 2, scope: !329, type: !7) -// CHECK:STDOUT: !335 = !DILocation(line: 96, column: 13, scope: !329) -// CHECK:STDOUT: !336 = !DILocation(line: 96, column: 5, scope: !329) -// CHECK:STDOUT: !337 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.c8c7baf2b5955a72", scope: null, file: !197, line: 102, type: !330, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !338) -// CHECK:STDOUT: !338 = !{!339, !340} -// CHECK:STDOUT: !339 = !DILocalVariable(arg: 1, scope: !337, type: !7) -// CHECK:STDOUT: !340 = !DILocalVariable(arg: 2, scope: !337, type: !7) -// CHECK:STDOUT: !341 = !DILocation(line: 104, column: 13, scope: !337) -// CHECK:STDOUT: !342 = !DILocation(line: 104, column: 5, scope: !337) -// CHECK:STDOUT: !343 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72", scope: null, file: !197, line: 110, type: !330, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !344) -// CHECK:STDOUT: !344 = !{!345, !346} -// CHECK:STDOUT: !345 = !DILocalVariable(arg: 1, scope: !343, type: !7) -// CHECK:STDOUT: !346 = !DILocalVariable(arg: 2, scope: !343, type: !7) -// CHECK:STDOUT: !347 = !DILocation(line: 112, column: 13, scope: !343) -// CHECK:STDOUT: !348 = !DILocation(line: 112, column: 5, scope: !343) -// CHECK:STDOUT: !349 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.61bb220507f77095", scope: null, file: !197, line: 94, type: !350, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !352) -// CHECK:STDOUT: !350 = !DISubroutineType(types: !351) -// CHECK:STDOUT: !351 = !{!7, !7, !165} -// CHECK:STDOUT: !352 = !{!353, !354} -// CHECK:STDOUT: !353 = !DILocalVariable(arg: 1, scope: !349, type: !7) -// CHECK:STDOUT: !354 = !DILocalVariable(arg: 2, scope: !349, type: !165) -// CHECK:STDOUT: !355 = !DILocation(line: 96, column: 29, scope: !349) -// CHECK:STDOUT: !356 = !DILocation(line: 96, column: 13, scope: !349) -// CHECK:STDOUT: !357 = !DILocation(line: 96, column: 5, scope: !349) -// CHECK:STDOUT: !358 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.61bb220507f77095", scope: null, file: !197, line: 102, type: !359, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !361) -// CHECK:STDOUT: !359 = !DISubroutineType(types: !360) -// CHECK:STDOUT: !360 = !{!7, !165, !7} -// CHECK:STDOUT: !361 = !{!362, !363} -// CHECK:STDOUT: !362 = !DILocalVariable(arg: 1, scope: !358, type: !165) -// CHECK:STDOUT: !363 = !DILocalVariable(arg: 2, scope: !358, type: !7) -// CHECK:STDOUT: !364 = !DILocation(line: 104, column: 14, scope: !358) -// CHECK:STDOUT: !365 = !DILocation(line: 104, column: 13, scope: !358) -// CHECK:STDOUT: !366 = !DILocation(line: 104, column: 5, scope: !358) -// CHECK:STDOUT: !367 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.61bb220507f77095", scope: null, file: !197, line: 110, type: !350, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !368) -// CHECK:STDOUT: !368 = !{!369, !370} -// CHECK:STDOUT: !369 = !DILocalVariable(arg: 1, scope: !367, type: !7) -// CHECK:STDOUT: !370 = !DILocalVariable(arg: 2, scope: !367, type: !165) -// CHECK:STDOUT: !371 = !DILocation(line: 112, column: 29, scope: !367) -// CHECK:STDOUT: !372 = !DILocation(line: 112, column: 13, scope: !367) -// CHECK:STDOUT: !373 = !DILocation(line: 112, column: 5, scope: !367) -// CHECK:STDOUT: !374 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4494a819d074492e", scope: null, file: !197, line: 94, type: !375, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !377) -// CHECK:STDOUT: !375 = !DISubroutineType(types: !376) -// CHECK:STDOUT: !376 = !{!7, !7, !179} -// CHECK:STDOUT: !377 = !{!378, !379} -// CHECK:STDOUT: !378 = !DILocalVariable(arg: 1, scope: !374, type: !7) -// CHECK:STDOUT: !379 = !DILocalVariable(arg: 2, scope: !374, type: !179) -// CHECK:STDOUT: !380 = !DILocation(line: 96, column: 29, scope: !374) -// CHECK:STDOUT: !381 = !DILocation(line: 96, column: 13, scope: !374) -// CHECK:STDOUT: !382 = !DILocation(line: 96, column: 5, scope: !374) -// CHECK:STDOUT: !383 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4494a819d074492e", scope: null, file: !197, line: 102, type: !384, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !386) -// CHECK:STDOUT: !384 = !DISubroutineType(types: !385) -// CHECK:STDOUT: !385 = !{!7, !179, !7} -// CHECK:STDOUT: !386 = !{!387, !388} -// CHECK:STDOUT: !387 = !DILocalVariable(arg: 1, scope: !383, type: !179) -// CHECK:STDOUT: !388 = !DILocalVariable(arg: 2, scope: !383, type: !7) -// CHECK:STDOUT: !389 = !DILocation(line: 104, column: 14, scope: !383) -// CHECK:STDOUT: !390 = !DILocation(line: 104, column: 13, scope: !383) -// CHECK:STDOUT: !391 = !DILocation(line: 104, column: 5, scope: !383) -// CHECK:STDOUT: !392 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4494a819d074492e", scope: null, file: !197, line: 110, type: !375, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !393) -// CHECK:STDOUT: !393 = !{!394, !395} -// CHECK:STDOUT: !394 = !DILocalVariable(arg: 1, scope: !392, type: !7) -// CHECK:STDOUT: !395 = !DILocalVariable(arg: 2, scope: !392, type: !179) -// CHECK:STDOUT: !396 = !DILocation(line: 112, column: 29, scope: !392) -// CHECK:STDOUT: !397 = !DILocation(line: 112, column: 13, scope: !392) -// CHECK:STDOUT: !398 = !DILocation(line: 112, column: 5, scope: !392) -// CHECK:STDOUT: !399 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.335e322ca15c76a1", scope: null, file: !400, line: 88, type: !198, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !401) -// CHECK:STDOUT: !400 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") -// CHECK:STDOUT: !401 = !{!402} -// CHECK:STDOUT: !402 = !DILocalVariable(arg: 1, scope: !399, type: !7) -// CHECK:STDOUT: !403 = !DILocation(line: 89, column: 12, scope: !399) -// CHECK:STDOUT: !404 = !DILocation(line: 89, column: 5, scope: !399) -// CHECK:STDOUT: !405 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84", scope: null, file: !400, line: 88, type: !210, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !406) -// CHECK:STDOUT: !406 = !{!407} -// CHECK:STDOUT: !407 = !DILocalVariable(arg: 1, scope: !405, type: !7) -// CHECK:STDOUT: !408 = !DILocation(line: 89, column: 12, scope: !405) -// CHECK:STDOUT: !409 = !DILocation(line: 89, column: 5, scope: !405) -// CHECK:STDOUT: !410 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.90fccc2ec10748e3", scope: null, file: !400, line: 88, type: !222, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !411) -// CHECK:STDOUT: !411 = !{!412} -// CHECK:STDOUT: !412 = !DILocalVariable(arg: 1, scope: !410, type: !7) -// CHECK:STDOUT: !413 = !DILocation(line: 89, column: 12, scope: !410) -// CHECK:STDOUT: !414 = !DILocation(line: 89, column: 5, scope: !410) -// CHECK:STDOUT: !415 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f", scope: null, file: !400, line: 88, type: !228, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !416) -// CHECK:STDOUT: !416 = !{!417} -// CHECK:STDOUT: !417 = !DILocalVariable(arg: 1, scope: !415, type: !7) -// CHECK:STDOUT: !418 = !DILocation(line: 89, column: 12, scope: !415) -// CHECK:STDOUT: !419 = !DILocation(line: 89, column: 5, scope: !415) -// CHECK:STDOUT: !420 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.e4ef44314f014f83", scope: null, file: !400, line: 72, type: !198, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !421) -// CHECK:STDOUT: !421 = !{!422} -// CHECK:STDOUT: !422 = !DILocalVariable(arg: 1, scope: !420, type: !7) -// CHECK:STDOUT: !423 = !DILocation(line: 74, column: 17, scope: !420) -// CHECK:STDOUT: !424 = !DILocation(line: 74, column: 12, scope: !420) -// CHECK:STDOUT: !425 = !DILocation(line: 74, column: 5, scope: !420) -// CHECK:STDOUT: !426 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d", scope: null, file: !400, line: 72, type: !210, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !427) -// CHECK:STDOUT: !427 = !{!428} -// CHECK:STDOUT: !428 = !DILocalVariable(arg: 1, scope: !426, type: !7) -// CHECK:STDOUT: !429 = !DILocation(line: 74, column: 17, scope: !426) -// CHECK:STDOUT: !430 = !DILocation(line: 74, column: 12, scope: !426) -// CHECK:STDOUT: !431 = !DILocation(line: 74, column: 5, scope: !426) -// CHECK:STDOUT: !432 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.4f3746a8c9265ebe", scope: null, file: !400, line: 80, type: !222, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !433) -// CHECK:STDOUT: !433 = !{!434} -// CHECK:STDOUT: !434 = !DILocalVariable(arg: 1, scope: !432, type: !7) -// CHECK:STDOUT: !435 = !DILocation(line: 82, column: 17, scope: !432) -// CHECK:STDOUT: !436 = !DILocation(line: 82, column: 12, scope: !432) -// CHECK:STDOUT: !437 = !DILocation(line: 82, column: 5, scope: !432) -// CHECK:STDOUT: !438 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3", scope: null, file: !400, line: 80, type: !228, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !439) -// CHECK:STDOUT: !439 = !{!440} -// CHECK:STDOUT: !440 = !DILocalVariable(arg: 1, scope: !438, type: !7) -// CHECK:STDOUT: !441 = !DILocation(line: 82, column: 17, scope: !438) -// CHECK:STDOUT: !442 = !DILocation(line: 82, column: 12, scope: !438) -// CHECK:STDOUT: !443 = !DILocation(line: 82, column: 5, scope: !438) -// CHECK:STDOUT: !444 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !400, line: 60, type: !445, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !447) -// CHECK:STDOUT: !445 = !DISubroutineType(types: !446) -// CHECK:STDOUT: !446 = !{!7, !7} -// CHECK:STDOUT: !447 = !{!448} -// CHECK:STDOUT: !448 = !DILocalVariable(arg: 1, scope: !444, type: !7) -// CHECK:STDOUT: !449 = !DILocation(line: 60, column: 29, scope: !444) +// CHECK:STDOUT: !4 = !DIFile(filename: "char.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !9 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) +// CHECK:STDOUT: !10 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !11 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) +// CHECK:STDOUT: !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !13 = !{!6, !12} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = !{null, !6, !6} +// CHECK:STDOUT: !16 = !DISubroutineType(types: !15) +// CHECK:STDOUT: !17 = !{null} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = !{null, !6, !12} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = !{!10, !6, !6} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !6, !11} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !{null, !6, !9} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = !{null, !6, !10} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !29 = !{null, !6, !7} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !31 = !{null, !6, !8} +// CHECK:STDOUT: !32 = !DISubroutineType(types: !31) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core", scope: null, file: !4, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !39) +// CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !33, type: !12) +// CHECK:STDOUT: !38 = !DILocation(line: 15, column: 39, scope: !33) +// CHECK:STDOUT: !39 = !{!34} +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !4, line: 21, type: !16, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !76) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !6) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 2, scope: !40, type: !6) +// CHECK:STDOUT: !46 = !DILocation(line: 22, column: 3, scope: !40) +// CHECK:STDOUT: !47 = !{null, !6} +// CHECK:STDOUT: !48 = !DISubroutineType(types: !47) +// CHECK:STDOUT: !49 = !DILocation(line: 23, column: 11, scope: !40) +// CHECK:STDOUT: !50 = !{!7, !6} +// CHECK:STDOUT: !51 = !DISubroutineType(types: !50) +// CHECK:STDOUT: !52 = !DILocation(line: 23, column: 3, scope: !40) +// CHECK:STDOUT: !53 = !{null, !7} +// CHECK:STDOUT: !54 = !DISubroutineType(types: !53) +// CHECK:STDOUT: !55 = !DILocation(line: 24, column: 11, scope: !40) +// CHECK:STDOUT: !56 = !{!8, !6} +// CHECK:STDOUT: !57 = !DISubroutineType(types: !56) +// CHECK:STDOUT: !58 = !DILocation(line: 24, column: 3, scope: !40) +// CHECK:STDOUT: !59 = !{null, !8} +// CHECK:STDOUT: !60 = !DISubroutineType(types: !59) +// CHECK:STDOUT: !61 = !DILocation(line: 26, column: 11, scope: !40) +// CHECK:STDOUT: !62 = !{!9, !6} +// CHECK:STDOUT: !63 = !DISubroutineType(types: !62) +// CHECK:STDOUT: !64 = !DILocation(line: 26, column: 3, scope: !40) +// CHECK:STDOUT: !67 = !DILocation(line: 27, column: 11, scope: !40) +// CHECK:STDOUT: !68 = !{!10, !6} +// CHECK:STDOUT: !69 = !DISubroutineType(types: !68) +// CHECK:STDOUT: !70 = !DILocation(line: 27, column: 3, scope: !40) +// CHECK:STDOUT: !74 = !DILocation(line: 28, column: 3, scope: !40) +// CHECK:STDOUT: !75 = !DILocation(line: 21, column: 1, scope: !40) +// CHECK:STDOUT: !76 = !{!41, !42} +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "ConvertConstant", linkageName: "_CConvertConstant.Main", scope: null, file: !4, line: 31, type: !18, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !78 = !DILocation(line: 32, column: 3, scope: !77) +// CHECK:STDOUT: !79 = !DILocation(line: 33, column: 11, scope: !77) +// CHECK:STDOUT: !80 = !DILocation(line: 33, column: 3, scope: !77) +// CHECK:STDOUT: !81 = !DILocation(line: 34, column: 11, scope: !77) +// CHECK:STDOUT: !82 = !DILocation(line: 34, column: 3, scope: !77) +// CHECK:STDOUT: !83 = !DILocation(line: 35, column: 11, scope: !77) +// CHECK:STDOUT: !84 = !DILocation(line: 35, column: 3, scope: !77) +// CHECK:STDOUT: !85 = !DILocation(line: 36, column: 11, scope: !77) +// CHECK:STDOUT: !86 = !DILocation(line: 36, column: 3, scope: !77) +// CHECK:STDOUT: !87 = !DILocation(line: 37, column: 3, scope: !77) +// CHECK:STDOUT: !88 = !DILocation(line: 31, column: 1, scope: !77) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "CompareCharChar", linkageName: "_CCompareCharChar.Main", scope: null, file: !4, line: 40, type: !16, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !89, type: !6) +// CHECK:STDOUT: !91 = !DILocalVariable(arg: 2, scope: !89, type: !6) +// CHECK:STDOUT: !94 = !DILocation(line: 41, column: 11, scope: !89) +// CHECK:STDOUT: !96 = !DILocation(line: 41, column: 3, scope: !89) +// CHECK:STDOUT: !97 = !{null, !12} +// CHECK:STDOUT: !98 = !DISubroutineType(types: !97) +// CHECK:STDOUT: !99 = !DILocation(line: 42, column: 11, scope: !89) +// CHECK:STDOUT: !101 = !DILocation(line: 42, column: 3, scope: !89) +// CHECK:STDOUT: !102 = !DILocation(line: 43, column: 11, scope: !89) +// CHECK:STDOUT: !104 = !DILocation(line: 43, column: 3, scope: !89) +// CHECK:STDOUT: !105 = !DILocation(line: 44, column: 11, scope: !89) +// CHECK:STDOUT: !107 = !DILocation(line: 44, column: 3, scope: !89) +// CHECK:STDOUT: !108 = !DILocation(line: 45, column: 11, scope: !89) +// CHECK:STDOUT: !110 = !DILocation(line: 45, column: 3, scope: !89) +// CHECK:STDOUT: !111 = !DILocation(line: 46, column: 11, scope: !89) +// CHECK:STDOUT: !113 = !DILocation(line: 46, column: 3, scope: !89) +// CHECK:STDOUT: !114 = !DILocation(line: 40, column: 1, scope: !89) +// CHECK:STDOUT: !115 = !{!90, !91} +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "CompareCharCharLike", linkageName: "_CCompareCharCharLike.Main", scope: null, file: !4, line: 49, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !158) +// CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !6) +// CHECK:STDOUT: !118 = !DILocalVariable(arg: 2, scope: !116, type: !12) +// CHECK:STDOUT: !121 = !DILocation(line: 50, column: 11, scope: !116) +// CHECK:STDOUT: !122 = !DILocation(line: 50, column: 16, scope: !116) +// CHECK:STDOUT: !123 = !DILocation(line: 50, column: 3, scope: !116) +// CHECK:STDOUT: !124 = !DILocation(line: 51, column: 11, scope: !116) +// CHECK:STDOUT: !125 = !DILocation(line: 51, column: 16, scope: !116) +// CHECK:STDOUT: !126 = !DILocation(line: 51, column: 3, scope: !116) +// CHECK:STDOUT: !127 = !DILocation(line: 52, column: 11, scope: !116) +// CHECK:STDOUT: !128 = !DILocation(line: 52, column: 15, scope: !116) +// CHECK:STDOUT: !129 = !DILocation(line: 52, column: 3, scope: !116) +// CHECK:STDOUT: !130 = !DILocation(line: 53, column: 11, scope: !116) +// CHECK:STDOUT: !131 = !DILocation(line: 53, column: 16, scope: !116) +// CHECK:STDOUT: !132 = !DILocation(line: 53, column: 3, scope: !116) +// CHECK:STDOUT: !133 = !DILocation(line: 54, column: 11, scope: !116) +// CHECK:STDOUT: !134 = !DILocation(line: 54, column: 15, scope: !116) +// CHECK:STDOUT: !135 = !DILocation(line: 54, column: 3, scope: !116) +// CHECK:STDOUT: !136 = !DILocation(line: 55, column: 11, scope: !116) +// CHECK:STDOUT: !137 = !DILocation(line: 55, column: 16, scope: !116) +// CHECK:STDOUT: !138 = !DILocation(line: 55, column: 3, scope: !116) +// CHECK:STDOUT: !139 = !DILocation(line: 57, column: 11, scope: !116) +// CHECK:STDOUT: !141 = !DILocation(line: 57, column: 3, scope: !116) +// CHECK:STDOUT: !142 = !DILocation(line: 58, column: 11, scope: !116) +// CHECK:STDOUT: !144 = !DILocation(line: 58, column: 3, scope: !116) +// CHECK:STDOUT: !145 = !DILocation(line: 59, column: 11, scope: !116) +// CHECK:STDOUT: !147 = !DILocation(line: 59, column: 3, scope: !116) +// CHECK:STDOUT: !148 = !DILocation(line: 60, column: 11, scope: !116) +// CHECK:STDOUT: !150 = !DILocation(line: 60, column: 3, scope: !116) +// CHECK:STDOUT: !151 = !DILocation(line: 61, column: 11, scope: !116) +// CHECK:STDOUT: !153 = !DILocation(line: 61, column: 3, scope: !116) +// CHECK:STDOUT: !154 = !DILocation(line: 62, column: 11, scope: !116) +// CHECK:STDOUT: !156 = !DILocation(line: 62, column: 3, scope: !116) +// CHECK:STDOUT: !157 = !DILocation(line: 49, column: 1, scope: !116) +// CHECK:STDOUT: !158 = !{!117, !118} +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "SubCharChar", linkageName: "_CSubCharChar.Main", scope: null, file: !4, line: 65, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !174) +// CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !6) +// CHECK:STDOUT: !161 = !DILocalVariable(arg: 2, scope: !159, type: !12) +// CHECK:STDOUT: !164 = !DILocation(line: 66, column: 11, scope: !159) +// CHECK:STDOUT: !166 = !DILocation(line: 66, column: 3, scope: !159) +// CHECK:STDOUT: !167 = !DILocation(line: 67, column: 11, scope: !159) +// CHECK:STDOUT: !168 = !DILocation(line: 67, column: 15, scope: !159) +// CHECK:STDOUT: !169 = !DILocation(line: 67, column: 3, scope: !159) +// CHECK:STDOUT: !170 = !DILocation(line: 68, column: 11, scope: !159) +// CHECK:STDOUT: !172 = !DILocation(line: 68, column: 3, scope: !159) +// CHECK:STDOUT: !173 = !DILocation(line: 65, column: 1, scope: !159) +// CHECK:STDOUT: !174 = !{!160, !161} +// CHECK:STDOUT: !175 = distinct !DISubprogram(name: "AddSubInt8", linkageName: "_CAddSubInt8.Main", scope: null, file: !4, line: 71, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) +// CHECK:STDOUT: !176 = !DILocalVariable(arg: 1, scope: !175, type: !6) +// CHECK:STDOUT: !177 = !DILocalVariable(arg: 2, scope: !175, type: !11) +// CHECK:STDOUT: !180 = !DILocation(line: 72, column: 11, scope: !175) +// CHECK:STDOUT: !182 = !{!6, !6, !11} +// CHECK:STDOUT: !183 = !DISubroutineType(types: !182) +// CHECK:STDOUT: !184 = !DILocation(line: 72, column: 3, scope: !175) +// CHECK:STDOUT: !185 = !DILocation(line: 73, column: 11, scope: !175) +// CHECK:STDOUT: !187 = !{!6, !11, !6} +// CHECK:STDOUT: !188 = !DISubroutineType(types: !187) +// CHECK:STDOUT: !189 = !DILocation(line: 73, column: 3, scope: !175) +// CHECK:STDOUT: !190 = !DILocation(line: 74, column: 11, scope: !175) +// CHECK:STDOUT: !192 = !DILocation(line: 74, column: 3, scope: !175) +// CHECK:STDOUT: !193 = !DILocation(line: 71, column: 1, scope: !175) +// CHECK:STDOUT: !194 = !{!176, !177} +// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "AddSubInt16", linkageName: "_CAddSubInt16.Main", scope: null, file: !4, line: 77, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !214) +// CHECK:STDOUT: !196 = !DILocalVariable(arg: 1, scope: !195, type: !6) +// CHECK:STDOUT: !197 = !DILocalVariable(arg: 2, scope: !195, type: !9) +// CHECK:STDOUT: !200 = !DILocation(line: 78, column: 11, scope: !195) +// CHECK:STDOUT: !202 = !{!6, !6, !9} +// CHECK:STDOUT: !203 = !DISubroutineType(types: !202) +// CHECK:STDOUT: !204 = !DILocation(line: 78, column: 3, scope: !195) +// CHECK:STDOUT: !205 = !DILocation(line: 79, column: 11, scope: !195) +// CHECK:STDOUT: !207 = !{!6, !9, !6} +// CHECK:STDOUT: !208 = !DISubroutineType(types: !207) +// CHECK:STDOUT: !209 = !DILocation(line: 79, column: 3, scope: !195) +// CHECK:STDOUT: !210 = !DILocation(line: 80, column: 11, scope: !195) +// CHECK:STDOUT: !212 = !DILocation(line: 80, column: 3, scope: !195) +// CHECK:STDOUT: !213 = !DILocation(line: 77, column: 1, scope: !195) +// CHECK:STDOUT: !214 = !{!196, !197} +// CHECK:STDOUT: !215 = distinct !DISubprogram(name: "AddSubInt32", linkageName: "_CAddSubInt32.Main", scope: null, file: !4, line: 83, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !234) +// CHECK:STDOUT: !216 = !DILocalVariable(arg: 1, scope: !215, type: !6) +// CHECK:STDOUT: !217 = !DILocalVariable(arg: 2, scope: !215, type: !10) +// CHECK:STDOUT: !220 = !DILocation(line: 84, column: 11, scope: !215) +// CHECK:STDOUT: !222 = !{!6, !6, !10} +// CHECK:STDOUT: !223 = !DISubroutineType(types: !222) +// CHECK:STDOUT: !224 = !DILocation(line: 84, column: 3, scope: !215) +// CHECK:STDOUT: !225 = !DILocation(line: 85, column: 11, scope: !215) +// CHECK:STDOUT: !227 = !{!6, !10, !6} +// CHECK:STDOUT: !228 = !DISubroutineType(types: !227) +// CHECK:STDOUT: !229 = !DILocation(line: 85, column: 3, scope: !215) +// CHECK:STDOUT: !230 = !DILocation(line: 86, column: 11, scope: !215) +// CHECK:STDOUT: !232 = !DILocation(line: 86, column: 3, scope: !215) +// CHECK:STDOUT: !233 = !DILocation(line: 83, column: 1, scope: !215) +// CHECK:STDOUT: !234 = !{!216, !217} +// CHECK:STDOUT: !235 = distinct !DISubprogram(name: "AddSubUInt8", linkageName: "_CAddSubUInt8.Main", scope: null, file: !4, line: 89, type: !16, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !252) +// CHECK:STDOUT: !236 = !DILocalVariable(arg: 1, scope: !235, type: !6) +// CHECK:STDOUT: !237 = !DILocalVariable(arg: 2, scope: !235, type: !6) +// CHECK:STDOUT: !240 = !DILocation(line: 90, column: 11, scope: !235) +// CHECK:STDOUT: !242 = !{!6, !6, !6} +// CHECK:STDOUT: !243 = !DISubroutineType(types: !242) +// CHECK:STDOUT: !244 = !DILocation(line: 90, column: 3, scope: !235) +// CHECK:STDOUT: !245 = !DILocation(line: 91, column: 11, scope: !235) +// CHECK:STDOUT: !247 = !DILocation(line: 91, column: 3, scope: !235) +// CHECK:STDOUT: !248 = !DILocation(line: 92, column: 11, scope: !235) +// CHECK:STDOUT: !250 = !DILocation(line: 92, column: 3, scope: !235) +// CHECK:STDOUT: !251 = !DILocation(line: 89, column: 1, scope: !235) +// CHECK:STDOUT: !252 = !{!236, !237} +// CHECK:STDOUT: !253 = distinct !DISubprogram(name: "AddSubUInt16", linkageName: "_CAddSubUInt16.Main", scope: null, file: !4, line: 95, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !272) +// CHECK:STDOUT: !254 = !DILocalVariable(arg: 1, scope: !253, type: !6) +// CHECK:STDOUT: !255 = !DILocalVariable(arg: 2, scope: !253, type: !7) +// CHECK:STDOUT: !258 = !DILocation(line: 96, column: 11, scope: !253) +// CHECK:STDOUT: !260 = !{!6, !6, !7} +// CHECK:STDOUT: !261 = !DISubroutineType(types: !260) +// CHECK:STDOUT: !262 = !DILocation(line: 96, column: 3, scope: !253) +// CHECK:STDOUT: !263 = !DILocation(line: 97, column: 11, scope: !253) +// CHECK:STDOUT: !265 = !{!6, !7, !6} +// CHECK:STDOUT: !266 = !DISubroutineType(types: !265) +// CHECK:STDOUT: !267 = !DILocation(line: 97, column: 3, scope: !253) +// CHECK:STDOUT: !268 = !DILocation(line: 98, column: 11, scope: !253) +// CHECK:STDOUT: !270 = !DILocation(line: 98, column: 3, scope: !253) +// CHECK:STDOUT: !271 = !DILocation(line: 95, column: 1, scope: !253) +// CHECK:STDOUT: !272 = !{!254, !255} +// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "AddSubUInt32", linkageName: "_CAddSubUInt32.Main", scope: null, file: !4, line: 101, type: !32, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !292) +// CHECK:STDOUT: !274 = !DILocalVariable(arg: 1, scope: !273, type: !6) +// CHECK:STDOUT: !275 = !DILocalVariable(arg: 2, scope: !273, type: !8) +// CHECK:STDOUT: !278 = !DILocation(line: 102, column: 11, scope: !273) +// CHECK:STDOUT: !280 = !{!6, !6, !8} +// CHECK:STDOUT: !281 = !DISubroutineType(types: !280) +// CHECK:STDOUT: !282 = !DILocation(line: 102, column: 3, scope: !273) +// CHECK:STDOUT: !283 = !DILocation(line: 103, column: 11, scope: !273) +// CHECK:STDOUT: !285 = !{!6, !8, !6} +// CHECK:STDOUT: !286 = !DISubroutineType(types: !285) +// CHECK:STDOUT: !287 = !DILocation(line: 103, column: 3, scope: !273) +// CHECK:STDOUT: !288 = !DILocation(line: 104, column: 11, scope: !273) +// CHECK:STDOUT: !290 = !DILocation(line: 104, column: 3, scope: !273) +// CHECK:STDOUT: !291 = !DILocation(line: 101, column: 1, scope: !273) +// CHECK:STDOUT: !292 = !{!274, !275} +// CHECK:STDOUT: !293 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.15688e19507865c6", scope: null, file: !4, line: 19, type: !48, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !297) +// CHECK:STDOUT: !294 = !DILocalVariable(arg: 1, scope: !293, type: !6) +// CHECK:STDOUT: !296 = !DILocation(line: 19, column: 1, scope: !293) +// CHECK:STDOUT: !297 = !{!294} +// CHECK:STDOUT: !298 = !DIFile(filename: "{{.*}}/prelude/types/char.carbon", directory: "") +// CHECK:STDOUT: !299 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.d183f33d898732ee", scope: null, file: !298, line: 42, type: !51, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !306) +// CHECK:STDOUT: !300 = !DILocalVariable(arg: 1, scope: !299, type: !6) +// CHECK:STDOUT: !305 = !DILocation(line: 43, column: 5, scope: !299) +// CHECK:STDOUT: !306 = !{!300} +// CHECK:STDOUT: !307 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.147e0bd019a31663", scope: null, file: !4, line: 19, type: !54, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !311) +// CHECK:STDOUT: !308 = !DILocalVariable(arg: 1, scope: !307, type: !7) +// CHECK:STDOUT: !310 = !DILocation(line: 19, column: 1, scope: !307) +// CHECK:STDOUT: !311 = !{!308} +// CHECK:STDOUT: !312 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.b3e492be1929cf8f", scope: null, file: !298, line: 42, type: !57, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !319) +// CHECK:STDOUT: !313 = !DILocalVariable(arg: 1, scope: !312, type: !6) +// CHECK:STDOUT: !318 = !DILocation(line: 43, column: 5, scope: !312) +// CHECK:STDOUT: !319 = !{!313} +// CHECK:STDOUT: !320 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.eadca4a969cf6f21", scope: null, file: !4, line: 19, type: !60, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !324) +// CHECK:STDOUT: !321 = !DILocalVariable(arg: 1, scope: !320, type: !8) +// CHECK:STDOUT: !323 = !DILocation(line: 19, column: 1, scope: !320) +// CHECK:STDOUT: !324 = !{!321} +// CHECK:STDOUT: !325 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.05fbd7e2dbdd4666", scope: null, file: !298, line: 42, type: !63, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !332) +// CHECK:STDOUT: !326 = !DILocalVariable(arg: 1, scope: !325, type: !6) +// CHECK:STDOUT: !331 = !DILocation(line: 43, column: 5, scope: !325) +// CHECK:STDOUT: !332 = !{!326} +// CHECK:STDOUT: !338 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1", scope: null, file: !298, line: 42, type: !69, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !345) +// CHECK:STDOUT: !339 = !DILocalVariable(arg: 1, scope: !338, type: !6) +// CHECK:STDOUT: !344 = !DILocation(line: 43, column: 5, scope: !338) +// CHECK:STDOUT: !345 = !{!339} +// CHECK:STDOUT: !356 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.a4c7fafe8a72cac4", scope: null, file: !4, line: 19, type: !98, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !360) +// CHECK:STDOUT: !357 = !DILocalVariable(arg: 1, scope: !356, type: !12) +// CHECK:STDOUT: !359 = !DILocation(line: 19, column: 1, scope: !356) +// CHECK:STDOUT: !360 = !{!357} +// CHECK:STDOUT: !361 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.7c3e388e0087434a.Core.9188b823847778f0", scope: null, file: !298, line: 129, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !372) +// CHECK:STDOUT: !362 = !DILocalVariable(arg: 1, scope: !361, type: !6) +// CHECK:STDOUT: !363 = !DILocalVariable(arg: 2, scope: !361, type: !6) +// CHECK:STDOUT: !368 = !DILocation(line: 130, column: 13, scope: !361) +// CHECK:STDOUT: !369 = !DILocation(line: 130, column: 29, scope: !361) +// CHECK:STDOUT: !370 = !DILocation(line: 130, column: 12, scope: !361) +// CHECK:STDOUT: !371 = !DILocation(line: 130, column: 5, scope: !361) +// CHECK:STDOUT: !372 = !{!362, !363} +// CHECK:STDOUT: !373 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.9188b823847778f0", scope: null, file: !298, line: 123, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !384) +// CHECK:STDOUT: !374 = !DILocalVariable(arg: 1, scope: !373, type: !6) +// CHECK:STDOUT: !375 = !DILocalVariable(arg: 2, scope: !373, type: !6) +// CHECK:STDOUT: !380 = !DILocation(line: 124, column: 13, scope: !373) +// CHECK:STDOUT: !381 = !DILocation(line: 124, column: 29, scope: !373) +// CHECK:STDOUT: !382 = !DILocation(line: 124, column: 12, scope: !373) +// CHECK:STDOUT: !383 = !DILocation(line: 124, column: 5, scope: !373) +// CHECK:STDOUT: !384 = !{!374, !375} +// CHECK:STDOUT: !385 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.be6db155159bf0e6", scope: null, file: !298, line: 94, type: !183, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !397) +// CHECK:STDOUT: !386 = !DILocalVariable(arg: 1, scope: !385, type: !6) +// CHECK:STDOUT: !387 = !DILocalVariable(arg: 2, scope: !385, type: !11) +// CHECK:STDOUT: !394 = !DILocation(line: 96, column: 13, scope: !385) +// CHECK:STDOUT: !396 = !DILocation(line: 96, column: 5, scope: !385) +// CHECK:STDOUT: !397 = !{!386, !387} +// CHECK:STDOUT: !398 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.be6db155159bf0e6", scope: null, file: !298, line: 102, type: !188, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !410) +// CHECK:STDOUT: !399 = !DILocalVariable(arg: 1, scope: !398, type: !11) +// CHECK:STDOUT: !400 = !DILocalVariable(arg: 2, scope: !398, type: !6) +// CHECK:STDOUT: !407 = !DILocation(line: 104, column: 13, scope: !398) +// CHECK:STDOUT: !409 = !DILocation(line: 104, column: 5, scope: !398) +// CHECK:STDOUT: !410 = !{!399, !400} +// CHECK:STDOUT: !411 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.be6db155159bf0e6", scope: null, file: !298, line: 110, type: !183, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !423) +// CHECK:STDOUT: !412 = !DILocalVariable(arg: 1, scope: !411, type: !6) +// CHECK:STDOUT: !413 = !DILocalVariable(arg: 2, scope: !411, type: !11) +// CHECK:STDOUT: !420 = !DILocation(line: 112, column: 13, scope: !411) +// CHECK:STDOUT: !422 = !DILocation(line: 112, column: 5, scope: !411) +// CHECK:STDOUT: !423 = !{!412, !413} +// CHECK:STDOUT: !424 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0", scope: null, file: !298, line: 94, type: !203, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !436) +// CHECK:STDOUT: !425 = !DILocalVariable(arg: 1, scope: !424, type: !6) +// CHECK:STDOUT: !426 = !DILocalVariable(arg: 2, scope: !424, type: !9) +// CHECK:STDOUT: !432 = !DILocation(line: 96, column: 29, scope: !424) +// CHECK:STDOUT: !433 = !DILocation(line: 96, column: 13, scope: !424) +// CHECK:STDOUT: !435 = !DILocation(line: 96, column: 5, scope: !424) +// CHECK:STDOUT: !436 = !{!425, !426} +// CHECK:STDOUT: !437 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.b2ec6933266ee2f0", scope: null, file: !298, line: 102, type: !208, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !449) +// CHECK:STDOUT: !438 = !DILocalVariable(arg: 1, scope: !437, type: !9) +// CHECK:STDOUT: !439 = !DILocalVariable(arg: 2, scope: !437, type: !6) +// CHECK:STDOUT: !444 = !DILocation(line: 104, column: 14, scope: !437) +// CHECK:STDOUT: !446 = !DILocation(line: 104, column: 13, scope: !437) +// CHECK:STDOUT: !448 = !DILocation(line: 104, column: 5, scope: !437) +// CHECK:STDOUT: !449 = !{!438, !439} +// CHECK:STDOUT: !450 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.b2ec6933266ee2f0", scope: null, file: !298, line: 110, type: !203, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !462) +// CHECK:STDOUT: !451 = !DILocalVariable(arg: 1, scope: !450, type: !6) +// CHECK:STDOUT: !452 = !DILocalVariable(arg: 2, scope: !450, type: !9) +// CHECK:STDOUT: !458 = !DILocation(line: 112, column: 29, scope: !450) +// CHECK:STDOUT: !459 = !DILocation(line: 112, column: 13, scope: !450) +// CHECK:STDOUT: !461 = !DILocation(line: 112, column: 5, scope: !450) +// CHECK:STDOUT: !462 = !{!451, !452} +// CHECK:STDOUT: !463 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7", scope: null, file: !298, line: 94, type: !223, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !475) +// CHECK:STDOUT: !464 = !DILocalVariable(arg: 1, scope: !463, type: !6) +// CHECK:STDOUT: !465 = !DILocalVariable(arg: 2, scope: !463, type: !10) +// CHECK:STDOUT: !471 = !DILocation(line: 96, column: 29, scope: !463) +// CHECK:STDOUT: !472 = !DILocation(line: 96, column: 13, scope: !463) +// CHECK:STDOUT: !474 = !DILocation(line: 96, column: 5, scope: !463) +// CHECK:STDOUT: !475 = !{!464, !465} +// CHECK:STDOUT: !476 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3c06bceea9ba44a7", scope: null, file: !298, line: 102, type: !228, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !488) +// CHECK:STDOUT: !477 = !DILocalVariable(arg: 1, scope: !476, type: !10) +// CHECK:STDOUT: !478 = !DILocalVariable(arg: 2, scope: !476, type: !6) +// CHECK:STDOUT: !483 = !DILocation(line: 104, column: 14, scope: !476) +// CHECK:STDOUT: !485 = !DILocation(line: 104, column: 13, scope: !476) +// CHECK:STDOUT: !487 = !DILocation(line: 104, column: 5, scope: !476) +// CHECK:STDOUT: !488 = !{!477, !478} +// CHECK:STDOUT: !489 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3c06bceea9ba44a7", scope: null, file: !298, line: 110, type: !223, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !501) +// CHECK:STDOUT: !490 = !DILocalVariable(arg: 1, scope: !489, type: !6) +// CHECK:STDOUT: !491 = !DILocalVariable(arg: 2, scope: !489, type: !10) +// CHECK:STDOUT: !497 = !DILocation(line: 112, column: 29, scope: !489) +// CHECK:STDOUT: !498 = !DILocation(line: 112, column: 13, scope: !489) +// CHECK:STDOUT: !500 = !DILocation(line: 112, column: 5, scope: !489) +// CHECK:STDOUT: !501 = !{!490, !491} +// CHECK:STDOUT: !502 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72", scope: null, file: !298, line: 94, type: !243, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !514) +// CHECK:STDOUT: !503 = !DILocalVariable(arg: 1, scope: !502, type: !6) +// CHECK:STDOUT: !504 = !DILocalVariable(arg: 2, scope: !502, type: !6) +// CHECK:STDOUT: !511 = !DILocation(line: 96, column: 13, scope: !502) +// CHECK:STDOUT: !513 = !DILocation(line: 96, column: 5, scope: !502) +// CHECK:STDOUT: !514 = !{!503, !504} +// CHECK:STDOUT: !515 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.c8c7baf2b5955a72", scope: null, file: !298, line: 102, type: !243, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !527) +// CHECK:STDOUT: !516 = !DILocalVariable(arg: 1, scope: !515, type: !6) +// CHECK:STDOUT: !517 = !DILocalVariable(arg: 2, scope: !515, type: !6) +// CHECK:STDOUT: !524 = !DILocation(line: 104, column: 13, scope: !515) +// CHECK:STDOUT: !526 = !DILocation(line: 104, column: 5, scope: !515) +// CHECK:STDOUT: !527 = !{!516, !517} +// CHECK:STDOUT: !528 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.c8c7baf2b5955a72", scope: null, file: !298, line: 110, type: !243, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !540) +// CHECK:STDOUT: !529 = !DILocalVariable(arg: 1, scope: !528, type: !6) +// CHECK:STDOUT: !530 = !DILocalVariable(arg: 2, scope: !528, type: !6) +// CHECK:STDOUT: !537 = !DILocation(line: 112, column: 13, scope: !528) +// CHECK:STDOUT: !539 = !DILocation(line: 112, column: 5, scope: !528) +// CHECK:STDOUT: !540 = !{!529, !530} +// CHECK:STDOUT: !541 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.61bb220507f77095", scope: null, file: !298, line: 94, type: !261, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !553) +// CHECK:STDOUT: !542 = !DILocalVariable(arg: 1, scope: !541, type: !6) +// CHECK:STDOUT: !543 = !DILocalVariable(arg: 2, scope: !541, type: !7) +// CHECK:STDOUT: !549 = !DILocation(line: 96, column: 29, scope: !541) +// CHECK:STDOUT: !550 = !DILocation(line: 96, column: 13, scope: !541) +// CHECK:STDOUT: !552 = !DILocation(line: 96, column: 5, scope: !541) +// CHECK:STDOUT: !553 = !{!542, !543} +// CHECK:STDOUT: !554 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.61bb220507f77095", scope: null, file: !298, line: 102, type: !266, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !566) +// CHECK:STDOUT: !555 = !DILocalVariable(arg: 1, scope: !554, type: !7) +// CHECK:STDOUT: !556 = !DILocalVariable(arg: 2, scope: !554, type: !6) +// CHECK:STDOUT: !561 = !DILocation(line: 104, column: 14, scope: !554) +// CHECK:STDOUT: !563 = !DILocation(line: 104, column: 13, scope: !554) +// CHECK:STDOUT: !565 = !DILocation(line: 104, column: 5, scope: !554) +// CHECK:STDOUT: !566 = !{!555, !556} +// CHECK:STDOUT: !567 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.61bb220507f77095", scope: null, file: !298, line: 110, type: !261, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !579) +// CHECK:STDOUT: !568 = !DILocalVariable(arg: 1, scope: !567, type: !6) +// CHECK:STDOUT: !569 = !DILocalVariable(arg: 2, scope: !567, type: !7) +// CHECK:STDOUT: !575 = !DILocation(line: 112, column: 29, scope: !567) +// CHECK:STDOUT: !576 = !DILocation(line: 112, column: 13, scope: !567) +// CHECK:STDOUT: !578 = !DILocation(line: 112, column: 5, scope: !567) +// CHECK:STDOUT: !579 = !{!568, !569} +// CHECK:STDOUT: !580 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4494a819d074492e", scope: null, file: !298, line: 94, type: !281, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !592) +// CHECK:STDOUT: !581 = !DILocalVariable(arg: 1, scope: !580, type: !6) +// CHECK:STDOUT: !582 = !DILocalVariable(arg: 2, scope: !580, type: !8) +// CHECK:STDOUT: !588 = !DILocation(line: 96, column: 29, scope: !580) +// CHECK:STDOUT: !589 = !DILocation(line: 96, column: 13, scope: !580) +// CHECK:STDOUT: !591 = !DILocation(line: 96, column: 5, scope: !580) +// CHECK:STDOUT: !592 = !{!581, !582} +// CHECK:STDOUT: !593 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4494a819d074492e", scope: null, file: !298, line: 102, type: !286, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !605) +// CHECK:STDOUT: !594 = !DILocalVariable(arg: 1, scope: !593, type: !8) +// CHECK:STDOUT: !595 = !DILocalVariable(arg: 2, scope: !593, type: !6) +// CHECK:STDOUT: !600 = !DILocation(line: 104, column: 14, scope: !593) +// CHECK:STDOUT: !602 = !DILocation(line: 104, column: 13, scope: !593) +// CHECK:STDOUT: !604 = !DILocation(line: 104, column: 5, scope: !593) +// CHECK:STDOUT: !605 = !{!594, !595} +// CHECK:STDOUT: !606 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4494a819d074492e", scope: null, file: !298, line: 110, type: !281, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !618) +// CHECK:STDOUT: !607 = !DILocalVariable(arg: 1, scope: !606, type: !6) +// CHECK:STDOUT: !608 = !DILocalVariable(arg: 2, scope: !606, type: !8) +// CHECK:STDOUT: !614 = !DILocation(line: 112, column: 29, scope: !606) +// CHECK:STDOUT: !615 = !DILocation(line: 112, column: 13, scope: !606) +// CHECK:STDOUT: !617 = !DILocation(line: 112, column: 5, scope: !606) +// CHECK:STDOUT: !618 = !{!607, !608} +// CHECK:STDOUT: !619 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") +// CHECK:STDOUT: !620 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.335e322ca15c76a1", scope: null, file: !619, line: 88, type: !51, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !628) +// CHECK:STDOUT: !621 = !DILocalVariable(arg: 1, scope: !620, type: !6) +// CHECK:STDOUT: !626 = !DILocation(line: 89, column: 12, scope: !620) +// CHECK:STDOUT: !627 = !DILocation(line: 89, column: 5, scope: !620) +// CHECK:STDOUT: !628 = !{!621} +// CHECK:STDOUT: !629 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84", scope: null, file: !619, line: 88, type: !57, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !637) +// CHECK:STDOUT: !630 = !DILocalVariable(arg: 1, scope: !629, type: !6) +// CHECK:STDOUT: !635 = !DILocation(line: 89, column: 12, scope: !629) +// CHECK:STDOUT: !636 = !DILocation(line: 89, column: 5, scope: !629) +// CHECK:STDOUT: !637 = !{!630} +// CHECK:STDOUT: !638 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.90fccc2ec10748e3", scope: null, file: !619, line: 88, type: !63, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !646) +// CHECK:STDOUT: !639 = !DILocalVariable(arg: 1, scope: !638, type: !6) +// CHECK:STDOUT: !644 = !DILocation(line: 89, column: 12, scope: !638) +// CHECK:STDOUT: !645 = !DILocation(line: 89, column: 5, scope: !638) +// CHECK:STDOUT: !646 = !{!639} +// CHECK:STDOUT: !647 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f", scope: null, file: !619, line: 88, type: !69, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !655) +// CHECK:STDOUT: !648 = !DILocalVariable(arg: 1, scope: !647, type: !6) +// CHECK:STDOUT: !653 = !DILocation(line: 89, column: 12, scope: !647) +// CHECK:STDOUT: !654 = !DILocation(line: 89, column: 5, scope: !647) +// CHECK:STDOUT: !655 = !{!648} +// CHECK:STDOUT: !656 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.e4ef44314f014f83", scope: null, file: !619, line: 72, type: !51, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !666) +// CHECK:STDOUT: !657 = !DILocalVariable(arg: 1, scope: !656, type: !6) +// CHECK:STDOUT: !661 = !DILocation(line: 74, column: 17, scope: !656) +// CHECK:STDOUT: !662 = !{!6, !6} +// CHECK:STDOUT: !663 = !DISubroutineType(types: !662) +// CHECK:STDOUT: !664 = !DILocation(line: 74, column: 12, scope: !656) +// CHECK:STDOUT: !665 = !DILocation(line: 74, column: 5, scope: !656) +// CHECK:STDOUT: !666 = !{!657} +// CHECK:STDOUT: !667 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d", scope: null, file: !619, line: 72, type: !57, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !675) +// CHECK:STDOUT: !668 = !DILocalVariable(arg: 1, scope: !667, type: !6) +// CHECK:STDOUT: !672 = !DILocation(line: 74, column: 17, scope: !667) +// CHECK:STDOUT: !673 = !DILocation(line: 74, column: 12, scope: !667) +// CHECK:STDOUT: !674 = !DILocation(line: 74, column: 5, scope: !667) +// CHECK:STDOUT: !675 = !{!668} +// CHECK:STDOUT: !676 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.4f3746a8c9265ebe", scope: null, file: !619, line: 80, type: !63, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !684) +// CHECK:STDOUT: !677 = !DILocalVariable(arg: 1, scope: !676, type: !6) +// CHECK:STDOUT: !681 = !DILocation(line: 82, column: 17, scope: !676) +// CHECK:STDOUT: !682 = !DILocation(line: 82, column: 12, scope: !676) +// CHECK:STDOUT: !683 = !DILocation(line: 82, column: 5, scope: !676) +// CHECK:STDOUT: !684 = !{!677} +// CHECK:STDOUT: !685 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3", scope: null, file: !619, line: 80, type: !69, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !693) +// CHECK:STDOUT: !686 = !DILocalVariable(arg: 1, scope: !685, type: !6) +// CHECK:STDOUT: !690 = !DILocation(line: 82, column: 17, scope: !685) +// CHECK:STDOUT: !691 = !DILocation(line: 82, column: 12, scope: !685) +// CHECK:STDOUT: !692 = !DILocation(line: 82, column: 5, scope: !685) +// CHECK:STDOUT: !693 = !{!686} +// CHECK:STDOUT: !694 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !619, line: 60, type: !663, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !701) +// CHECK:STDOUT: !695 = !DILocalVariable(arg: 1, scope: !694, type: !6) +// CHECK:STDOUT: !700 = !DILocation(line: 60, column: 29, scope: !694) +// CHECK:STDOUT: !701 = !{!695} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/char_literals.carbon b/toolchain/lower/testdata/primitives/char_literals.carbon index 7e7ec64b2399..d6d08266254c 100644 --- a/toolchain/lower/testdata/primitives/char_literals.carbon +++ b/toolchain/lower/testdata/primitives/char_literals.carbon @@ -82,163 +82,163 @@ fn AddSubInt8() { // CHECK:STDOUT: source_filename = "char_literals.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i8 120, !dbg !11 +// CHECK:STDOUT: ret i8 120, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvert.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CConvert.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !15 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !16 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !17 -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !18 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !19 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !27 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !28 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !31 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !34 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !37 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvertConstant.Main() #0 !dbg !22 { +// CHECK:STDOUT: define void @_CConvertConstant.Main() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !23 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !24 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !25 -// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !26 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !27 -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !45 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !46 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !47 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 120), !dbg !48 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 120), !dbg !49 +// CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCompareChar.Main(i8 %b) #0 !dbg !29 { +// CHECK:STDOUT: define void @_CCompareChar.Main(i8 %b) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call = icmp eq i8 120, %b, !dbg !34 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.Equal.call), !dbg !35 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call = icmp ne i8 120, %b, !dbg !36 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.NotEqual.call), !dbg !37 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call = icmp ult i8 120, %b, !dbg !38 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Less.call), !dbg !39 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 120, %b, !dbg !40 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !41 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call = icmp ugt i8 120, %b, !dbg !42 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Greater.call), !dbg !43 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 120, %b, !dbg !44 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !45 -// CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %b, 120, !dbg !46 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !47 -// CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %b, 120, !dbg !48 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !49 -// CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %b, 120, !dbg !50 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !51 -// CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %b, 120, !dbg !52 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !53 -// CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %b, 120, !dbg !54 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !55 -// CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %b, 120, !dbg !56 -// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !57 -// CHECK:STDOUT: ret void, !dbg !58 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call = icmp eq i8 120, %b, !dbg !55 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.Equal.call), !dbg !56 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call = icmp ne i8 120, %b, !dbg !60 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.NotEqual.call), !dbg !61 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call = icmp ult i8 120, %b, !dbg !63 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Less.call), !dbg !64 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 120, %b, !dbg !66 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !67 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call = icmp ugt i8 120, %b, !dbg !69 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Greater.call), !dbg !70 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 120, %b, !dbg !72 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !73 +// CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %b, 120, !dbg !74 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !75 +// CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %b, 120, !dbg !76 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !77 +// CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %b, 120, !dbg !78 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !79 +// CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %b, 120, !dbg !80 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !81 +// CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %b, 120, !dbg !82 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !83 +// CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %b, 120, !dbg !84 +// CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !85 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CSubCharChar.Main(i8 %c) #0 !dbg !59 { +// CHECK:STDOUT: define void @_CSubCharChar.Main(i8 %c) #0 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !62 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.2afba0967235ad27"(i8 %c, i8 120), !dbg !63 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call), !dbg !64 -// CHECK:STDOUT: %T.as_type.as.SubWith.impl.Op.call = call i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.2afba0967235ad27"(i8 120, i8 %c), !dbg !65 -// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %T.as_type.as.SubWith.impl.Op.call), !dbg !66 -// CHECK:STDOUT: ret void, !dbg !67 +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !91 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.2afba0967235ad27"(i8 %c, i8 120), !dbg !92 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call), !dbg !95 +// CHECK:STDOUT: %T.as_type.as.SubWith.impl.Op.call = call i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.2afba0967235ad27"(i8 120, i8 %c), !dbg !97 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %T.as_type.as.SubWith.impl.Op.call), !dbg !98 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubIntLiteral.Main() #0 !dbg !68 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !69 -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !70 -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !71 -// CHECK:STDOUT: ret void, !dbg !72 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddSubInt8.Main() #0 !dbg !73 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !74 -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !75 -// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !76 -// CHECK:STDOUT: ret void, !dbg !77 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.15688e19507865c6(i8 %x) #0 !dbg !78 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !81 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.147e0bd019a31663(i16 %x) #0 !dbg !82 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !88 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.eadca4a969cf6f21(i32 %x) #0 !dbg !89 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !95 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %x) #0 !dbg !96 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !101 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.084a2801e0f5d754({} %x) #0 !dbg !102 { +// CHECK:STDOUT: define void @_CAddSubIntLiteral.Main() #0 !dbg !101 { // CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !102 +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !103 +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !104 // CHECK:STDOUT: ret void, !dbg !105 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.2afba0967235ad27"(i8 %self, i8 %other) #0 !dbg !106 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !114 -// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !115 -// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !116 -// CHECK:STDOUT: ret i32 %3, !dbg !117 +// CHECK:STDOUT: define void @_CAddSubInt8.Main() #0 !dbg !106 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !107 +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !108 +// CHECK:STDOUT: call void @_CDiscard.Main.084a2801e0f5d754({} zeroinitializer), !dbg !109 +// CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.2afba0967235ad27"(i8 %self, i8 %other) #0 !dbg !118 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !122 -// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !123 -// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !124 -// CHECK:STDOUT: ret i32 %3, !dbg !125 +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.15688e19507865c6(i8 %x) #0 !dbg !111 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !114 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.147e0bd019a31663(i16 %x) #0 !dbg !116 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !119 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.eadca4a969cf6f21(i32 %x) #0 !dbg !121 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !124 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %x) #0 !dbg !141 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !144 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.084a2801e0f5d754({} %x) #0 !dbg !146 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !149 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.2afba0967235ad27"(i8 %self, i8 %other) #0 !dbg !152 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !159 +// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !162 +// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !163 +// CHECK:STDOUT: ret i32 %3, !dbg !164 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.2afba0967235ad27"(i8 %self, i8 %other) #0 !dbg !166 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self), !dbg !173 +// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %other), !dbg !174 +// CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !175 +// CHECK:STDOUT: ret i32 %3, !dbg !176 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @"_COp.Char.Core:SubWith.295cf9b677564c5c.Core"(i8, i8) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self) #0 !dbg !126 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self), !dbg !131 -// CHECK:STDOUT: ret i32 %1, !dbg !131 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1"(i8 %self) #0 !dbg !183 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self), !dbg !189 +// CHECK:STDOUT: ret i32 %1, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self) #0 !dbg !132 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %self), !dbg !136 -// CHECK:STDOUT: ret i32 %1, !dbg !137 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self) #0 !dbg !192 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %self), !dbg !198 +// CHECK:STDOUT: ret i32 %1, !dbg !199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %from) #0 !dbg !138 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !141 -// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !142 -// CHECK:STDOUT: ret i32 %2, !dbg !143 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %from) #0 !dbg !201 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !206 +// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !209 +// CHECK:STDOUT: ret i32 %2, !dbg !210 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !144 { -// CHECK:STDOUT: ret i8 %self, !dbg !149 +// CHECK:STDOUT: define linkonce_odr i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !212 { +// CHECK:STDOUT: ret i8 %self, !dbg !218 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -251,157 +251,157 @@ fn AddSubInt8() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "char_literals.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 39, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !1, line: 21, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null} -// CHECK:STDOUT: !15 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 23, column: 3, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 24, column: 3, scope: !12) -// CHECK:STDOUT: !18 = !DILocation(line: 25, column: 3, scope: !12) -// CHECK:STDOUT: !19 = !DILocation(line: 26, column: 3, scope: !12) -// CHECK:STDOUT: !20 = !DILocation(line: 27, column: 3, scope: !12) -// CHECK:STDOUT: !21 = !DILocation(line: 21, column: 1, scope: !12) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "ConvertConstant", linkageName: "_CConvertConstant.Main", scope: null, file: !1, line: 30, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !23 = !DILocation(line: 31, column: 3, scope: !22) -// CHECK:STDOUT: !24 = !DILocation(line: 32, column: 3, scope: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 33, column: 3, scope: !22) -// CHECK:STDOUT: !26 = !DILocation(line: 34, column: 3, scope: !22) -// CHECK:STDOUT: !27 = !DILocation(line: 35, column: 3, scope: !22) -// CHECK:STDOUT: !28 = !DILocation(line: 30, column: 1, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "CompareChar", linkageName: "_CCompareChar.Main", scope: null, file: !1, line: 38, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !32) -// CHECK:STDOUT: !30 = !DISubroutineType(types: !31) -// CHECK:STDOUT: !31 = !{null, !7} -// CHECK:STDOUT: !32 = !{!33} -// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !29, type: !7) -// CHECK:STDOUT: !34 = !DILocation(line: 41, column: 11, scope: !29) -// CHECK:STDOUT: !35 = !DILocation(line: 41, column: 3, scope: !29) -// CHECK:STDOUT: !36 = !DILocation(line: 42, column: 11, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 42, column: 3, scope: !29) -// CHECK:STDOUT: !38 = !DILocation(line: 43, column: 11, scope: !29) -// CHECK:STDOUT: !39 = !DILocation(line: 43, column: 3, scope: !29) -// CHECK:STDOUT: !40 = !DILocation(line: 44, column: 11, scope: !29) -// CHECK:STDOUT: !41 = !DILocation(line: 44, column: 3, scope: !29) -// CHECK:STDOUT: !42 = !DILocation(line: 45, column: 11, scope: !29) -// CHECK:STDOUT: !43 = !DILocation(line: 45, column: 3, scope: !29) -// CHECK:STDOUT: !44 = !DILocation(line: 46, column: 11, scope: !29) -// CHECK:STDOUT: !45 = !DILocation(line: 46, column: 3, scope: !29) -// CHECK:STDOUT: !46 = !DILocation(line: 48, column: 11, scope: !29) -// CHECK:STDOUT: !47 = !DILocation(line: 48, column: 3, scope: !29) -// CHECK:STDOUT: !48 = !DILocation(line: 49, column: 11, scope: !29) -// CHECK:STDOUT: !49 = !DILocation(line: 49, column: 3, scope: !29) -// CHECK:STDOUT: !50 = !DILocation(line: 50, column: 11, scope: !29) -// CHECK:STDOUT: !51 = !DILocation(line: 50, column: 3, scope: !29) -// CHECK:STDOUT: !52 = !DILocation(line: 51, column: 11, scope: !29) -// CHECK:STDOUT: !53 = !DILocation(line: 51, column: 3, scope: !29) -// CHECK:STDOUT: !54 = !DILocation(line: 52, column: 11, scope: !29) -// CHECK:STDOUT: !55 = !DILocation(line: 52, column: 3, scope: !29) -// CHECK:STDOUT: !56 = !DILocation(line: 53, column: 11, scope: !29) -// CHECK:STDOUT: !57 = !DILocation(line: 53, column: 3, scope: !29) -// CHECK:STDOUT: !58 = !DILocation(line: 38, column: 1, scope: !29) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "SubCharChar", linkageName: "_CSubCharChar.Main", scope: null, file: !1, line: 56, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !60) -// CHECK:STDOUT: !60 = !{!61} -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !59, type: !7) -// CHECK:STDOUT: !62 = !DILocation(line: 57, column: 3, scope: !59) -// CHECK:STDOUT: !63 = !DILocation(line: 58, column: 11, scope: !59) -// CHECK:STDOUT: !64 = !DILocation(line: 58, column: 3, scope: !59) -// CHECK:STDOUT: !65 = !DILocation(line: 59, column: 11, scope: !59) -// CHECK:STDOUT: !66 = !DILocation(line: 59, column: 3, scope: !59) -// CHECK:STDOUT: !67 = !DILocation(line: 56, column: 1, scope: !59) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "AddSubIntLiteral", linkageName: "_CAddSubIntLiteral.Main", scope: null, file: !1, line: 62, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !69 = !DILocation(line: 66, column: 3, scope: !68) -// CHECK:STDOUT: !70 = !DILocation(line: 67, column: 3, scope: !68) -// CHECK:STDOUT: !71 = !DILocation(line: 68, column: 3, scope: !68) -// CHECK:STDOUT: !72 = !DILocation(line: 62, column: 1, scope: !68) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "AddSubInt8", linkageName: "_CAddSubInt8.Main", scope: null, file: !1, line: 71, type: !13, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !74 = !DILocation(line: 75, column: 3, scope: !73) -// CHECK:STDOUT: !75 = !DILocation(line: 76, column: 3, scope: !73) -// CHECK:STDOUT: !76 = !DILocation(line: 77, column: 3, scope: !73) -// CHECK:STDOUT: !77 = !DILocation(line: 71, column: 1, scope: !73) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.15688e19507865c6", scope: null, file: !1, line: 19, type: !30, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !79) -// CHECK:STDOUT: !79 = !{!80} -// CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !78, type: !7) -// CHECK:STDOUT: !81 = !DILocation(line: 19, column: 1, scope: !78) -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.147e0bd019a31663", scope: null, file: !1, line: 19, type: !83, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !86) -// CHECK:STDOUT: !83 = !DISubroutineType(types: !84) -// CHECK:STDOUT: !84 = !{null, !85} -// CHECK:STDOUT: !85 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !86 = !{!87} -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !82, type: !85) -// CHECK:STDOUT: !88 = !DILocation(line: 19, column: 1, scope: !82) -// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.eadca4a969cf6f21", scope: null, file: !1, line: 19, type: !90, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !93) -// CHECK:STDOUT: !90 = !DISubroutineType(types: !91) -// CHECK:STDOUT: !91 = !{null, !92} -// CHECK:STDOUT: !92 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !93 = !{!94} -// CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !89, type: !92) -// CHECK:STDOUT: !95 = !DILocation(line: 19, column: 1, scope: !89) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.a4c7fafe8a72cac4", scope: null, file: !1, line: 19, type: !97, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !99) -// CHECK:STDOUT: !97 = !DISubroutineType(types: !98) -// CHECK:STDOUT: !98 = !{null, !8} -// CHECK:STDOUT: !99 = !{!100} -// CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !96, type: !8) -// CHECK:STDOUT: !101 = !DILocation(line: 19, column: 1, scope: !96) -// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.084a2801e0f5d754", scope: null, file: !1, line: 19, type: !97, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !103) -// CHECK:STDOUT: !103 = !{!104} -// CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !102, type: !8) -// CHECK:STDOUT: !105 = !DILocation(line: 19, column: 1, scope: !102) -// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.7c3e388e0087434a.Core.2afba0967235ad27", scope: null, file: !107, line: 129, type: !108, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !111) -// CHECK:STDOUT: !107 = !DIFile(filename: "{{.*}}/prelude/types/char.carbon", directory: "") -// CHECK:STDOUT: !108 = !DISubroutineType(types: !109) -// CHECK:STDOUT: !109 = !{!110, !7, !7} -// CHECK:STDOUT: !110 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !111 = !{!112, !113} -// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !106, type: !7) -// CHECK:STDOUT: !113 = !DILocalVariable(arg: 2, scope: !106, type: !7) -// CHECK:STDOUT: !114 = !DILocation(line: 130, column: 13, scope: !106) -// CHECK:STDOUT: !115 = !DILocation(line: 130, column: 29, scope: !106) -// CHECK:STDOUT: !116 = !DILocation(line: 130, column: 12, scope: !106) -// CHECK:STDOUT: !117 = !DILocation(line: 130, column: 5, scope: !106) -// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.2afba0967235ad27", scope: null, file: !107, line: 123, type: !108, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !119) -// CHECK:STDOUT: !119 = !{!120, !121} -// CHECK:STDOUT: !120 = !DILocalVariable(arg: 1, scope: !118, type: !7) -// CHECK:STDOUT: !121 = !DILocalVariable(arg: 2, scope: !118, type: !7) -// CHECK:STDOUT: !122 = !DILocation(line: 124, column: 13, scope: !118) -// CHECK:STDOUT: !123 = !DILocation(line: 124, column: 29, scope: !118) -// CHECK:STDOUT: !124 = !DILocation(line: 124, column: 12, scope: !118) -// CHECK:STDOUT: !125 = !DILocation(line: 124, column: 5, scope: !118) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1", scope: null, file: !107, line: 42, type: !127, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !129) -// CHECK:STDOUT: !127 = !DISubroutineType(types: !128) -// CHECK:STDOUT: !128 = !{!110, !7} -// CHECK:STDOUT: !129 = !{!130} -// CHECK:STDOUT: !130 = !DILocalVariable(arg: 1, scope: !126, type: !7) -// CHECK:STDOUT: !131 = !DILocation(line: 43, column: 5, scope: !126) -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f", scope: null, file: !133, line: 88, type: !127, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !134) -// CHECK:STDOUT: !133 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") -// CHECK:STDOUT: !134 = !{!135} -// CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !132, type: !7) -// CHECK:STDOUT: !136 = !DILocation(line: 89, column: 12, scope: !132) -// CHECK:STDOUT: !137 = !DILocation(line: 89, column: 5, scope: !132) -// CHECK:STDOUT: !138 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3", scope: null, file: !133, line: 80, type: !127, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !139) -// CHECK:STDOUT: !139 = !{!140} -// CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !138, type: !7) -// CHECK:STDOUT: !141 = !DILocation(line: 82, column: 17, scope: !138) -// CHECK:STDOUT: !142 = !DILocation(line: 82, column: 12, scope: !138) -// CHECK:STDOUT: !143 = !DILocation(line: 82, column: 5, scope: !138) -// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !133, line: 60, type: !145, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !147) -// CHECK:STDOUT: !145 = !DISubroutineType(types: !146) -// CHECK:STDOUT: !146 = !{!7, !7} -// CHECK:STDOUT: !147 = !{!148} -// CHECK:STDOUT: !148 = !DILocalVariable(arg: 1, scope: !144, type: !7) -// CHECK:STDOUT: !149 = !DILocation(line: 60, column: 29, scope: !144) +// CHECK:STDOUT: !4 = !DIFile(filename: "char_literals.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !13 = !{!6, !12} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = !{null} +// CHECK:STDOUT: !16 = !DISubroutineType(types: !15) +// CHECK:STDOUT: !17 = !{null, !6} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core", scope: null, file: !4, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !19, type: !12) +// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 39, scope: !19) +// CHECK:STDOUT: !25 = !{!20} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !4, line: 21, type: !16, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !27 = !DILocation(line: 22, column: 3, scope: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 23, column: 3, scope: !26) +// CHECK:STDOUT: !29 = !{null, !7} +// CHECK:STDOUT: !30 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !31 = !DILocation(line: 24, column: 3, scope: !26) +// CHECK:STDOUT: !32 = !{null, !8} +// CHECK:STDOUT: !33 = !DISubroutineType(types: !32) +// CHECK:STDOUT: !34 = !DILocation(line: 25, column: 3, scope: !26) +// CHECK:STDOUT: !37 = !DILocation(line: 26, column: 3, scope: !26) +// CHECK:STDOUT: !40 = !DILocation(line: 27, column: 3, scope: !26) +// CHECK:STDOUT: !43 = !DILocation(line: 21, column: 1, scope: !26) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "ConvertConstant", linkageName: "_CConvertConstant.Main", scope: null, file: !4, line: 30, type: !16, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !45 = !DILocation(line: 31, column: 3, scope: !44) +// CHECK:STDOUT: !46 = !DILocation(line: 32, column: 3, scope: !44) +// CHECK:STDOUT: !47 = !DILocation(line: 33, column: 3, scope: !44) +// CHECK:STDOUT: !48 = !DILocation(line: 34, column: 3, scope: !44) +// CHECK:STDOUT: !49 = !DILocation(line: 35, column: 3, scope: !44) +// CHECK:STDOUT: !50 = !DILocation(line: 30, column: 1, scope: !44) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "CompareChar", linkageName: "_CCompareChar.Main", scope: null, file: !4, line: 38, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !87) +// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !51, type: !6) +// CHECK:STDOUT: !55 = !DILocation(line: 41, column: 11, scope: !51) +// CHECK:STDOUT: !56 = !DILocation(line: 41, column: 3, scope: !51) +// CHECK:STDOUT: !57 = !{null, !12} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !60 = !DILocation(line: 42, column: 11, scope: !51) +// CHECK:STDOUT: !61 = !DILocation(line: 42, column: 3, scope: !51) +// CHECK:STDOUT: !63 = !DILocation(line: 43, column: 11, scope: !51) +// CHECK:STDOUT: !64 = !DILocation(line: 43, column: 3, scope: !51) +// CHECK:STDOUT: !66 = !DILocation(line: 44, column: 11, scope: !51) +// CHECK:STDOUT: !67 = !DILocation(line: 44, column: 3, scope: !51) +// CHECK:STDOUT: !69 = !DILocation(line: 45, column: 11, scope: !51) +// CHECK:STDOUT: !70 = !DILocation(line: 45, column: 3, scope: !51) +// CHECK:STDOUT: !72 = !DILocation(line: 46, column: 11, scope: !51) +// CHECK:STDOUT: !73 = !DILocation(line: 46, column: 3, scope: !51) +// CHECK:STDOUT: !74 = !DILocation(line: 48, column: 11, scope: !51) +// CHECK:STDOUT: !75 = !DILocation(line: 48, column: 3, scope: !51) +// CHECK:STDOUT: !76 = !DILocation(line: 49, column: 11, scope: !51) +// CHECK:STDOUT: !77 = !DILocation(line: 49, column: 3, scope: !51) +// CHECK:STDOUT: !78 = !DILocation(line: 50, column: 11, scope: !51) +// CHECK:STDOUT: !79 = !DILocation(line: 50, column: 3, scope: !51) +// CHECK:STDOUT: !80 = !DILocation(line: 51, column: 11, scope: !51) +// CHECK:STDOUT: !81 = !DILocation(line: 51, column: 3, scope: !51) +// CHECK:STDOUT: !82 = !DILocation(line: 52, column: 11, scope: !51) +// CHECK:STDOUT: !83 = !DILocation(line: 52, column: 3, scope: !51) +// CHECK:STDOUT: !84 = !DILocation(line: 53, column: 11, scope: !51) +// CHECK:STDOUT: !85 = !DILocation(line: 53, column: 3, scope: !51) +// CHECK:STDOUT: !86 = !DILocation(line: 38, column: 1, scope: !51) +// CHECK:STDOUT: !87 = !{!52} +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "SubCharChar", linkageName: "_CSubCharChar.Main", scope: null, file: !4, line: 56, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !100) +// CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !88, type: !6) +// CHECK:STDOUT: !91 = !DILocation(line: 57, column: 3, scope: !88) +// CHECK:STDOUT: !92 = !DILocation(line: 58, column: 11, scope: !88) +// CHECK:STDOUT: !93 = !{!11, !6, !6} +// CHECK:STDOUT: !94 = !DISubroutineType(types: !93) +// CHECK:STDOUT: !95 = !DILocation(line: 58, column: 3, scope: !88) +// CHECK:STDOUT: !97 = !DILocation(line: 59, column: 11, scope: !88) +// CHECK:STDOUT: !98 = !DILocation(line: 59, column: 3, scope: !88) +// CHECK:STDOUT: !99 = !DILocation(line: 56, column: 1, scope: !88) +// CHECK:STDOUT: !100 = !{!89} +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "AddSubIntLiteral", linkageName: "_CAddSubIntLiteral.Main", scope: null, file: !4, line: 62, type: !16, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !102 = !DILocation(line: 66, column: 3, scope: !101) +// CHECK:STDOUT: !103 = !DILocation(line: 67, column: 3, scope: !101) +// CHECK:STDOUT: !104 = !DILocation(line: 68, column: 3, scope: !101) +// CHECK:STDOUT: !105 = !DILocation(line: 62, column: 1, scope: !101) +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "AddSubInt8", linkageName: "_CAddSubInt8.Main", scope: null, file: !4, line: 71, type: !16, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !107 = !DILocation(line: 75, column: 3, scope: !106) +// CHECK:STDOUT: !108 = !DILocation(line: 76, column: 3, scope: !106) +// CHECK:STDOUT: !109 = !DILocation(line: 77, column: 3, scope: !106) +// CHECK:STDOUT: !110 = !DILocation(line: 71, column: 1, scope: !106) +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.15688e19507865c6", scope: null, file: !4, line: 19, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !111, type: !6) +// CHECK:STDOUT: !114 = !DILocation(line: 19, column: 1, scope: !111) +// CHECK:STDOUT: !115 = !{!112} +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.147e0bd019a31663", scope: null, file: !4, line: 19, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !120) +// CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !7) +// CHECK:STDOUT: !119 = !DILocation(line: 19, column: 1, scope: !116) +// CHECK:STDOUT: !120 = !{!117} +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.eadca4a969cf6f21", scope: null, file: !4, line: 19, type: !33, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !125) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !121, type: !8) +// CHECK:STDOUT: !124 = !DILocation(line: 19, column: 1, scope: !121) +// CHECK:STDOUT: !125 = !{!122} +// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.a4c7fafe8a72cac4", scope: null, file: !4, line: 19, type: !58, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !145) +// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !141, type: !12) +// CHECK:STDOUT: !144 = !DILocation(line: 19, column: 1, scope: !141) +// CHECK:STDOUT: !145 = !{!142} +// CHECK:STDOUT: !146 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.084a2801e0f5d754", scope: null, file: !4, line: 19, type: !58, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !150) +// CHECK:STDOUT: !147 = !DILocalVariable(arg: 1, scope: !146, type: !12) +// CHECK:STDOUT: !149 = !DILocation(line: 19, column: 1, scope: !146) +// CHECK:STDOUT: !150 = !{!147} +// CHECK:STDOUT: !151 = !DIFile(filename: "{{.*}}/prelude/types/char.carbon", directory: "") +// CHECK:STDOUT: !152 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.7c3e388e0087434a.Core.2afba0967235ad27", scope: null, file: !151, line: 129, type: !94, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !165) +// CHECK:STDOUT: !153 = !DILocalVariable(arg: 1, scope: !152, type: !6) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 2, scope: !152, type: !6) +// CHECK:STDOUT: !159 = !DILocation(line: 130, column: 13, scope: !152) +// CHECK:STDOUT: !160 = !{!11, !6} +// CHECK:STDOUT: !161 = !DISubroutineType(types: !160) +// CHECK:STDOUT: !162 = !DILocation(line: 130, column: 29, scope: !152) +// CHECK:STDOUT: !163 = !DILocation(line: 130, column: 12, scope: !152) +// CHECK:STDOUT: !164 = !DILocation(line: 130, column: 5, scope: !152) +// CHECK:STDOUT: !165 = !{!153, !154} +// CHECK:STDOUT: !166 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.2afba0967235ad27", scope: null, file: !151, line: 123, type: !94, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !177) +// CHECK:STDOUT: !167 = !DILocalVariable(arg: 1, scope: !166, type: !6) +// CHECK:STDOUT: !168 = !DILocalVariable(arg: 2, scope: !166, type: !6) +// CHECK:STDOUT: !173 = !DILocation(line: 124, column: 13, scope: !166) +// CHECK:STDOUT: !174 = !DILocation(line: 124, column: 29, scope: !166) +// CHECK:STDOUT: !175 = !DILocation(line: 124, column: 12, scope: !166) +// CHECK:STDOUT: !176 = !DILocation(line: 124, column: 5, scope: !166) +// CHECK:STDOUT: !177 = !{!167, !168} +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.da068cc98c408be1", scope: null, file: !151, line: 42, type: !161, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !190) +// CHECK:STDOUT: !184 = !DILocalVariable(arg: 1, scope: !183, type: !6) +// CHECK:STDOUT: !189 = !DILocation(line: 43, column: 5, scope: !183) +// CHECK:STDOUT: !190 = !{!184} +// CHECK:STDOUT: !191 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") +// CHECK:STDOUT: !192 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f", scope: null, file: !191, line: 88, type: !161, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !200) +// CHECK:STDOUT: !193 = !DILocalVariable(arg: 1, scope: !192, type: !6) +// CHECK:STDOUT: !198 = !DILocation(line: 89, column: 12, scope: !192) +// CHECK:STDOUT: !199 = !DILocation(line: 89, column: 5, scope: !192) +// CHECK:STDOUT: !200 = !{!193} +// CHECK:STDOUT: !201 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3", scope: null, file: !191, line: 80, type: !161, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !211) +// CHECK:STDOUT: !202 = !DILocalVariable(arg: 1, scope: !201, type: !6) +// CHECK:STDOUT: !206 = !DILocation(line: 82, column: 17, scope: !201) +// CHECK:STDOUT: !207 = !{!6, !6} +// CHECK:STDOUT: !208 = !DISubroutineType(types: !207) +// CHECK:STDOUT: !209 = !DILocation(line: 82, column: 12, scope: !201) +// CHECK:STDOUT: !210 = !DILocation(line: 82, column: 5, scope: !201) +// CHECK:STDOUT: !211 = !{!202} +// CHECK:STDOUT: !212 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !191, line: 60, type: !208, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !219) +// CHECK:STDOUT: !213 = !DILocalVariable(arg: 1, scope: !212, type: !6) +// CHECK:STDOUT: !218 = !DILocation(line: 60, column: 29, scope: !212) +// CHECK:STDOUT: !219 = !{!213} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/int_types.carbon b/toolchain/lower/testdata/primitives/int_types.carbon index 6de0f18de3d2..4c252880bfb0 100644 --- a/toolchain/lower/testdata/primitives/int_types.carbon +++ b/toolchain/lower/testdata/primitives/int_types.carbon @@ -50,230 +50,230 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: source_filename = "pass_and_return.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @_CF_i8.Main(i8 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i8 @_CF_i8.Main(i8 %a) #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i8 %a, !dbg !10 +// CHECK:STDOUT: ret i8 %a, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i16 @_CF_u16.Main(i16 %a) #0 !dbg !11 { +// CHECK:STDOUT: define i16 @_CF_u16.Main(i16 %a) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i16 %a, !dbg !17 +// CHECK:STDOUT: ret i16 %a, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i64 @_CF_i64.Main(i64 %a) #0 !dbg !18 { +// CHECK:STDOUT: define i64 @_CF_i64.Main(i64 %a) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i64 %a, !dbg !24 +// CHECK:STDOUT: ret i64 %a, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i65536 @_CF_u65536.Main(i65536 %a) #0 !dbg !25 { +// CHECK:STDOUT: define i65536 @_CF_u65536.Main(i65536 %a) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i65536 %a, !dbg !31 +// CHECK:STDOUT: ret i65536 %a, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "pass_and_return.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F_i8", linkageName: "_CF_i8.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 4, column: 24, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F_u16", linkageName: "_CF_u16.Main", scope: null, file: !1, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!14, !14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 5, column: 27, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F_i64", linkageName: "_CF_i64.Main", scope: null, file: !1, line: 6, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{!21, !21} -// CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 6, column: 27, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F_u65536", linkageName: "_CF_u65536.Main", scope: null, file: !1, line: 7, type: !26, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !26 = !DISubroutineType(types: !27) -// CHECK:STDOUT: !27 = !{!28, !28} -// CHECK:STDOUT: !28 = !DIBasicType(name: "int", size: 65536, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !28) -// CHECK:STDOUT: !31 = !DILocation(line: 7, column: 36, scope: !25) +// CHECK:STDOUT: !4 = !DIFile(filename: "pass_and_return.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) +// CHECK:STDOUT: !9 = !DIBasicType(name: "int", size: 65536, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !10 = !{!6, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{!7, !7} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{!8, !8} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = !{!9, !9} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F_i8", linkageName: "_CF_i8.Main", scope: null, file: !4, line: 4, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !6) +// CHECK:STDOUT: !24 = !DILocation(line: 4, column: 24, scope: !18) +// CHECK:STDOUT: !25 = !{!19} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F_u16", linkageName: "_CF_u16.Main", scope: null, file: !4, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !7) +// CHECK:STDOUT: !32 = !DILocation(line: 5, column: 27, scope: !26) +// CHECK:STDOUT: !33 = !{!27} +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F_i64", linkageName: "_CF_i64.Main", scope: null, file: !4, line: 6, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !34, type: !8) +// CHECK:STDOUT: !40 = !DILocation(line: 6, column: 27, scope: !34) +// CHECK:STDOUT: !41 = !{!35} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "F_u65536", linkageName: "_CF_u65536.Main", scope: null, file: !4, line: 7, type: !17, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !9) +// CHECK:STDOUT: !48 = !DILocation(line: 7, column: 36, scope: !42) +// CHECK:STDOUT: !49 = !{!43} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'load_and_store.carbon' // CHECK:STDOUT: source_filename = "load_and_store.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i24 @_CLoadStore_Bytes.Main(ptr %p, i24 %n) #0 !dbg !4 { +// CHECK:STDOUT: define i24 @_CLoadStore_Bytes.Main(ptr %p, i24 %n) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc5_25.2 = load i24, ptr %p, align 4, !dbg !12 -// CHECK:STDOUT: store i24 %n, ptr %p, align 4, !dbg !13 -// CHECK:STDOUT: ret i24 %.loc5_25.2, !dbg !14 +// CHECK:STDOUT: %.loc5_25.2 = load i24, ptr %p, align 4, !dbg !67 +// CHECK:STDOUT: store i24 %n, ptr %p, align 4, !dbg !71 +// CHECK:STDOUT: ret i24 %.loc5_25.2, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i13 @_CLoadStore_NotBytes.Main(ptr %p, i13 %n) #0 !dbg !15 { +// CHECK:STDOUT: define i13 @_CLoadStore_NotBytes.Main(ptr %p, i13 %n) #0 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_25.2 = load i16, ptr %p, align 2, !dbg !22 -// CHECK:STDOUT: %.loc11_25.21 = trunc i16 %.loc11_25.2 to i13, !dbg !22 -// CHECK:STDOUT: %0 = zext i13 %n to i16, !dbg !23 -// CHECK:STDOUT: store i16 %0, ptr %p, align 2, !dbg !23 -// CHECK:STDOUT: ret i13 %.loc11_25.21, !dbg !24 +// CHECK:STDOUT: %.loc11_25.2 = load i16, ptr %p, align 2, !dbg !84 +// CHECK:STDOUT: %.loc11_25.21 = trunc i16 %.loc11_25.2 to i13, !dbg !84 +// CHECK:STDOUT: %0 = zext i13 %n to i16, !dbg !88 +// CHECK:STDOUT: store i16 %0, ptr %p, align 2, !dbg !88 +// CHECK:STDOUT: ret i13 %.loc11_25.21, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!51} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "load_and_store.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "LoadStore_Bytes", linkageName: "_CLoadStore_Bytes.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 24, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !9 = !{!10, !11} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 25, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "LoadStore_NotBytes", linkageName: "_CLoadStore_NotBytes.Main", scope: null, file: !1, line: 10, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{!18, !8, !18} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 13, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20, !21} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !8) -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 2, scope: !15, type: !18) -// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 25, scope: !15) -// CHECK:STDOUT: !23 = !DILocation(line: 12, column: 3, scope: !15) -// CHECK:STDOUT: !24 = !DILocation(line: 13, column: 3, scope: !15) +// CHECK:STDOUT: !50 = !DIFile(filename: "load_and_store.carbon", directory: "") +// CHECK:STDOUT: !51 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !50, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !52 = !DIBasicType(name: "int", size: 24, encoding: DW_ATE_signed) +// CHECK:STDOUT: !53 = !DIBasicType(name: "int", size: 13, encoding: DW_ATE_signed) +// CHECK:STDOUT: !54 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !55 = !{!52, !54, !52} +// CHECK:STDOUT: !56 = !DISubroutineType(types: !55) +// CHECK:STDOUT: !57 = !{!53, !54, !53} +// CHECK:STDOUT: !58 = !DISubroutineType(types: !57) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "LoadStore_Bytes", linkageName: "_CLoadStore_Bytes.Main", scope: null, file: !50, line: 4, type: !56, spFlags: DISPFlagDefinition, unit: !51, retainedNodes: !75) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !54) +// CHECK:STDOUT: !61 = !DILocalVariable(arg: 2, scope: !59, type: !52) +// CHECK:STDOUT: !67 = !DILocation(line: 5, column: 25, scope: !59) +// CHECK:STDOUT: !71 = !DILocation(line: 6, column: 3, scope: !59) +// CHECK:STDOUT: !74 = !DILocation(line: 7, column: 3, scope: !59) +// CHECK:STDOUT: !75 = !{!60, !61} +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "LoadStore_NotBytes", linkageName: "_CLoadStore_NotBytes.Main", scope: null, file: !50, line: 10, type: !58, spFlags: DISPFlagDefinition, unit: !51, retainedNodes: !92) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !54) +// CHECK:STDOUT: !78 = !DILocalVariable(arg: 2, scope: !76, type: !53) +// CHECK:STDOUT: !84 = !DILocation(line: 11, column: 25, scope: !76) +// CHECK:STDOUT: !88 = !DILocation(line: 12, column: 3, scope: !76) +// CHECK:STDOUT: !91 = !DILocation(line: 13, column: 3, scope: !76) +// CHECK:STDOUT: !92 = !{!77, !78} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'convert.carbon' // CHECK:STDOUT: source_filename = "convert.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CImplicitWidenSigned.Main(i8 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CImplicitWidenSigned.Main(i8 %a) #0 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.619f31db71280c12"(i8 %a), !dbg !11 -// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !11 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.619f31db71280c12"(i8 %a), !dbg !118 +// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CImplicitWidenUnsigned.Main(i8 %a) #0 !dbg !12 { +// CHECK:STDOUT: define i32 @_CImplicitWidenUnsigned.Main(i8 %a) #0 !dbg !120 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %a), !dbg !19 -// CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !19 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %a), !dbg !126 +// CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !126 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CImplicitWidenUnsignedToSigned.Main(i8 %a) #0 !dbg !20 { +// CHECK:STDOUT: define i32 @_CImplicitWidenUnsignedToSigned.Main(i8 %a) #0 !dbg !128 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %a), !dbg !25 -// CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !25 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %a), !dbg !134 +// CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i5 @_CImplicitWidenCustom.Main(i4 %a) #0 !dbg !26 { +// CHECK:STDOUT: define i5 @_CImplicitWidenCustom.Main(i4 %a) #0 !dbg !136 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.2ea6d7b983af5ccc"(i4 %a), !dbg !33 -// CHECK:STDOUT: ret i5 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !33 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.2ea6d7b983af5ccc"(i4 %a), !dbg !142 +// CHECK:STDOUT: ret i5 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i5 @_CImplicitWidenUnsignedCustom.Main(i4 %a) #0 !dbg !34 { +// CHECK:STDOUT: define i5 @_CImplicitWidenUnsignedCustom.Main(i4 %a) #0 !dbg !144 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.f685d1058ed485bb"(i4 %a), !dbg !41 -// CHECK:STDOUT: ret i5 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !41 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.f685d1058ed485bb"(i4 %a), !dbg !150 +// CHECK:STDOUT: ret i5 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.619f31db71280c12"(i8 %self) #0 !dbg !42 { -// CHECK:STDOUT: %1 = call i8 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8"(i8 %self), !dbg !46 -// CHECK:STDOUT: %2 = sext i8 %1 to i32, !dbg !47 -// CHECK:STDOUT: ret i32 %2, !dbg !48 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.619f31db71280c12"(i8 %self) #0 !dbg !153 { +// CHECK:STDOUT: %1 = call i8 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8"(i8 %self), !dbg !158 +// CHECK:STDOUT: %2 = sext i8 %1 to i32, !dbg !159 +// CHECK:STDOUT: ret i32 %2, !dbg !160 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %self) #0 !dbg !49 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %self), !dbg !53 -// CHECK:STDOUT: ret i32 %1, !dbg !54 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84"(i8 %self) #0 !dbg !163 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %self), !dbg !169 +// CHECK:STDOUT: ret i32 %1, !dbg !170 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self) #0 !dbg !55 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %self), !dbg !58 -// CHECK:STDOUT: ret i32 %1, !dbg !59 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f"(i8 %self) #0 !dbg !172 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %self), !dbg !178 +// CHECK:STDOUT: ret i32 %1, !dbg !179 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.2ea6d7b983af5ccc"(i4 %self) #0 !dbg !60 { -// CHECK:STDOUT: %1 = call i4 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6"(i4 %self), !dbg !63 -// CHECK:STDOUT: %2 = sext i4 %1 to i5, !dbg !64 -// CHECK:STDOUT: ret i5 %2, !dbg !65 +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.2ea6d7b983af5ccc"(i4 %self) #0 !dbg !181 { +// CHECK:STDOUT: %1 = call i4 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6"(i4 %self), !dbg !186 +// CHECK:STDOUT: %2 = sext i4 %1 to i5, !dbg !189 +// CHECK:STDOUT: ret i5 %2, !dbg !190 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.f685d1058ed485bb"(i4 %self) #0 !dbg !66 { -// CHECK:STDOUT: %1 = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d2c3b6e62f7c89c4"(i4 %self), !dbg !69 -// CHECK:STDOUT: ret i5 %1, !dbg !70 +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.f685d1058ed485bb"(i4 %self) #0 !dbg !192 { +// CHECK:STDOUT: %1 = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d2c3b6e62f7c89c4"(i4 %self), !dbg !198 +// CHECK:STDOUT: ret i5 %1, !dbg !199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !71 { -// CHECK:STDOUT: ret i8 %self, !dbg !76 +// CHECK:STDOUT: define linkonce_odr i8 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !201 { +// CHECK:STDOUT: ret i8 %self, !dbg !207 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %from) #0 !dbg !77 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !80 -// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !81 -// CHECK:STDOUT: ret i32 %2, !dbg !82 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d"(i8 %from) #0 !dbg !209 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !214 +// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !217 +// CHECK:STDOUT: ret i32 %2, !dbg !218 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %from) #0 !dbg !83 { -// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !86 -// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !87 -// CHECK:STDOUT: ret i32 %2, !dbg !88 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3"(i8 %from) #0 !dbg !220 { +// CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !225 +// CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !226 +// CHECK:STDOUT: ret i32 %2, !dbg !227 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i4 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6"(i4 %self) #0 !dbg !89 { -// CHECK:STDOUT: ret i4 %self, !dbg !94 +// CHECK:STDOUT: define linkonce_odr i4 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6"(i4 %self) #0 !dbg !229 { +// CHECK:STDOUT: ret i4 %self, !dbg !235 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d2c3b6e62f7c89c4"(i4 %from) #0 !dbg !95 { -// CHECK:STDOUT: %1 = call i4 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6"(i4 %from), !dbg !98 -// CHECK:STDOUT: %2 = zext i4 %1 to i5, !dbg !99 -// CHECK:STDOUT: ret i5 %2, !dbg !100 +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d2c3b6e62f7c89c4"(i4 %from) #0 !dbg !237 { +// CHECK:STDOUT: %1 = call i4 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6"(i4 %from), !dbg !242 +// CHECK:STDOUT: %2 = zext i4 %1 to i5, !dbg !245 +// CHECK:STDOUT: ret i5 %2, !dbg !246 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !101 { -// CHECK:STDOUT: ret i8 %self, !dbg !106 +// CHECK:STDOUT: define linkonce_odr i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %self) #0 !dbg !248 { +// CHECK:STDOUT: ret i8 %self, !dbg !254 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i4 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6"(i4 %self) #0 !dbg !107 { -// CHECK:STDOUT: ret i4 %self, !dbg !112 +// CHECK:STDOUT: define linkonce_odr i4 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6"(i4 %self) #0 !dbg !256 { +// CHECK:STDOUT: ret i4 %self, !dbg !262 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -281,120 +281,120 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!94} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "ImplicitWidenSigned", linkageName: "_CImplicitWidenSigned.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 4, column: 40, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "ImplicitWidenUnsigned", linkageName: "_CImplicitWidenUnsigned.Main", scope: null, file: !1, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !12, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 5, column: 42, scope: !12) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "ImplicitWidenUnsignedToSigned", linkageName: "_CImplicitWidenUnsignedToSigned.Main", scope: null, file: !1, line: 6, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{!7, !16} -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !16) -// CHECK:STDOUT: !25 = !DILocation(line: 6, column: 50, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "ImplicitWidenCustom", linkageName: "_CImplicitWidenCustom.Main", scope: null, file: !1, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !27 = !DISubroutineType(types: !28) -// CHECK:STDOUT: !28 = !{!29, !30} -// CHECK:STDOUT: !29 = !DIBasicType(name: "int", size: 5, encoding: DW_ATE_signed) -// CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 4, encoding: DW_ATE_signed) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !26, type: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 7, column: 57, scope: !26) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "ImplicitWidenUnsignedCustom", linkageName: "_CImplicitWidenUnsignedCustom.Main", scope: null, file: !1, line: 8, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !39) -// CHECK:STDOUT: !35 = !DISubroutineType(types: !36) -// CHECK:STDOUT: !36 = !{!37, !38} -// CHECK:STDOUT: !37 = !DIBasicType(name: "int", size: 5, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !38 = !DIBasicType(name: "int", size: 4, encoding: DW_ATE_unsigned) -// CHECK:STDOUT: !39 = !{!40} -// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !34, type: !38) -// CHECK:STDOUT: !41 = !DILocation(line: 8, column: 67, scope: !34) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.619f31db71280c12", scope: null, file: !43, line: 64, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !44) -// CHECK:STDOUT: !43 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !44 = !{!45} -// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !42, type: !8) -// CHECK:STDOUT: !46 = !DILocation(line: 66, column: 17, scope: !42) -// CHECK:STDOUT: !47 = !DILocation(line: 66, column: 12, scope: !42) -// CHECK:STDOUT: !48 = !DILocation(line: 66, column: 5, scope: !42) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84", scope: null, file: !50, line: 88, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !51) -// CHECK:STDOUT: !50 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") -// CHECK:STDOUT: !51 = !{!52} -// CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !49, type: !16) -// CHECK:STDOUT: !53 = !DILocation(line: 89, column: 12, scope: !49) -// CHECK:STDOUT: !54 = !DILocation(line: 89, column: 5, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f", scope: null, file: !50, line: 88, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !56) -// CHECK:STDOUT: !56 = !{!57} -// CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !16) -// CHECK:STDOUT: !58 = !DILocation(line: 89, column: 12, scope: !55) -// CHECK:STDOUT: !59 = !DILocation(line: 89, column: 5, scope: !55) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.2ea6d7b983af5ccc", scope: null, file: !43, line: 64, type: !27, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !61) -// CHECK:STDOUT: !61 = !{!62} -// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !60, type: !30) -// CHECK:STDOUT: !63 = !DILocation(line: 66, column: 17, scope: !60) -// CHECK:STDOUT: !64 = !DILocation(line: 66, column: 12, scope: !60) -// CHECK:STDOUT: !65 = !DILocation(line: 66, column: 5, scope: !60) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.f685d1058ed485bb", scope: null, file: !50, line: 88, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !67) -// CHECK:STDOUT: !67 = !{!68} -// CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !38) -// CHECK:STDOUT: !69 = !DILocation(line: 89, column: 12, scope: !66) -// CHECK:STDOUT: !70 = !DILocation(line: 89, column: 5, scope: !66) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !43, line: 59, type: !72, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !72 = !DISubroutineType(types: !73) -// CHECK:STDOUT: !73 = !{!8, !8} -// CHECK:STDOUT: !74 = !{!75} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !71, type: !8) -// CHECK:STDOUT: !76 = !DILocation(line: 59, column: 28, scope: !71) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d", scope: null, file: !50, line: 72, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !78) -// CHECK:STDOUT: !78 = !{!79} -// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !16) -// CHECK:STDOUT: !80 = !DILocation(line: 74, column: 17, scope: !77) -// CHECK:STDOUT: !81 = !DILocation(line: 74, column: 12, scope: !77) -// CHECK:STDOUT: !82 = !DILocation(line: 74, column: 5, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3", scope: null, file: !50, line: 80, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !84) -// CHECK:STDOUT: !84 = !{!85} -// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !16) -// CHECK:STDOUT: !86 = !DILocation(line: 82, column: 17, scope: !83) -// CHECK:STDOUT: !87 = !DILocation(line: 82, column: 12, scope: !83) -// CHECK:STDOUT: !88 = !DILocation(line: 82, column: 5, scope: !83) -// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6", scope: null, file: !43, line: 59, type: !90, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !92) -// CHECK:STDOUT: !90 = !DISubroutineType(types: !91) -// CHECK:STDOUT: !91 = !{!30, !30} -// CHECK:STDOUT: !92 = !{!93} -// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !89, type: !30) -// CHECK:STDOUT: !94 = !DILocation(line: 59, column: 28, scope: !89) -// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d2c3b6e62f7c89c4", scope: null, file: !50, line: 72, type: !35, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !96) -// CHECK:STDOUT: !96 = !{!97} -// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !95, type: !38) -// CHECK:STDOUT: !98 = !DILocation(line: 74, column: 17, scope: !95) -// CHECK:STDOUT: !99 = !DILocation(line: 74, column: 12, scope: !95) -// CHECK:STDOUT: !100 = !DILocation(line: 74, column: 5, scope: !95) -// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !50, line: 60, type: !102, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !104) -// CHECK:STDOUT: !102 = !DISubroutineType(types: !103) -// CHECK:STDOUT: !103 = !{!16, !16} -// CHECK:STDOUT: !104 = !{!105} -// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !101, type: !16) -// CHECK:STDOUT: !106 = !DILocation(line: 60, column: 29, scope: !101) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6", scope: null, file: !50, line: 60, type: !108, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !110) -// CHECK:STDOUT: !108 = !DISubroutineType(types: !109) -// CHECK:STDOUT: !109 = !{!38, !38} -// CHECK:STDOUT: !110 = !{!111} -// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !107, type: !38) -// CHECK:STDOUT: !112 = !DILocation(line: 60, column: 29, scope: !107) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) +// CHECK:STDOUT: !10 = !{!6, !6} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !93 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !94 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !93, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !95 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !96 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !97 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !98 = !DIBasicType(name: "int", size: 4, encoding: DW_ATE_signed) +// CHECK:STDOUT: !99 = !DIBasicType(name: "int", size: 5, encoding: DW_ATE_signed) +// CHECK:STDOUT: !100 = !DIBasicType(name: "int", size: 4, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !101 = !DIBasicType(name: "int", size: 5, encoding: DW_ATE_unsigned) +// CHECK:STDOUT: !102 = !{!95, !6} +// CHECK:STDOUT: !103 = !DISubroutineType(types: !102) +// CHECK:STDOUT: !104 = !{!97, !96} +// CHECK:STDOUT: !105 = !DISubroutineType(types: !104) +// CHECK:STDOUT: !106 = !{!95, !96} +// CHECK:STDOUT: !107 = !DISubroutineType(types: !106) +// CHECK:STDOUT: !108 = !{!99, !98} +// CHECK:STDOUT: !109 = !DISubroutineType(types: !108) +// CHECK:STDOUT: !110 = !{!101, !100} +// CHECK:STDOUT: !111 = !DISubroutineType(types: !110) +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "ImplicitWidenSigned", linkageName: "_CImplicitWidenSigned.Main", scope: null, file: !93, line: 4, type: !103, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !119) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) +// CHECK:STDOUT: !118 = !DILocation(line: 4, column: 40, scope: !112) +// CHECK:STDOUT: !119 = !{!113} +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "ImplicitWidenUnsigned", linkageName: "_CImplicitWidenUnsigned.Main", scope: null, file: !93, line: 5, type: !105, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !127) +// CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !120, type: !96) +// CHECK:STDOUT: !126 = !DILocation(line: 5, column: 42, scope: !120) +// CHECK:STDOUT: !127 = !{!121} +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "ImplicitWidenUnsignedToSigned", linkageName: "_CImplicitWidenUnsignedToSigned.Main", scope: null, file: !93, line: 6, type: !107, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !135) +// CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !128, type: !96) +// CHECK:STDOUT: !134 = !DILocation(line: 6, column: 50, scope: !128) +// CHECK:STDOUT: !135 = !{!129} +// CHECK:STDOUT: !136 = distinct !DISubprogram(name: "ImplicitWidenCustom", linkageName: "_CImplicitWidenCustom.Main", scope: null, file: !93, line: 7, type: !109, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !143) +// CHECK:STDOUT: !137 = !DILocalVariable(arg: 1, scope: !136, type: !98) +// CHECK:STDOUT: !142 = !DILocation(line: 7, column: 57, scope: !136) +// CHECK:STDOUT: !143 = !{!137} +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "ImplicitWidenUnsignedCustom", linkageName: "_CImplicitWidenUnsignedCustom.Main", scope: null, file: !93, line: 8, type: !111, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !151) +// CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !144, type: !100) +// CHECK:STDOUT: !150 = !DILocation(line: 8, column: 67, scope: !144) +// CHECK:STDOUT: !151 = !{!145} +// CHECK:STDOUT: !152 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.619f31db71280c12", scope: null, file: !152, line: 64, type: !103, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !161) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !6) +// CHECK:STDOUT: !158 = !DILocation(line: 66, column: 17, scope: !153) +// CHECK:STDOUT: !159 = !DILocation(line: 66, column: 12, scope: !153) +// CHECK:STDOUT: !160 = !DILocation(line: 66, column: 5, scope: !153) +// CHECK:STDOUT: !161 = !{!154} +// CHECK:STDOUT: !162 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") +// CHECK:STDOUT: !163 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.9b7e0edf5c8a8a84", scope: null, file: !162, line: 88, type: !105, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !171) +// CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !163, type: !96) +// CHECK:STDOUT: !169 = !DILocation(line: 89, column: 12, scope: !163) +// CHECK:STDOUT: !170 = !DILocation(line: 89, column: 5, scope: !163) +// CHECK:STDOUT: !171 = !{!164} +// CHECK:STDOUT: !172 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.de54a264bd4d5c6f", scope: null, file: !162, line: 88, type: !107, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !180) +// CHECK:STDOUT: !173 = !DILocalVariable(arg: 1, scope: !172, type: !96) +// CHECK:STDOUT: !178 = !DILocation(line: 89, column: 12, scope: !172) +// CHECK:STDOUT: !179 = !DILocation(line: 89, column: 5, scope: !172) +// CHECK:STDOUT: !180 = !{!173} +// CHECK:STDOUT: !181 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.2ea6d7b983af5ccc", scope: null, file: !152, line: 64, type: !109, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !191) +// CHECK:STDOUT: !182 = !DILocalVariable(arg: 1, scope: !181, type: !98) +// CHECK:STDOUT: !186 = !DILocation(line: 66, column: 17, scope: !181) +// CHECK:STDOUT: !187 = !{!98, !98} +// CHECK:STDOUT: !188 = !DISubroutineType(types: !187) +// CHECK:STDOUT: !189 = !DILocation(line: 66, column: 12, scope: !181) +// CHECK:STDOUT: !190 = !DILocation(line: 66, column: 5, scope: !181) +// CHECK:STDOUT: !191 = !{!182} +// CHECK:STDOUT: !192 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.f685d1058ed485bb", scope: null, file: !162, line: 88, type: !111, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !200) +// CHECK:STDOUT: !193 = !DILocalVariable(arg: 1, scope: !192, type: !100) +// CHECK:STDOUT: !198 = !DILocation(line: 89, column: 12, scope: !192) +// CHECK:STDOUT: !199 = !DILocation(line: 89, column: 5, scope: !192) +// CHECK:STDOUT: !200 = !{!193} +// CHECK:STDOUT: !201 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !152, line: 59, type: !11, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !208) +// CHECK:STDOUT: !202 = !DILocalVariable(arg: 1, scope: !201, type: !6) +// CHECK:STDOUT: !207 = !DILocation(line: 59, column: 28, scope: !201) +// CHECK:STDOUT: !208 = !{!202} +// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.62c2f9adcd5bc12d", scope: null, file: !162, line: 72, type: !105, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !219) +// CHECK:STDOUT: !210 = !DILocalVariable(arg: 1, scope: !209, type: !96) +// CHECK:STDOUT: !214 = !DILocation(line: 74, column: 17, scope: !209) +// CHECK:STDOUT: !215 = !{!96, !96} +// CHECK:STDOUT: !216 = !DISubroutineType(types: !215) +// CHECK:STDOUT: !217 = !DILocation(line: 74, column: 12, scope: !209) +// CHECK:STDOUT: !218 = !DILocation(line: 74, column: 5, scope: !209) +// CHECK:STDOUT: !219 = !{!210} +// CHECK:STDOUT: !220 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.d19fcdc7c1bc8ad3", scope: null, file: !162, line: 80, type: !107, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !228) +// CHECK:STDOUT: !221 = !DILocalVariable(arg: 1, scope: !220, type: !96) +// CHECK:STDOUT: !225 = !DILocation(line: 82, column: 17, scope: !220) +// CHECK:STDOUT: !226 = !DILocation(line: 82, column: 12, scope: !220) +// CHECK:STDOUT: !227 = !DILocation(line: 82, column: 5, scope: !220) +// CHECK:STDOUT: !228 = !{!221} +// CHECK:STDOUT: !229 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6", scope: null, file: !152, line: 59, type: !188, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !236) +// CHECK:STDOUT: !230 = !DILocalVariable(arg: 1, scope: !229, type: !98) +// CHECK:STDOUT: !235 = !DILocation(line: 59, column: 28, scope: !229) +// CHECK:STDOUT: !236 = !{!230} +// CHECK:STDOUT: !237 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d2c3b6e62f7c89c4", scope: null, file: !162, line: 72, type: !111, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !247) +// CHECK:STDOUT: !238 = !DILocalVariable(arg: 1, scope: !237, type: !100) +// CHECK:STDOUT: !242 = !DILocation(line: 74, column: 17, scope: !237) +// CHECK:STDOUT: !243 = !{!100, !100} +// CHECK:STDOUT: !244 = !DISubroutineType(types: !243) +// CHECK:STDOUT: !245 = !DILocation(line: 74, column: 12, scope: !237) +// CHECK:STDOUT: !246 = !DILocation(line: 74, column: 5, scope: !237) +// CHECK:STDOUT: !247 = !{!238} +// CHECK:STDOUT: !248 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", scope: null, file: !162, line: 60, type: !216, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !255) +// CHECK:STDOUT: !249 = !DILocalVariable(arg: 1, scope: !248, type: !96) +// CHECK:STDOUT: !254 = !DILocation(line: 60, column: 29, scope: !248) +// CHECK:STDOUT: !255 = !{!249} +// CHECK:STDOUT: !256 = distinct !DISubprogram(name: "AsUInt", linkageName: "_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6", scope: null, file: !162, line: 60, type: !244, spFlags: DISPFlagDefinition, unit: !94, retainedNodes: !263) +// CHECK:STDOUT: !257 = !DILocalVariable(arg: 1, scope: !256, type: !100) +// CHECK:STDOUT: !262 = !DILocation(line: 60, column: 29, scope: !256) +// CHECK:STDOUT: !263 = !{!257} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/numeric_literals.carbon b/toolchain/lower/testdata/primitives/numeric_literals.carbon index 46afb3dc3aa8..731978043736 100644 --- a/toolchain/lower/testdata/primitives/numeric_literals.carbon +++ b/toolchain/lower/testdata/primitives/numeric_literals.carbon @@ -37,51 +37,51 @@ fn F() { // CHECK:STDOUT: @array.69b.loc22_3 = internal constant [6 x double] [double 9.000000e-01, double 8.000000e+00, double 8.000000e+01, double 1.000000e+07, double 1.000000e+08, double 1.000000e-08] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc16 = alloca [4 x i32], align 4, !dbg !7 -// CHECK:STDOUT: %_.var.loc22 = alloca [6 x double], align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !7 -// CHECK:STDOUT: %.loc21_3.3.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 0, !dbg !9 -// CHECK:STDOUT: %.loc21_3.6.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 1, !dbg !9 -// CHECK:STDOUT: %.loc21_3.9.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 2, !dbg !9 -// CHECK:STDOUT: %.loc21_3.12.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 3, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc16, ptr align 4 @array.f6b.loc16_3, i64 16, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc22), !dbg !8 -// CHECK:STDOUT: %.loc29_3.3.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 0, !dbg !10 -// CHECK:STDOUT: %.loc29_3.6.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 1, !dbg !10 -// CHECK:STDOUT: %.loc29_3.9.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 2, !dbg !10 -// CHECK:STDOUT: %.loc29_3.12.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 3, !dbg !10 -// CHECK:STDOUT: %.loc29_3.15.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 4, !dbg !10 -// CHECK:STDOUT: %.loc29_3.18.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 5, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc22, ptr align 8 @array.69b.loc22_3, i64 48, i1 false), !dbg !8 -// CHECK:STDOUT: call void @"_COp.6936189c60c87c89:core.Destroy.Core"(ptr %_.var.loc22), !dbg !8 -// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var.loc16 = alloca [4 x i32], align 4, !dbg !43 +// CHECK:STDOUT: %_.var.loc22 = alloca [6 x double], align 8, !dbg !46 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !43 +// CHECK:STDOUT: %.loc21_3.3.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 0, !dbg !44 +// CHECK:STDOUT: %.loc21_3.6.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 1, !dbg !44 +// CHECK:STDOUT: %.loc21_3.9.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 2, !dbg !44 +// CHECK:STDOUT: %.loc21_3.12.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 3, !dbg !44 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc16, ptr align 4 @array.f6b.loc16_3, i64 16, i1 false), !dbg !43 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc22), !dbg !46 +// CHECK:STDOUT: %.loc29_3.3.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 0, !dbg !47 +// CHECK:STDOUT: %.loc29_3.6.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 1, !dbg !47 +// CHECK:STDOUT: %.loc29_3.9.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 2, !dbg !47 +// CHECK:STDOUT: %.loc29_3.12.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 3, !dbg !47 +// CHECK:STDOUT: %.loc29_3.15.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 4, !dbg !47 +// CHECK:STDOUT: %.loc29_3.18.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 5, !dbg !47 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc22, ptr align 8 @array.69b.loc22_3, i64 48, i1 false), !dbg !46 +// CHECK:STDOUT: call void @"_COp.6936189c60c87c89:core.Destroy.Core"(ptr %_.var.loc22), !dbg !46 +// CHECK:STDOUT: call void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !43 +// CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6936189c60c87c89:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.6936189c60c87c89:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.eefa3f320d583a8d:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -97,41 +97,41 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "numeric_literals.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 26, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 26, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6936189c60c87c89:core.Destroy.Core", scope: null, file: !1, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 22, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{null, !26} -// CHECK:STDOUT: !26 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !26) -// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefa3f320d583a8d:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !31) -// CHECK:STDOUT: !31 = !{!32} -// CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !15) -// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DIFile(filename: "numeric_literals.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{null} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !38 = !{null, !37} +// CHECK:STDOUT: !39 = !DISubroutineType(types: !38) +// CHECK:STDOUT: !40 = !{null, !34} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !32, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !42) +// CHECK:STDOUT: !44 = !DILocation(line: 16, column: 26, scope: !42) +// CHECK:STDOUT: !46 = !DILocation(line: 22, column: 3, scope: !42) +// CHECK:STDOUT: !47 = !DILocation(line: 22, column: 26, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 13, column: 1, scope: !42) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !53) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !50, type: !37) +// CHECK:STDOUT: !52 = !DILocation(line: 22, column: 3, scope: !50) +// CHECK:STDOUT: !53 = !{!51} +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6936189c60c87c89:core.Destroy.Core", scope: null, file: !32, line: 22, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !57) +// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !54, type: !37) +// CHECK:STDOUT: !56 = !DILocation(line: 22, column: 3, scope: !54) +// CHECK:STDOUT: !57 = !{!55} +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 16, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !61) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !34) +// CHECK:STDOUT: !60 = !DILocation(line: 16, column: 3, scope: !58) +// CHECK:STDOUT: !61 = !{!59} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eefa3f320d583a8d:core.Destroy.Core", scope: null, file: !32, line: 16, type: !39, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !65) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !37) +// CHECK:STDOUT: !64 = !DILocation(line: 16, column: 3, scope: !62) +// CHECK:STDOUT: !65 = !{!63} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/optional.carbon b/toolchain/lower/testdata/primitives/optional.carbon index 83663b464635..ff9c505f6621 100644 --- a/toolchain/lower/testdata/primitives/optional.carbon +++ b/toolchain/lower/testdata/primitives/optional.carbon @@ -62,301 +62,301 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: source_filename = "convert.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CConvert.Main(ptr sret(<{ i32, i1 }>) %return, ptr %o) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CConvert.Main(ptr sret(<{ i32, i1 }>) %return, ptr %o) #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.6e9e957697159b53(ptr %o), !dbg !17 -// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %if.then, label %if.else, !dbg !18 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.6e9e957697159b53(ptr %o), !dbg !25 +// CHECK:STDOUT: br i1 %Optional.HasValue.call, label %if.then, label %if.else, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: %Optional.Get.call = call ptr @_CGet.Optional.Core.6e9e957697159b53(ptr %o), !dbg !19 -// CHECK:STDOUT: %.loc5_12.2 = load i32, ptr %Optional.Get.call, align 4, !dbg !20 -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %.loc5_12.2), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: %Optional.Get.call = call ptr @_CGet.Optional.Core.6e9e957697159b53(ptr %o), !dbg !27 +// CHECK:STDOUT: %.loc5_12.2 = load i32, ptr %Optional.Get.call, align 4, !dbg !28 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %.loc5_12.2), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @_CNone.Optional.Core.906a4009849fb1ba(ptr %return), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: call void @_CNone.Optional.Core.906a4009849fb1ba(ptr %return), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CAddOrRemoveConst.Main(i32 %a, i32 %b) #0 !dbg !24 { +// CHECK:STDOUT: define void @_CAddOrRemoveConst.Main(i32 %a, i32 %b) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var.loc11 = alloca <{ i32, i1 }>, align 4, !dbg !30 -// CHECK:STDOUT: %_.var.loc12 = alloca <{ i32, i1 }>, align 4, !dbg !31 -// CHECK:STDOUT: %_.var.loc13 = alloca <{ i32, i1 }>, align 4, !dbg !32 -// CHECK:STDOUT: %_.var.loc14 = alloca <{ i32, i1 }>, align 4, !dbg !33 -// CHECK:STDOUT: %_.var.loc15 = alloca <{ i32, i1 }>, align 4, !dbg !34 -// CHECK:STDOUT: %_.var.loc16 = alloca <{ i32, i1 }>, align 4, !dbg !35 -// CHECK:STDOUT: %_.var.loc17 = alloca <{ i32, i1 }>, align 4, !dbg !36 -// CHECK:STDOUT: %_.var.loc18 = alloca <{ i32, i1 }>, align 4, !dbg !37 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc11), !dbg !30 -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %_.var.loc11, i32 %a), !dbg !30 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !31 -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr %_.var.loc12, i32 %a), !dbg !31 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !32 -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %_.var.loc13, i32 %a), !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !33 -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr %_.var.loc14, i32 %a), !dbg !33 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !34 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d"(ptr %_.var.loc15, i32 %b), !dbg !34 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !35 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477"(ptr %_.var.loc16, i32 %b), !dbg !35 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !36 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4"(ptr %_.var.loc17, i32 %b), !dbg !36 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !37 -// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6"(ptr %_.var.loc18, i32 %b), !dbg !37 -// CHECK:STDOUT: call void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %_.var.loc18), !dbg !37 -// CHECK:STDOUT: call void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %_.var.loc17), !dbg !36 -// CHECK:STDOUT: call void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %_.var.loc16), !dbg !35 -// CHECK:STDOUT: call void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %_.var.loc15), !dbg !34 -// CHECK:STDOUT: call void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %_.var.loc14), !dbg !33 -// CHECK:STDOUT: call void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %_.var.loc13), !dbg !32 -// CHECK:STDOUT: call void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %_.var.loc12), !dbg !31 -// CHECK:STDOUT: call void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %_.var.loc11), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: %_.var.loc11 = alloca <{ i32, i1 }>, align 4, !dbg !42 +// CHECK:STDOUT: %_.var.loc12 = alloca <{ i32, i1 }>, align 4, !dbg !45 +// CHECK:STDOUT: %_.var.loc13 = alloca <{ i32, i1 }>, align 4, !dbg !48 +// CHECK:STDOUT: %_.var.loc14 = alloca <{ i32, i1 }>, align 4, !dbg !51 +// CHECK:STDOUT: %_.var.loc15 = alloca <{ i32, i1 }>, align 4, !dbg !54 +// CHECK:STDOUT: %_.var.loc16 = alloca <{ i32, i1 }>, align 4, !dbg !57 +// CHECK:STDOUT: %_.var.loc17 = alloca <{ i32, i1 }>, align 4, !dbg !60 +// CHECK:STDOUT: %_.var.loc18 = alloca <{ i32, i1 }>, align 4, !dbg !63 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc11), !dbg !42 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %_.var.loc11, i32 %a), !dbg !42 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !45 +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr %_.var.loc12, i32 %a), !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !48 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %_.var.loc13, i32 %a), !dbg !48 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !51 +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr %_.var.loc14, i32 %a), !dbg !51 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !54 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d"(ptr %_.var.loc15, i32 %b), !dbg !54 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !57 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477"(ptr %_.var.loc16, i32 %b), !dbg !57 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !60 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4"(ptr %_.var.loc17, i32 %b), !dbg !60 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !63 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6"(ptr %_.var.loc18, i32 %b), !dbg !63 +// CHECK:STDOUT: call void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %_.var.loc18), !dbg !63 +// CHECK:STDOUT: call void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %_.var.loc17), !dbg !60 +// CHECK:STDOUT: call void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %_.var.loc16), !dbg !57 +// CHECK:STDOUT: call void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %_.var.loc15), !dbg !54 +// CHECK:STDOUT: call void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %_.var.loc14), !dbg !51 +// CHECK:STDOUT: call void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %_.var.loc13), !dbg !48 +// CHECK:STDOUT: call void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %_.var.loc12), !dbg !45 +// CHECK:STDOUT: call void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %_.var.loc11), !dbg !42 +// CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d7e4fb3943386363:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.d7e4fb3943386363:core.Destroy.Core"(ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a03c07178fa8456d:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.a03c07178fa8456d:core.Destroy.Core"(ptr %self) #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !48 +// CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f5723608e904fbe5:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.f5723608e904fbe5:core.Destroy.Core"(ptr %self) #0 !dbg !76 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !52 +// CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.46370f1b0ab87a42:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.46370f1b0ab87a42:core.Destroy.Core"(ptr %self) #0 !dbg !80 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !56 +// CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ee28d1799e745f3:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ee28d1799e745f3:core.Destroy.Core"(ptr %self) #0 !dbg !84 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !60 +// CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.94cb0f9c54adf0e8:core.Destroy.Core"(ptr %self) #0 !dbg !88 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !64 +// CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ca96444430cac21:core.Destroy.Core"(ptr %self) #0 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define weak_odr void @"_COp.18fc07ffd08329ec:core.Destroy.Core"(ptr %self) #0 !dbg !96 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !72 +// CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a45900cb03df98d:core.Destroy.Core"(ptr %self) #0 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !76 +// CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: define weak_odr void @"_COp.4622d8af498f8150:core.Destroy.Core"(ptr %self) #0 !dbg !104 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !80 +// CHECK:STDOUT: ret void, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2222b8b3794fd8f9:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: define weak_odr void @"_COp.2222b8b3794fd8f9:core.Destroy.Core"(ptr %self) #0 !dbg !108 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !84 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %self) #0 !dbg !85 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !88 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %self) #0 !dbg !89 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !92 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.6e9e957697159b53(ptr %self) #0 !dbg !93 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %self), !dbg !97 -// CHECK:STDOUT: ret i1 %1, !dbg !98 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.6e9e957697159b53(ptr %self) #0 !dbg !99 { -// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %self), !dbg !102 -// CHECK:STDOUT: ret ptr %1, !dbg !103 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !104 { -// CHECK:STDOUT: call void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba"(ptr %return, i32 %self), !dbg !109 // CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.906a4009849fb1ba(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !111 { -// CHECK:STDOUT: call void @"_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr %return), !dbg !114 -// CHECK:STDOUT: ret void, !dbg !115 +// CHECK:STDOUT: define weak_odr void @"_COp.5dd68b2c45b82f63:core.Destroy.Core"(ptr %self) #0 !dbg !112 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !114 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.2fb07d7cce7a11ab:core.Destroy.Core"(ptr %self) #0 !dbg !116 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !118 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.6e9e957697159b53(ptr %self) #0 !dbg !121 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %self), !dbg !127 +// CHECK:STDOUT: ret i1 %1, !dbg !128 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.6e9e957697159b53(ptr %self) #0 !dbg !130 { +// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %self), !dbg !136 +// CHECK:STDOUT: ret ptr %1, !dbg !137 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { +// CHECK:STDOUT: call void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba"(ptr %return, i32 %self), !dbg !144 +// CHECK:STDOUT: ret void, !dbg !145 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.906a4009849fb1ba(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !147 { +// CHECK:STDOUT: call void @"_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr %return), !dbg !150 +// CHECK:STDOUT: ret void, !dbg !151 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !116 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %self), !dbg !120 -// CHECK:STDOUT: ret void, !dbg !121 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !153 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %self), !dbg !158 +// CHECK:STDOUT: ret void, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !122 { -// CHECK:STDOUT: call void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643"(ptr %return, i32 %self), !dbg !125 -// CHECK:STDOUT: ret void, !dbg !126 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !161 { +// CHECK:STDOUT: call void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643"(ptr %return, i32 %self), !dbg !166 +// CHECK:STDOUT: ret void, !dbg !167 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !127 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %return, i32 %self), !dbg !130 -// CHECK:STDOUT: ret void, !dbg !131 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !132 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %self), !dbg !135 -// CHECK:STDOUT: ret void, !dbg !136 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !137 { -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr %return, i32 %self), !dbg !140 -// CHECK:STDOUT: ret void, !dbg !141 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !142 { -// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %return, i32 %self), !dbg !145 -// CHECK:STDOUT: ret void, !dbg !146 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !147 { -// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr %return, i32 %self), !dbg !150 -// CHECK:STDOUT: ret void, !dbg !151 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %value) #0 !dbg !152 { -// CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !155 -// CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !156 -// CHECK:STDOUT: ret i1 %2, !dbg !157 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %value) #0 !dbg !158 { -// CHECK:STDOUT: ret ptr %value, !dbg !161 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !162 { -// CHECK:STDOUT: call void @_CSome.Optional.Core.906a4009849fb1ba(ptr %return, i32 %self), !dbg !165 -// CHECK:STDOUT: ret void, !dbg !166 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !167 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !168 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !168 -// CHECK:STDOUT: ret void, !dbg !169 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !170 { -// CHECK:STDOUT: %temp = alloca i32, align 4, !dbg !173 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !173 -// CHECK:STDOUT: %1 = call i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2"(i32 %self), !dbg !173 -// CHECK:STDOUT: store i32 %1, ptr %temp, align 4, !dbg !173 -// CHECK:STDOUT: %2 = load i32, ptr %temp, align 4, !dbg !173 -// CHECK:STDOUT: call void @_CSome.Optional.Core.7e0c2c3b236f4238(ptr %return, i32 %2), !dbg !174 -// CHECK:STDOUT: call void @"_COp.d7e4fb3943386363:core.Destroy.Core"(ptr %temp), !dbg !173 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !169 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %return, i32 %self), !dbg !174 // CHECK:STDOUT: ret void, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.906a4009849fb1ba(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !176 { -// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr %return, i32 %value), !dbg !179 -// CHECK:STDOUT: ret void, !dbg !180 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !177 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e"(ptr %return, i32 %self), !dbg !183 +// CHECK:STDOUT: ret void, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2"(i32 %self) #0 !dbg !181 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self), !dbg !184 -// CHECK:STDOUT: ret i32 %1, !dbg !185 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !186 { +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d"(ptr %return, i32 %self), !dbg !192 +// CHECK:STDOUT: ret void, !dbg !193 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.7e0c2c3b236f4238(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !186 { -// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86"(ptr %return, i32 %value), !dbg !189 -// CHECK:STDOUT: ret void, !dbg !190 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !195 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9"(ptr %return, i32 %self), !dbg !201 +// CHECK:STDOUT: ret void, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !191 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !194 -// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !194 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !195 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !195 -// CHECK:STDOUT: ret void, !dbg !196 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !197 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !203 -// CHECK:STDOUT: ret i32 %1, !dbg !204 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !205 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !208 -// CHECK:STDOUT: %1 = call i32 @"_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4"(i32 %self), !dbg !209 -// CHECK:STDOUT: store i32 %1, ptr %value, align 4, !dbg !208 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !210 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !210 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !204 { +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4"(ptr %return, i32 %self), !dbg !210 // CHECK:STDOUT: ret void, !dbg !211 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !212 { -// CHECK:STDOUT: ret i32 %self, !dbg !215 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %value) #0 !dbg !213 { +// CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !219 +// CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !220 +// CHECK:STDOUT: ret i1 %2, !dbg !221 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4"(i32 %self) #0 !dbg !216 { -// CHECK:STDOUT: ret i32 %self, !dbg !220 +// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %value) #0 !dbg !223 { +// CHECK:STDOUT: ret ptr %value, !dbg !229 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !231 { +// CHECK:STDOUT: call void @_CSome.Optional.Core.906a4009849fb1ba(ptr %return, i32 %self), !dbg !237 +// CHECK:STDOUT: ret void, !dbg !238 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !240 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !247 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !247 +// CHECK:STDOUT: ret void, !dbg !248 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !249 { +// CHECK:STDOUT: %temp = alloca i32, align 4, !dbg !254 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !254 +// CHECK:STDOUT: %1 = call i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2"(i32 %self), !dbg !254 +// CHECK:STDOUT: store i32 %1, ptr %temp, align 4, !dbg !254 +// CHECK:STDOUT: %2 = load i32, ptr %temp, align 4, !dbg !254 +// CHECK:STDOUT: call void @_CSome.Optional.Core.7e0c2c3b236f4238(ptr %return, i32 %2), !dbg !255 +// CHECK:STDOUT: call void @"_COp.d7e4fb3943386363:core.Destroy.Core"(ptr %temp), !dbg !254 +// CHECK:STDOUT: ret void, !dbg !256 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.906a4009849fb1ba(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !258 { +// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr %return, i32 %value), !dbg !263 +// CHECK:STDOUT: ret void, !dbg !264 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2"(i32 %self) #0 !dbg !266 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self), !dbg !271 +// CHECK:STDOUT: ret i32 %1, !dbg !274 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.7e0c2c3b236f4238(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !276 { +// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86"(ptr %return, i32 %value), !dbg !281 +// CHECK:STDOUT: ret void, !dbg !282 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !284 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !293 +// CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !293 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !295 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !295 +// CHECK:STDOUT: ret void, !dbg !296 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !299 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !304 +// CHECK:STDOUT: ret i32 %1, !dbg !306 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !308 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !317 +// CHECK:STDOUT: %1 = call i32 @"_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4"(i32 %self), !dbg !318 +// CHECK:STDOUT: store i32 %1, ptr %value, align 4, !dbg !317 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !319 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !319 +// CHECK:STDOUT: ret void, !dbg !320 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !322 { +// CHECK:STDOUT: ret i32 %self, !dbg !328 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4"(i32 %self) #0 !dbg !331 { +// CHECK:STDOUT: ret i32 %self, !dbg !338 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -370,230 +370,230 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "convert.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 3, column: 39, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !1, line: 3, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!14, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 4, column: 7, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 4, column: 6, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 5, column: 13, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 5, column: 12, scope: !11) -// CHECK:STDOUT: !21 = !DILocation(line: 5, column: 5, scope: !11) -// CHECK:STDOUT: !22 = !DILocation(line: 7, column: 10, scope: !11) -// CHECK:STDOUT: !23 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "AddOrRemoveConst", linkageName: "_CAddOrRemoveConst.Main", scope: null, file: !1, line: 10, type: !25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !25 = !DISubroutineType(types: !26) -// CHECK:STDOUT: !26 = !{null, !7, !7} -// CHECK:STDOUT: !27 = !{!28, !29} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !24, type: !7) -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 2, scope: !24, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 11, column: 3, scope: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 12, column: 3, scope: !24) -// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 3, scope: !24) -// CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !24) -// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !24) -// CHECK:STDOUT: !35 = !DILocation(line: 16, column: 3, scope: !24) -// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 3, scope: !24) -// CHECK:STDOUT: !37 = !DILocation(line: 18, column: 3, scope: !24) -// CHECK:STDOUT: !38 = !DILocation(line: 10, column: 1, scope: !24) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d7e4fb3943386363:core.Destroy.Core", scope: null, file: !1, line: 13, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !40 = !DISubroutineType(types: !41) -// CHECK:STDOUT: !41 = !{null, !14} -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !39, type: !14) -// CHECK:STDOUT: !44 = !DILocation(line: 13, column: 10, scope: !39) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a03c07178fa8456d:core.Destroy.Core", scope: null, file: !1, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !46) -// CHECK:STDOUT: !46 = !{!47} -// CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !14) -// CHECK:STDOUT: !48 = !DILocation(line: 18, column: 3, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5723608e904fbe5:core.Destroy.Core", scope: null, file: !1, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !50) -// CHECK:STDOUT: !50 = !{!51} -// CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !14) -// CHECK:STDOUT: !52 = !DILocation(line: 18, column: 3, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.46370f1b0ab87a42:core.Destroy.Core", scope: null, file: !1, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !54) -// CHECK:STDOUT: !54 = !{!55} -// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !14) -// CHECK:STDOUT: !56 = !DILocation(line: 18, column: 3, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ee28d1799e745f3:core.Destroy.Core", scope: null, file: !1, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !58) -// CHECK:STDOUT: !58 = !{!59} -// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !14) -// CHECK:STDOUT: !60 = !DILocation(line: 18, column: 3, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.94cb0f9c54adf0e8:core.Destroy.Core", scope: null, file: !1, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !62) -// CHECK:STDOUT: !62 = !{!63} -// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) -// CHECK:STDOUT: !64 = !DILocation(line: 18, column: 3, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ca96444430cac21:core.Destroy.Core", scope: null, file: !1, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !66) -// CHECK:STDOUT: !66 = !{!67} -// CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !14) -// CHECK:STDOUT: !68 = !DILocation(line: 18, column: 3, scope: !65) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !1, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !70) -// CHECK:STDOUT: !70 = !{!71} -// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !69, type: !14) -// CHECK:STDOUT: !72 = !DILocation(line: 16, column: 3, scope: !69) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !74) -// CHECK:STDOUT: !74 = !{!75} -// CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !7) -// CHECK:STDOUT: !76 = !DILocation(line: 16, column: 3, scope: !73) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !1, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !78) -// CHECK:STDOUT: !78 = !{!79} -// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !14) -// CHECK:STDOUT: !80 = !DILocation(line: 16, column: 3, scope: !77) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2222b8b3794fd8f9:core.Destroy.Core", scope: null, file: !1, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !82) -// CHECK:STDOUT: !82 = !{!83} -// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !14) -// CHECK:STDOUT: !84 = !DILocation(line: 16, column: 3, scope: !81) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5dd68b2c45b82f63:core.Destroy.Core", scope: null, file: !1, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !86) -// CHECK:STDOUT: !86 = !{!87} -// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !14) -// CHECK:STDOUT: !88 = !DILocation(line: 16, column: 3, scope: !85) -// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2fb07d7cce7a11ab:core.Destroy.Core", scope: null, file: !1, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !90) -// CHECK:STDOUT: !90 = !{!91} -// CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !89, type: !14) -// CHECK:STDOUT: !92 = !DILocation(line: 16, column: 3, scope: !89) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.6e9e957697159b53", scope: null, file: !94, line: 36, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !95) -// CHECK:STDOUT: !94 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !95 = !{!96} -// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !93, type: !14) -// CHECK:STDOUT: !97 = !DILocation(line: 37, column: 12, scope: !93) -// CHECK:STDOUT: !98 = !DILocation(line: 37, column: 5, scope: !93) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.6e9e957697159b53", scope: null, file: !94, line: 39, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !100) -// CHECK:STDOUT: !100 = !{!101} -// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !99, type: !14) -// CHECK:STDOUT: !102 = !DILocation(line: 40, column: 12, scope: !99) -// CHECK:STDOUT: !103 = !DILocation(line: 40, column: 5, scope: !99) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e", scope: null, file: !94, line: 105, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !107) -// CHECK:STDOUT: !105 = !DISubroutineType(types: !106) -// CHECK:STDOUT: !106 = !{!14, !7} -// CHECK:STDOUT: !107 = !{!108} -// CHECK:STDOUT: !108 = !DILocalVariable(arg: 1, scope: !104, type: !7) -// CHECK:STDOUT: !109 = !DILocation(line: 106, column: 12, scope: !104) -// CHECK:STDOUT: !110 = !DILocation(line: 106, column: 5, scope: !104) -// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.906a4009849fb1ba", scope: null, file: !94, line: 30, type: !112, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !112 = !DISubroutineType(types: !113) -// CHECK:STDOUT: !113 = !{!14} -// CHECK:STDOUT: !114 = !DILocation(line: 31, column: 12, scope: !111) -// CHECK:STDOUT: !115 = !DILocation(line: 31, column: 5, scope: !111) -// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d", scope: null, file: !117, line: 43, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !118) -// CHECK:STDOUT: !117 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") -// CHECK:STDOUT: !118 = !{!119} -// CHECK:STDOUT: !119 = !DILocalVariable(arg: 1, scope: !116, type: !7) -// CHECK:STDOUT: !120 = !DILocation(line: 43, column: 40, scope: !116) -// CHECK:STDOUT: !121 = !DILocation(line: 43, column: 33, scope: !116) -// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9", scope: null, file: !94, line: 105, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !123) -// CHECK:STDOUT: !123 = !{!124} -// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !122, type: !7) -// CHECK:STDOUT: !125 = !DILocation(line: 106, column: 12, scope: !122) -// CHECK:STDOUT: !126 = !DILocation(line: 106, column: 5, scope: !122) -// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4", scope: null, file: !117, line: 43, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !128) -// CHECK:STDOUT: !128 = !{!129} -// CHECK:STDOUT: !129 = !DILocalVariable(arg: 1, scope: !127, type: !7) -// CHECK:STDOUT: !130 = !DILocation(line: 43, column: 40, scope: !127) -// CHECK:STDOUT: !131 = !DILocation(line: 43, column: 33, scope: !127) -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d", scope: null, file: !117, line: 47, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !133) -// CHECK:STDOUT: !133 = !{!134} -// CHECK:STDOUT: !134 = !DILocalVariable(arg: 1, scope: !132, type: !7) -// CHECK:STDOUT: !135 = !DILocation(line: 47, column: 34, scope: !132) -// CHECK:STDOUT: !136 = !DILocation(line: 47, column: 27, scope: !132) -// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477", scope: null, file: !117, line: 47, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !138) -// CHECK:STDOUT: !138 = !{!139} -// CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !137, type: !7) -// CHECK:STDOUT: !140 = !DILocation(line: 47, column: 34, scope: !137) -// CHECK:STDOUT: !141 = !DILocation(line: 47, column: 27, scope: !137) -// CHECK:STDOUT: !142 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4", scope: null, file: !117, line: 47, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !143) -// CHECK:STDOUT: !143 = !{!144} -// CHECK:STDOUT: !144 = !DILocalVariable(arg: 1, scope: !142, type: !7) -// CHECK:STDOUT: !145 = !DILocation(line: 47, column: 34, scope: !142) -// CHECK:STDOUT: !146 = !DILocation(line: 47, column: 27, scope: !142) -// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6", scope: null, file: !117, line: 47, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !148) -// CHECK:STDOUT: !148 = !{!149} -// CHECK:STDOUT: !149 = !DILocalVariable(arg: 1, scope: !147, type: !7) -// CHECK:STDOUT: !150 = !DILocation(line: 47, column: 34, scope: !147) -// CHECK:STDOUT: !151 = !DILocation(line: 47, column: 27, scope: !147) -// CHECK:STDOUT: !152 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba", scope: null, file: !94, line: 172, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !153) -// CHECK:STDOUT: !153 = !{!154} -// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !152, type: !14) -// CHECK:STDOUT: !155 = !DILocation(line: 173, column: 16, scope: !152) -// CHECK:STDOUT: !156 = !DILocation(line: 173, column: 12, scope: !152) -// CHECK:STDOUT: !157 = !DILocation(line: 173, column: 5, scope: !152) -// CHECK:STDOUT: !158 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba", scope: null, file: !94, line: 175, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !159) -// CHECK:STDOUT: !159 = !{!160} -// CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !158, type: !14) -// CHECK:STDOUT: !161 = !DILocation(line: 176, column: 5, scope: !158) -// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba", scope: null, file: !94, line: 80, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !163) -// CHECK:STDOUT: !163 = !{!164} -// CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !162, type: !7) -// CHECK:STDOUT: !165 = !DILocation(line: 81, column: 12, scope: !162) -// CHECK:STDOUT: !166 = !DILocation(line: 81, column: 5, scope: !162) -// CHECK:STDOUT: !167 = distinct !DISubprogram(name: "None", linkageName: "_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533", scope: null, file: !94, line: 125, type: !112, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !168 = !DILocation(line: 128, column: 5, scope: !167) -// CHECK:STDOUT: !169 = !DILocation(line: 129, column: 5, scope: !167) -// CHECK:STDOUT: !170 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643", scope: null, file: !94, line: 87, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !171) -// CHECK:STDOUT: !171 = !{!172} -// CHECK:STDOUT: !172 = !DILocalVariable(arg: 1, scope: !170, type: !7) -// CHECK:STDOUT: !173 = !DILocation(line: 88, column: 29, scope: !170) -// CHECK:STDOUT: !174 = !DILocation(line: 88, column: 12, scope: !170) -// CHECK:STDOUT: !175 = !DILocation(line: 88, column: 5, scope: !170) -// CHECK:STDOUT: !176 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.906a4009849fb1ba", scope: null, file: !94, line: 33, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !177) -// CHECK:STDOUT: !177 = !{!178} -// CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !176, type: !7) -// CHECK:STDOUT: !179 = !DILocation(line: 34, column: 12, scope: !176) -// CHECK:STDOUT: !180 = !DILocation(line: 34, column: 5, scope: !176) -// CHECK:STDOUT: !181 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2", scope: null, file: !117, line: 43, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !182) -// CHECK:STDOUT: !182 = !{!183} -// CHECK:STDOUT: !183 = !DILocalVariable(arg: 1, scope: !181, type: !7) -// CHECK:STDOUT: !184 = !DILocation(line: 43, column: 40, scope: !181) -// CHECK:STDOUT: !185 = !DILocation(line: 43, column: 33, scope: !181) -// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.7e0c2c3b236f4238", scope: null, file: !94, line: 33, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !187) -// CHECK:STDOUT: !187 = !{!188} -// CHECK:STDOUT: !188 = !DILocalVariable(arg: 1, scope: !186, type: !7) -// CHECK:STDOUT: !189 = !DILocation(line: 34, column: 12, scope: !186) -// CHECK:STDOUT: !190 = !DILocation(line: 34, column: 5, scope: !186) -// CHECK:STDOUT: !191 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533", scope: null, file: !94, line: 131, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !192) -// CHECK:STDOUT: !192 = !{!193} -// CHECK:STDOUT: !193 = !DILocalVariable(arg: 1, scope: !191, type: !7) -// CHECK:STDOUT: !194 = !DILocation(line: 137, column: 5, scope: !191) -// CHECK:STDOUT: !195 = !DILocation(line: 138, column: 5, scope: !191) -// CHECK:STDOUT: !196 = !DILocation(line: 139, column: 5, scope: !191) -// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !198, line: 64, type: !199, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !201) -// CHECK:STDOUT: !198 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !199 = !DISubroutineType(types: !200) -// CHECK:STDOUT: !200 = !{!7, !7} -// CHECK:STDOUT: !201 = !{!202} -// CHECK:STDOUT: !202 = !DILocalVariable(arg: 1, scope: !197, type: !7) -// CHECK:STDOUT: !203 = !DILocation(line: 66, column: 17, scope: !197) -// CHECK:STDOUT: !204 = !DILocation(line: 66, column: 5, scope: !197) -// CHECK:STDOUT: !205 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86", scope: null, file: !94, line: 131, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !206) -// CHECK:STDOUT: !206 = !{!207} -// CHECK:STDOUT: !207 = !DILocalVariable(arg: 1, scope: !205, type: !7) -// CHECK:STDOUT: !208 = !DILocation(line: 137, column: 5, scope: !205) -// CHECK:STDOUT: !209 = !DILocation(line: 137, column: 28, scope: !205) -// CHECK:STDOUT: !210 = !DILocation(line: 138, column: 5, scope: !205) -// CHECK:STDOUT: !211 = !DILocation(line: 139, column: 5, scope: !205) -// CHECK:STDOUT: !212 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !198, line: 59, type: !199, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !213) -// CHECK:STDOUT: !213 = !{!214} -// CHECK:STDOUT: !214 = !DILocalVariable(arg: 1, scope: !212, type: !7) -// CHECK:STDOUT: !215 = !DILocation(line: 59, column: 28, scope: !212) -// CHECK:STDOUT: !216 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4", scope: null, file: !217, line: 23, type: !105, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !218) -// CHECK:STDOUT: !217 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") -// CHECK:STDOUT: !218 = !{!219} -// CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !216, type: !7) -// CHECK:STDOUT: !220 = !DILocation(line: 23, column: 25, scope: !216) +// CHECK:STDOUT: !4 = !DIFile(filename: "convert.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{null, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{!9, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = !{null, !9} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 3, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !19) +// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !16, type: !6) +// CHECK:STDOUT: !18 = !DILocation(line: 3, column: 39, scope: !16) +// CHECK:STDOUT: !19 = !{!17} +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Main", scope: null, file: !4, line: 3, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !20, type: !9) +// CHECK:STDOUT: !25 = !DILocation(line: 4, column: 7, scope: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 4, column: 6, scope: !20) +// CHECK:STDOUT: !27 = !DILocation(line: 5, column: 13, scope: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 5, column: 12, scope: !20) +// CHECK:STDOUT: !29 = !DILocation(line: 5, column: 5, scope: !20) +// CHECK:STDOUT: !30 = !{!9, !6} +// CHECK:STDOUT: !31 = !DISubroutineType(types: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 7, column: 10, scope: !20) +// CHECK:STDOUT: !33 = !{!9} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 7, column: 3, scope: !20) +// CHECK:STDOUT: !36 = !{!21} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "AddOrRemoveConst", linkageName: "_CAddOrRemoveConst.Main", scope: null, file: !4, line: 10, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !67) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !6) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !37, type: !6) +// CHECK:STDOUT: !42 = !DILocation(line: 11, column: 3, scope: !37) +// CHECK:STDOUT: !45 = !DILocation(line: 12, column: 3, scope: !37) +// CHECK:STDOUT: !48 = !DILocation(line: 13, column: 3, scope: !37) +// CHECK:STDOUT: !51 = !DILocation(line: 14, column: 3, scope: !37) +// CHECK:STDOUT: !54 = !DILocation(line: 15, column: 3, scope: !37) +// CHECK:STDOUT: !57 = !DILocation(line: 16, column: 3, scope: !37) +// CHECK:STDOUT: !60 = !DILocation(line: 17, column: 3, scope: !37) +// CHECK:STDOUT: !63 = !DILocation(line: 18, column: 3, scope: !37) +// CHECK:STDOUT: !66 = !DILocation(line: 10, column: 1, scope: !37) +// CHECK:STDOUT: !67 = !{!38, !39} +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d7e4fb3943386363:core.Destroy.Core", scope: null, file: !4, line: 13, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !71) +// CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !68, type: !9) +// CHECK:STDOUT: !70 = !DILocation(line: 13, column: 10, scope: !68) +// CHECK:STDOUT: !71 = !{!69} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a03c07178fa8456d:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !75) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !9) +// CHECK:STDOUT: !74 = !DILocation(line: 18, column: 3, scope: !72) +// CHECK:STDOUT: !75 = !{!73} +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5723608e904fbe5:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !79) +// CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !76, type: !9) +// CHECK:STDOUT: !78 = !DILocation(line: 18, column: 3, scope: !76) +// CHECK:STDOUT: !79 = !{!77} +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.46370f1b0ab87a42:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !83) +// CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !80, type: !9) +// CHECK:STDOUT: !82 = !DILocation(line: 18, column: 3, scope: !80) +// CHECK:STDOUT: !83 = !{!81} +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ee28d1799e745f3:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !87) +// CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !84, type: !9) +// CHECK:STDOUT: !86 = !DILocation(line: 18, column: 3, scope: !84) +// CHECK:STDOUT: !87 = !{!85} +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "Op", linkageName: "_COp.94cb0f9c54adf0e8:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !91) +// CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !88, type: !9) +// CHECK:STDOUT: !90 = !DILocation(line: 18, column: 3, scope: !88) +// CHECK:STDOUT: !91 = !{!89} +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ca96444430cac21:core.Destroy.Core", scope: null, file: !4, line: 18, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) +// CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !92, type: !9) +// CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !92) +// CHECK:STDOUT: !95 = !{!93} +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18fc07ffd08329ec:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !99) +// CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !96, type: !9) +// CHECK:STDOUT: !98 = !DILocation(line: 16, column: 3, scope: !96) +// CHECK:STDOUT: !99 = !{!97} +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a45900cb03df98d:core.Destroy.Core", scope: null, file: !4, line: 16, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !103) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !6) +// CHECK:STDOUT: !102 = !DILocation(line: 16, column: 3, scope: !100) +// CHECK:STDOUT: !103 = !{!101} +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4622d8af498f8150:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !107) +// CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !104, type: !9) +// CHECK:STDOUT: !106 = !DILocation(line: 16, column: 3, scope: !104) +// CHECK:STDOUT: !107 = !{!105} +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2222b8b3794fd8f9:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !111) +// CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !108, type: !9) +// CHECK:STDOUT: !110 = !DILocation(line: 16, column: 3, scope: !108) +// CHECK:STDOUT: !111 = !{!109} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5dd68b2c45b82f63:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !115) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !9) +// CHECK:STDOUT: !114 = !DILocation(line: 16, column: 3, scope: !112) +// CHECK:STDOUT: !115 = !{!113} +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2fb07d7cce7a11ab:core.Destroy.Core", scope: null, file: !4, line: 16, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !119) +// CHECK:STDOUT: !117 = !DILocalVariable(arg: 1, scope: !116, type: !9) +// CHECK:STDOUT: !118 = !DILocation(line: 16, column: 3, scope: !116) +// CHECK:STDOUT: !119 = !{!117} +// CHECK:STDOUT: !120 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.6e9e957697159b53", scope: null, file: !120, line: 36, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !129) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !121, type: !9) +// CHECK:STDOUT: !127 = !DILocation(line: 37, column: 12, scope: !121) +// CHECK:STDOUT: !128 = !DILocation(line: 37, column: 5, scope: !121) +// CHECK:STDOUT: !129 = !{!122} +// CHECK:STDOUT: !130 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.6e9e957697159b53", scope: null, file: !120, line: 39, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !138) +// CHECK:STDOUT: !131 = !DILocalVariable(arg: 1, scope: !130, type: !9) +// CHECK:STDOUT: !136 = !DILocation(line: 40, column: 12, scope: !130) +// CHECK:STDOUT: !137 = !DILocation(line: 40, column: 5, scope: !130) +// CHECK:STDOUT: !138 = !{!131} +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.c96d3acaa6fb5a6e", scope: null, file: !120, line: 105, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !146) +// CHECK:STDOUT: !140 = !DILocalVariable(arg: 1, scope: !139, type: !6) +// CHECK:STDOUT: !144 = !DILocation(line: 106, column: 12, scope: !139) +// CHECK:STDOUT: !145 = !DILocation(line: 106, column: 5, scope: !139) +// CHECK:STDOUT: !146 = !{!140} +// CHECK:STDOUT: !147 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.906a4009849fb1ba", scope: null, file: !120, line: 30, type: !34, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !150 = !DILocation(line: 31, column: 12, scope: !147) +// CHECK:STDOUT: !151 = !DILocation(line: 31, column: 5, scope: !147) +// CHECK:STDOUT: !152 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") +// CHECK:STDOUT: !153 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.f2690ea369d3e07d", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !160) +// CHECK:STDOUT: !154 = !DILocalVariable(arg: 1, scope: !153, type: !6) +// CHECK:STDOUT: !158 = !DILocation(line: 43, column: 40, scope: !153) +// CHECK:STDOUT: !159 = !DILocation(line: 43, column: 33, scope: !153) +// CHECK:STDOUT: !160 = !{!154} +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.41ad44ef701deae9", scope: null, file: !120, line: 105, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !168) +// CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !6) +// CHECK:STDOUT: !166 = !DILocation(line: 106, column: 12, scope: !161) +// CHECK:STDOUT: !167 = !DILocation(line: 106, column: 5, scope: !161) +// CHECK:STDOUT: !168 = !{!162} +// CHECK:STDOUT: !169 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.19b31b2c090374a4", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !176) +// CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !169, type: !6) +// CHECK:STDOUT: !174 = !DILocation(line: 43, column: 40, scope: !169) +// CHECK:STDOUT: !175 = !DILocation(line: 43, column: 33, scope: !169) +// CHECK:STDOUT: !176 = !{!170} +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f2690ea369d3e07d", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !185) +// CHECK:STDOUT: !178 = !DILocalVariable(arg: 1, scope: !177, type: !6) +// CHECK:STDOUT: !183 = !DILocation(line: 47, column: 34, scope: !177) +// CHECK:STDOUT: !184 = !DILocation(line: 47, column: 27, scope: !177) +// CHECK:STDOUT: !185 = !{!178} +// CHECK:STDOUT: !186 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.4dfd69358d1a2477", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !194) +// CHECK:STDOUT: !187 = !DILocalVariable(arg: 1, scope: !186, type: !6) +// CHECK:STDOUT: !192 = !DILocation(line: 47, column: 34, scope: !186) +// CHECK:STDOUT: !193 = !DILocation(line: 47, column: 27, scope: !186) +// CHECK:STDOUT: !194 = !{!187} +// CHECK:STDOUT: !195 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.19b31b2c090374a4", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !203) +// CHECK:STDOUT: !196 = !DILocalVariable(arg: 1, scope: !195, type: !6) +// CHECK:STDOUT: !201 = !DILocation(line: 47, column: 34, scope: !195) +// CHECK:STDOUT: !202 = !DILocation(line: 47, column: 27, scope: !195) +// CHECK:STDOUT: !203 = !{!196} +// CHECK:STDOUT: !204 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.f9ede611c58359e6", scope: null, file: !152, line: 47, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !212) +// CHECK:STDOUT: !205 = !DILocalVariable(arg: 1, scope: !204, type: !6) +// CHECK:STDOUT: !210 = !DILocation(line: 47, column: 34, scope: !204) +// CHECK:STDOUT: !211 = !DILocation(line: 47, column: 27, scope: !204) +// CHECK:STDOUT: !212 = !{!205} +// CHECK:STDOUT: !213 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba", scope: null, file: !120, line: 172, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !222) +// CHECK:STDOUT: !214 = !DILocalVariable(arg: 1, scope: !213, type: !9) +// CHECK:STDOUT: !219 = !DILocation(line: 173, column: 16, scope: !213) +// CHECK:STDOUT: !220 = !DILocation(line: 173, column: 12, scope: !213) +// CHECK:STDOUT: !221 = !DILocation(line: 173, column: 5, scope: !213) +// CHECK:STDOUT: !222 = !{!214} +// CHECK:STDOUT: !223 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba", scope: null, file: !120, line: 175, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !230) +// CHECK:STDOUT: !224 = !DILocalVariable(arg: 1, scope: !223, type: !9) +// CHECK:STDOUT: !229 = !DILocation(line: 176, column: 5, scope: !223) +// CHECK:STDOUT: !230 = !{!224} +// CHECK:STDOUT: !231 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.906a4009849fb1ba", scope: null, file: !120, line: 80, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !239) +// CHECK:STDOUT: !232 = !DILocalVariable(arg: 1, scope: !231, type: !6) +// CHECK:STDOUT: !237 = !DILocation(line: 81, column: 12, scope: !231) +// CHECK:STDOUT: !238 = !DILocation(line: 81, column: 5, scope: !231) +// CHECK:STDOUT: !239 = !{!232} +// CHECK:STDOUT: !240 = distinct !DISubprogram(name: "None", linkageName: "_CNone.74becf39533834ee:OptionalStorage.Core.694f9f022249e533", scope: null, file: !120, line: 125, type: !34, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !247 = !DILocation(line: 128, column: 5, scope: !240) +// CHECK:STDOUT: !248 = !DILocation(line: 129, column: 5, scope: !240) +// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.c9c7306e533f1643", scope: null, file: !120, line: 87, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !257) +// CHECK:STDOUT: !250 = !DILocalVariable(arg: 1, scope: !249, type: !6) +// CHECK:STDOUT: !254 = !DILocation(line: 88, column: 29, scope: !249) +// CHECK:STDOUT: !255 = !DILocation(line: 88, column: 12, scope: !249) +// CHECK:STDOUT: !256 = !DILocation(line: 88, column: 5, scope: !249) +// CHECK:STDOUT: !257 = !{!250} +// CHECK:STDOUT: !258 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.906a4009849fb1ba", scope: null, file: !120, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !265) +// CHECK:STDOUT: !259 = !DILocalVariable(arg: 1, scope: !258, type: !6) +// CHECK:STDOUT: !263 = !DILocation(line: 34, column: 12, scope: !258) +// CHECK:STDOUT: !264 = !DILocation(line: 34, column: 5, scope: !258) +// CHECK:STDOUT: !265 = !{!259} +// CHECK:STDOUT: !266 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.ba7abeb9eee545e2", scope: null, file: !152, line: 43, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !275) +// CHECK:STDOUT: !267 = !DILocalVariable(arg: 1, scope: !266, type: !6) +// CHECK:STDOUT: !271 = !DILocation(line: 43, column: 40, scope: !266) +// CHECK:STDOUT: !272 = !{!6, !6} +// CHECK:STDOUT: !273 = !DISubroutineType(types: !272) +// CHECK:STDOUT: !274 = !DILocation(line: 43, column: 33, scope: !266) +// CHECK:STDOUT: !275 = !{!267} +// CHECK:STDOUT: !276 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.7e0c2c3b236f4238", scope: null, file: !120, line: 33, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !283) +// CHECK:STDOUT: !277 = !DILocalVariable(arg: 1, scope: !276, type: !6) +// CHECK:STDOUT: !281 = !DILocation(line: 34, column: 12, scope: !276) +// CHECK:STDOUT: !282 = !DILocation(line: 34, column: 5, scope: !276) +// CHECK:STDOUT: !283 = !{!277} +// CHECK:STDOUT: !284 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.694f9f022249e533", scope: null, file: !120, line: 131, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !297) +// CHECK:STDOUT: !285 = !DILocalVariable(arg: 1, scope: !284, type: !6) +// CHECK:STDOUT: !293 = !DILocation(line: 137, column: 5, scope: !284) +// CHECK:STDOUT: !295 = !DILocation(line: 138, column: 5, scope: !284) +// CHECK:STDOUT: !296 = !DILocation(line: 139, column: 5, scope: !284) +// CHECK:STDOUT: !297 = !{!285} +// CHECK:STDOUT: !298 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !299 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !298, line: 64, type: !273, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !307) +// CHECK:STDOUT: !300 = !DILocalVariable(arg: 1, scope: !299, type: !6) +// CHECK:STDOUT: !304 = !DILocation(line: 66, column: 17, scope: !299) +// CHECK:STDOUT: !306 = !DILocation(line: 66, column: 5, scope: !299) +// CHECK:STDOUT: !307 = !{!300} +// CHECK:STDOUT: !308 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.e5790a708f1bcd86", scope: null, file: !120, line: 131, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !321) +// CHECK:STDOUT: !309 = !DILocalVariable(arg: 1, scope: !308, type: !6) +// CHECK:STDOUT: !317 = !DILocation(line: 137, column: 5, scope: !308) +// CHECK:STDOUT: !318 = !DILocation(line: 137, column: 28, scope: !308) +// CHECK:STDOUT: !319 = !DILocation(line: 138, column: 5, scope: !308) +// CHECK:STDOUT: !320 = !DILocation(line: 139, column: 5, scope: !308) +// CHECK:STDOUT: !321 = !{!309} +// CHECK:STDOUT: !322 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !298, line: 59, type: !273, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !329) +// CHECK:STDOUT: !323 = !DILocalVariable(arg: 1, scope: !322, type: !6) +// CHECK:STDOUT: !328 = !DILocation(line: 59, column: 28, scope: !322) +// CHECK:STDOUT: !329 = !{!323} +// CHECK:STDOUT: !330 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") +// CHECK:STDOUT: !331 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a7c16f707f533a23:Copy.Core.4d6ceefeb7f772f4", scope: null, file: !330, line: 23, type: !31, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !339) +// CHECK:STDOUT: !332 = !DILocalVariable(arg: 1, scope: !331, type: !6) +// CHECK:STDOUT: !338 = !DILocation(line: 23, column: 25, scope: !331) +// CHECK:STDOUT: !339 = !{!332} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'copy.carbon' @@ -602,156 +602,156 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: declare void @"_COp.Copyable.Main:Copy.Core"(ptr sret({}), ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.37e3a2472db2fbb6:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.37e3a2472db2fbb6:core.Destroy.Core"(ptr %self) #0 !dbg !342 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: ret void, !dbg !344 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr sret({ {}, i1 }) %return, ptr %c) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CF.Main(ptr sret({ {}, i1 }) %return, ptr %c) #0 !dbg !346 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967"(ptr %return, ptr %c), !dbg !16 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967"(ptr %return, ptr %c), !dbg !351 +// CHECK:STDOUT: ret void, !dbg !352 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: call void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return, ptr %self), !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !354 { +// CHECK:STDOUT: call void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return, ptr %self), !dbg !360 +// CHECK:STDOUT: ret void, !dbg !361 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return, ptr %value) #0 !dbg !24 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %value), !dbg !27 -// CHECK:STDOUT: br i1 %1, label %2, label %3, !dbg !28 +// CHECK:STDOUT: define linkonce_odr void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return, ptr %value) #0 !dbg !363 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %value), !dbg !369 +// CHECK:STDOUT: br i1 %1, label %2, label %3, !dbg !370 // CHECK:STDOUT: // CHECK:STDOUT: 2: ; preds = %0 -// CHECK:STDOUT: %value1 = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 0, !dbg !29 -// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return, ptr %value1), !dbg !30 -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: %value1 = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 0, !dbg !371 +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return, ptr %value1), !dbg !372 +// CHECK:STDOUT: ret void, !dbg !373 // CHECK:STDOUT: // CHECK:STDOUT: 3: ; preds = %0 -// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return), !dbg !32 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %return), !dbg !374 +// CHECK:STDOUT: ret void, !dbg !375 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %value) #0 !dbg !34 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 1, !dbg !37 -// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !37 -// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !37 -// CHECK:STDOUT: ret i1 %2, !dbg !38 +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr %value) #0 !dbg !377 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 1, !dbg !382 +// CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !382 +// CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !382 +// CHECK:STDOUT: ret i1 %2, !dbg !383 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !39 { -// CHECK:STDOUT: %value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 0, !dbg !42 -// CHECK:STDOUT: call void @"_COp.Copyable.Main:Copy.Core"(ptr %value, ptr %self), !dbg !43 -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !44 -// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !44 -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !385 { +// CHECK:STDOUT: %value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 0, !dbg !394 +// CHECK:STDOUT: call void @"_COp.Copyable.Main:Copy.Core"(ptr %value, ptr %self), !dbg !395 +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !396 +// CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !396 +// CHECK:STDOUT: ret void, !dbg !397 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return) #0 !dbg !46 { -// CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !49 -// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !49 -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9"(ptr sret({ {}, i1 }) %return) #0 !dbg !399 { +// CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !406 +// CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !406 +// CHECK:STDOUT: ret void, !dbg !407 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!341} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "copy.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37e3a2472db2fbb6:core.Destroy.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 9, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{!7, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 10, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 11, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967", scope: null, file: !19, line: 50, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 51, column: 12, scope: !18) -// CHECK:STDOUT: !23 = !DILocation(line: 51, column: 5, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !19, line: 147, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 148, column: 9, scope: !24) -// CHECK:STDOUT: !28 = !DILocation(line: 148, column: 8, scope: !24) -// CHECK:STDOUT: !29 = !DILocation(line: 149, column: 15, scope: !24) -// CHECK:STDOUT: !30 = !DILocation(line: 149, column: 14, scope: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 149, column: 7, scope: !24) -// CHECK:STDOUT: !32 = !DILocation(line: 151, column: 14, scope: !24) -// CHECK:STDOUT: !33 = !DILocation(line: 151, column: 7, scope: !24) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !19, line: 141, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !7) -// CHECK:STDOUT: !37 = !DILocation(line: 142, column: 12, scope: !34) -// CHECK:STDOUT: !38 = !DILocation(line: 142, column: 5, scope: !34) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !19, line: 131, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !40) -// CHECK:STDOUT: !40 = !{!41} -// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !7) -// CHECK:STDOUT: !42 = !DILocation(line: 137, column: 5, scope: !39) -// CHECK:STDOUT: !43 = !DILocation(line: 137, column: 28, scope: !39) -// CHECK:STDOUT: !44 = !DILocation(line: 138, column: 5, scope: !39) -// CHECK:STDOUT: !45 = !DILocation(line: 139, column: 5, scope: !39) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !19, line: 125, type: !47, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !47 = !DISubroutineType(types: !48) -// CHECK:STDOUT: !48 = !{!7} -// CHECK:STDOUT: !49 = !DILocation(line: 128, column: 5, scope: !46) -// CHECK:STDOUT: !50 = !DILocation(line: 129, column: 5, scope: !46) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{!9, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !14 = !{null, !9} +// CHECK:STDOUT: !15 = !DISubroutineType(types: !14) +// CHECK:STDOUT: !33 = !{!9} +// CHECK:STDOUT: !34 = !DISubroutineType(types: !33) +// CHECK:STDOUT: !120 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !340 = !DIFile(filename: "copy.carbon", directory: "") +// CHECK:STDOUT: !341 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !340, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !342 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37e3a2472db2fbb6:core.Destroy.Core", scope: null, file: !340, line: 9, type: !15, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !345) +// CHECK:STDOUT: !343 = !DILocalVariable(arg: 1, scope: !342, type: !9) +// CHECK:STDOUT: !344 = !DILocation(line: 9, column: 9, scope: !342) +// CHECK:STDOUT: !345 = !{!343} +// CHECK:STDOUT: !346 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !340, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !353) +// CHECK:STDOUT: !347 = !DILocalVariable(arg: 1, scope: !346, type: !9) +// CHECK:STDOUT: !351 = !DILocation(line: 11, column: 10, scope: !346) +// CHECK:STDOUT: !352 = !DILocation(line: 11, column: 3, scope: !346) +// CHECK:STDOUT: !353 = !{!347} +// CHECK:STDOUT: !354 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.b16495584c7c5967", scope: null, file: !120, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !362) +// CHECK:STDOUT: !355 = !DILocalVariable(arg: 1, scope: !354, type: !9) +// CHECK:STDOUT: !360 = !DILocation(line: 51, column: 12, scope: !354) +// CHECK:STDOUT: !361 = !DILocation(line: 51, column: 5, scope: !354) +// CHECK:STDOUT: !362 = !{!355} +// CHECK:STDOUT: !363 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 147, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !376) +// CHECK:STDOUT: !364 = !DILocalVariable(arg: 1, scope: !363, type: !9) +// CHECK:STDOUT: !369 = !DILocation(line: 148, column: 9, scope: !363) +// CHECK:STDOUT: !370 = !DILocation(line: 148, column: 8, scope: !363) +// CHECK:STDOUT: !371 = !DILocation(line: 149, column: 15, scope: !363) +// CHECK:STDOUT: !372 = !DILocation(line: 149, column: 14, scope: !363) +// CHECK:STDOUT: !373 = !DILocation(line: 149, column: 7, scope: !363) +// CHECK:STDOUT: !374 = !DILocation(line: 151, column: 14, scope: !363) +// CHECK:STDOUT: !375 = !DILocation(line: 151, column: 7, scope: !363) +// CHECK:STDOUT: !376 = !{!364} +// CHECK:STDOUT: !377 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 141, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !384) +// CHECK:STDOUT: !378 = !DILocalVariable(arg: 1, scope: !377, type: !9) +// CHECK:STDOUT: !382 = !DILocation(line: 142, column: 12, scope: !377) +// CHECK:STDOUT: !383 = !DILocation(line: 142, column: 5, scope: !377) +// CHECK:STDOUT: !384 = !{!378} +// CHECK:STDOUT: !385 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 131, type: !11, spFlags: DISPFlagDefinition, unit: !341, retainedNodes: !398) +// CHECK:STDOUT: !386 = !DILocalVariable(arg: 1, scope: !385, type: !9) +// CHECK:STDOUT: !394 = !DILocation(line: 137, column: 5, scope: !385) +// CHECK:STDOUT: !395 = !DILocation(line: 137, column: 28, scope: !385) +// CHECK:STDOUT: !396 = !DILocation(line: 138, column: 5, scope: !385) +// CHECK:STDOUT: !397 = !DILocation(line: 139, column: 5, scope: !385) +// CHECK:STDOUT: !398 = !{!386} +// CHECK:STDOUT: !399 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.383894a66fd982a9", scope: null, file: !120, line: 125, type: !34, spFlags: DISPFlagDefinition, unit: !341) +// CHECK:STDOUT: !406 = !DILocation(line: 128, column: 5, scope: !399) +// CHECK:STDOUT: !407 = !DILocation(line: 129, column: 5, scope: !399) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'copy_pointer.carbon' // CHECK:STDOUT: source_filename = "copy_pointer.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CF.Main(ptr %c) #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CF.Main(ptr %c) #0 !dbg !410 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Optional.as.Copy.impl.Op.call = call ptr @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.3e2e92aa38469608"(ptr %c), !dbg !10 -// CHECK:STDOUT: ret ptr %Optional.as.Copy.impl.Op.call, !dbg !11 +// CHECK:STDOUT: %Optional.as.Copy.impl.Op.call = call ptr @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.3e2e92aa38469608"(ptr %c), !dbg !415 +// CHECK:STDOUT: ret ptr %Optional.as.Copy.impl.Op.call, !dbg !416 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.3e2e92aa38469608"(ptr %self) #0 !dbg !12 { -// CHECK:STDOUT: ret ptr %self, !dbg !16 +// CHECK:STDOUT: define linkonce_odr ptr @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.3e2e92aa38469608"(ptr %self) #0 !dbg !418 { +// CHECK:STDOUT: ret ptr %self, !dbg !425 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!409} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "copy_pointer.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 10, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.3e2e92aa38469608", scope: null, file: !13, line: 50, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !13 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 51, column: 5, scope: !12) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{!9, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !120 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !408 = !DIFile(filename: "copy_pointer.carbon", directory: "") +// CHECK:STDOUT: !409 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !408, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !410 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !408, line: 5, type: !11, spFlags: DISPFlagDefinition, unit: !409, retainedNodes: !417) +// CHECK:STDOUT: !411 = !DILocalVariable(arg: 1, scope: !410, type: !9) +// CHECK:STDOUT: !415 = !DILocation(line: 6, column: 10, scope: !410) +// CHECK:STDOUT: !416 = !DILocation(line: 6, column: 3, scope: !410) +// CHECK:STDOUT: !417 = !{!411} +// CHECK:STDOUT: !418 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.3e2e92aa38469608", scope: null, file: !120, line: 50, type: !11, spFlags: DISPFlagDefinition, unit: !409, retainedNodes: !426) +// CHECK:STDOUT: !419 = !DILocalVariable(arg: 1, scope: !418, type: !9) +// CHECK:STDOUT: !425 = !DILocation(line: 51, column: 5, scope: !418) +// CHECK:STDOUT: !426 = !{!419} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/string.carbon b/toolchain/lower/testdata/primitives/string.carbon index 86d8d4b7a73f..d9304165ef81 100644 --- a/toolchain/lower/testdata/primitives/string.carbon +++ b/toolchain/lower/testdata/primitives/string.carbon @@ -47,61 +47,61 @@ fn Copy(s: str) -> str { // CHECK:STDOUT: declare void @_CF.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.a16.String.val), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.a16.String.val), !dbg !16 +// CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !9 { +// CHECK:STDOUT: define void @_CH.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.a16.String.val), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.a16.String.val), !dbg !22 +// CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CI.Main() #0 !dbg !12 { +// CHECK:STDOUT: define void @_CI.Main() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.296.String.val), !dbg !13 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.296.String.val), !dbg !28 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCopy.Main(ptr sret({ ptr, i64 }) %return, ptr %s) #0 !dbg !15 { +// CHECK:STDOUT: define void @_CCopy.Main(ptr sret({ ptr, i64 }) %return, ptr %s) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.String.Core:Copy.Core"(ptr %return, ptr %s), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @"_COp.String.Core:Copy.Core"(ptr %return, ptr %s), !dbg !35 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_COp.String.Core:Copy.Core"(ptr sret({ ptr, i64 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "string.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 25, column: 3, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 1, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "I", linkageName: "_CI.Main", scope: null, file: !1, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !13 = !DILocation(line: 31, column: 3, scope: !12) -// CHECK:STDOUT: !14 = !DILocation(line: 28, column: 1, scope: !12) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !1, line: 34, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{!18, !18} -// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 35, column: 10, scope: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 35, column: 3, scope: !15) +// CHECK:STDOUT: !4 = !DIFile(filename: "string.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !11 = !{null} +// CHECK:STDOUT: !12 = !DISubroutineType(types: !11) +// CHECK:STDOUT: !13 = !{!8, !8} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !4, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !15) +// CHECK:STDOUT: !17 = !DILocation(line: 18, column: 1, scope: !15) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main", scope: null, file: !4, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !22 = !DILocation(line: 25, column: 3, scope: !18) +// CHECK:STDOUT: !23 = !DILocation(line: 22, column: 1, scope: !18) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "I", linkageName: "_CI.Main", scope: null, file: !4, line: 28, type: !12, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !28 = !DILocation(line: 31, column: 3, scope: !24) +// CHECK:STDOUT: !29 = !DILocation(line: 28, column: 1, scope: !24) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !4, line: 34, type: !14, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !8) +// CHECK:STDOUT: !35 = !DILocation(line: 35, column: 10, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 35, column: 3, scope: !30) +// CHECK:STDOUT: !37 = !{!31} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/type_values.carbon b/toolchain/lower/testdata/primitives/type_values.carbon index e9be58a34b96..d3f85a53f573 100644 --- a/toolchain/lower/testdata/primitives/type_values.carbon +++ b/toolchain/lower/testdata/primitives/type_values.carbon @@ -32,39 +32,39 @@ fn F64() -> type { // CHECK:STDOUT: %type.26 = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define %type.26 @_CI32.Main() #0 !dbg !4 { +// CHECK:STDOUT: define %type.26 @_CI32.Main() #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.26 zeroinitializer, !dbg !8 +// CHECK:STDOUT: ret %type.26 zeroinitializer, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define %type.26 @_CI48.Main() #0 !dbg !9 { +// CHECK:STDOUT: define %type.26 @_CI48.Main() #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.26 zeroinitializer, !dbg !10 +// CHECK:STDOUT: ret %type.26 zeroinitializer, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define %type.26 @_CF64.Main() #0 !dbg !11 { +// CHECK:STDOUT: define %type.26 @_CF64.Main() #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret %type.26 zeroinitializer, !dbg !12 +// CHECK:STDOUT: ret %type.26 zeroinitializer, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "type_values.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "I32", linkageName: "_CI32.Main", scope: null, file: !1, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "I48", linkageName: "_CI48.Main", scope: null, file: !1, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 21, column: 3, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F64", linkageName: "_CF64.Main", scope: null, file: !1, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 25, column: 3, scope: !11) +// CHECK:STDOUT: !32 = !DIFile(filename: "type_values.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "I32", linkageName: "_CI32.Main", scope: null, file: !32, line: 16, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !40 = !DILocation(line: 17, column: 3, scope: !37) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "I48", linkageName: "_CI48.Main", scope: null, file: !32, line: 20, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !44 = !DILocation(line: 21, column: 3, scope: !41) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "F64", linkageName: "_CF64.Main", scope: null, file: !32, line: 24, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !48 = !DILocation(line: 25, column: 3, scope: !45) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/primitives/zero.carbon b/toolchain/lower/testdata/primitives/zero.carbon index d76cbcc96617..f5211c8ea75a 100644 --- a/toolchain/lower/testdata/primitives/zero.carbon +++ b/toolchain/lower/testdata/primitives/zero.carbon @@ -19,23 +19,23 @@ fn Main() -> i32 { // CHECK:STDOUT: source_filename = "zero.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "zero.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "zero.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/code_after_return.carbon b/toolchain/lower/testdata/return/code_after_return.carbon index 7018b865fcfb..ad39f94ace8c 100644 --- a/toolchain/lower/testdata/return/code_after_return.carbon +++ b/toolchain/lower/testdata/return/code_after_return.carbon @@ -22,30 +22,30 @@ fn Main() { // CHECK:STDOUT: source_filename = "code_after_return.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !8 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "code_after_return.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 3, scope: !8) +// CHECK:STDOUT: !14 = !DIFile(filename: "code_after_return.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 13, column: 1, scope: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 15, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !21 = !DILocation(line: 16, column: 3, scope: !20) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/function_ids_in_different_files.carbon b/toolchain/lower/testdata/return/function_ids_in_different_files.carbon index f2c9231e286b..d0f29f14179b 100644 --- a/toolchain/lower/testdata/return/function_ids_in_different_files.carbon +++ b/toolchain/lower/testdata/return/function_ids_in_different_files.carbon @@ -29,45 +29,45 @@ fn G() { // CHECK:STDOUT: ; ModuleID = 'a.carbon' // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !14 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.6944efcfbb6a8360(), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: call void @_CF.Main.6944efcfbb6a8360(), !dbg !21 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.6944efcfbb6a8360() #0 !dbg !9 { -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.6944efcfbb6a8360() #0 !dbg !23 { +// CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "b.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 3, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6944efcfbb6a8360", scope: null, file: !10, line: 2, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !11 = !DILocation(line: 4, column: 3, scope: !9) +// CHECK:STDOUT: !14 = !DIFile(filename: "a.carbon", directory: "") +// CHECK:STDOUT: !16 = !DIFile(filename: "b.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !18 = !{null} +// CHECK:STDOUT: !19 = !DISubroutineType(types: !18) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !16, line: 3, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !21 = !DILocation(line: 5, column: 3, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 3, column: 1, scope: !20) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6944efcfbb6a8360", scope: null, file: !14, line: 2, type: !19, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 4, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/no_return_from_run.carbon b/toolchain/lower/testdata/return/no_return_from_run.carbon index 08fef5d2949b..982d66550ea3 100644 --- a/toolchain/lower/testdata/return/no_return_from_run.carbon +++ b/toolchain/lower/testdata/return/no_return_from_run.carbon @@ -23,35 +23,35 @@ fn Foo() { // CHECK:STDOUT: source_filename = "no_return_from_run.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !9 { +// CHECK:STDOUT: define void @_CFoo.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Run.call = call i32 @main(), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %Run.call = call i32 @main(), !dbg !24 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_return_from_run.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !1, line: 17, type: !10, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null} -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !9) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 1, scope: !9) +// CHECK:STDOUT: !14 = !DIFile(filename: "no_return_from_run.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !17 = !{!16} +// CHECK:STDOUT: !18 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !19 = !{null} +// CHECK:STDOUT: !20 = !DISubroutineType(types: !19) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !14, line: 14, type: !18, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !22 = !DILocation(line: 14, column: 1, scope: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Foo", linkageName: "_CFoo.Main", scope: null, file: !14, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 3, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 17, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/no_value.carbon b/toolchain/lower/testdata/return/no_value.carbon index e4d15bb87e6e..cb2634b487cb 100644 --- a/toolchain/lower/testdata/return/no_value.carbon +++ b/toolchain/lower/testdata/return/no_value.carbon @@ -19,22 +19,22 @@ fn Main() { // CHECK:STDOUT: source_filename = "no_value.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !7 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!15} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_value.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !14 = !DIFile(filename: "no_value.carbon", directory: "") +// CHECK:STDOUT: !15 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !14, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !16 = !{null} +// CHECK:STDOUT: !17 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !14, line: 13, type: !17, spFlags: DISPFlagDefinition, unit: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 3, scope: !18) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/return_var.carbon b/toolchain/lower/testdata/return/return_var.carbon index 33e71161e8a8..925658970e18 100644 --- a/toolchain/lower/testdata/return/return_var.carbon +++ b/toolchain/lower/testdata/return/return_var.carbon @@ -26,28 +26,28 @@ fn Make() -> C { // CHECK:STDOUT: source_filename = "return_var.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.Main(ptr sret({ i32, ptr }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMake.Main(ptr sret({ i32, ptr }) %return) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc20_30.3.data = getelementptr inbounds nuw { i32, ptr }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc20_30.5.next = getelementptr inbounds nuw { i32, ptr }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: store ptr %return, ptr %.loc20_30.5.next, align 8, !dbg !8 -// CHECK:STDOUT: store i32 42, ptr %.loc20_30.3.data, align 4, !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %.loc20_30.3.data = getelementptr inbounds nuw { i32, ptr }, ptr %return, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %.loc20_30.5.next = getelementptr inbounds nuw { i32, ptr }, ptr %return, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: store ptr %return, ptr %.loc20_30.5.next, align 8, !dbg !33 +// CHECK:STDOUT: store i32 42, ptr %.loc20_30.3.data, align 4, !dbg !33 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_var.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !1, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 21, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "return_var.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !18, line: 18, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 20, column: 7, scope: !24) +// CHECK:STDOUT: !34 = !DILocation(line: 21, column: 3, scope: !24) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/return_var_byval.carbon b/toolchain/lower/testdata/return/return_var_byval.carbon index ef9b12e085cf..156a6460c896 100644 --- a/toolchain/lower/testdata/return/return_var_byval.carbon +++ b/toolchain/lower/testdata/return/return_var_byval.carbon @@ -20,20 +20,20 @@ fn Main() -> i32 { // CHECK:STDOUT: source_filename = "return_var_byval.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !8 -// CHECK:STDOUT: %.loc14_17 = load i32, ptr %x.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc14_17, !dbg !10 +// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !28 +// CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !28 +// CHECK:STDOUT: %.loc14_17 = load i32, ptr %x.var, align 4, !dbg !29 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !28 +// CHECK:STDOUT: ret i32 %.loc14_17, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -42,24 +42,24 @@ fn Main() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_var_byval.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 12, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 14, column: 16, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 14, column: 12, scope: !11) +// CHECK:STDOUT: !18 = !DIFile(filename: "return_var_byval.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 12, scope: !25) +// CHECK:STDOUT: !29 = !DILocation(line: 14, column: 16, scope: !25) +// CHECK:STDOUT: !31 = !DILocation(line: 15, column: 3, scope: !25) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 14, column: 12, scope: !32) +// CHECK:STDOUT: !35 = !{!33} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/value.carbon b/toolchain/lower/testdata/return/value.carbon index a5212574c8c0..8f31d4cde7ad 100644 --- a/toolchain/lower/testdata/return/value.carbon +++ b/toolchain/lower/testdata/return/value.carbon @@ -19,23 +19,23 @@ fn Main() -> i32 { // CHECK:STDOUT: source_filename = "value.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "value.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "value.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/var.carbon b/toolchain/lower/testdata/return/var.carbon index 868386ab757d..c93245b1ea24 100644 --- a/toolchain/lower/testdata/return/var.carbon +++ b/toolchain/lower/testdata/return/var.carbon @@ -20,20 +20,20 @@ fn Main() -> i32 { // CHECK:STDOUT: source_filename = "var.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CMain.Main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !8 -// CHECK:STDOUT: %.loc15 = load i32, ptr %x.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc15, !dbg !10 +// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !28 +// CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !28 +// CHECK:STDOUT: %.loc15 = load i32, ptr %x.var, align 4, !dbg !30 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !28 +// CHECK:STDOUT: ret i32 %.loc15, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -42,24 +42,24 @@ fn Main() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 14, column: 3, scope: !11) +// CHECK:STDOUT: !18 = !DIFile(filename: "var.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 10, scope: !25) +// CHECK:STDOUT: !31 = !DILocation(line: 15, column: 3, scope: !25) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 14, column: 3, scope: !32) +// CHECK:STDOUT: !35 = !{!33} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/empty.carbon b/toolchain/lower/testdata/struct/empty.carbon index ff6160e6a5d2..90fa3691a301 100644 --- a/toolchain/lower/testdata/struct/empty.carbon +++ b/toolchain/lower/testdata/struct/empty.carbon @@ -21,13 +21,13 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "empty.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca {}, align 1, !dbg !8 -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: ret i32 0, !dbg !10 +// CHECK:STDOUT: %x.var = alloca {}, align 1, !dbg !26 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !26 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !28 +// CHECK:STDOUT: ret i32 0, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -39,18 +39,18 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "empty.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 15, column: 3, scope: !23) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/layout.carbon b/toolchain/lower/testdata/struct/layout.carbon index 1c90be8e00fa..375037d5260b 100644 --- a/toolchain/lower/testdata/struct/layout.carbon +++ b/toolchain/lower/testdata/struct/layout.carbon @@ -80,30 +80,30 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %no_padding.var = alloca { i32, i32, i32 }, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %no_padding.var), !dbg !7 -// CHECK:STDOUT: %.loc8.x = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc8.x), !dbg !9 -// CHECK:STDOUT: %.loc9.y = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc9.y), !dbg !11 -// CHECK:STDOUT: %.loc10.z = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 2, !dbg !12 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.z), !dbg !13 -// CHECK:STDOUT: call void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %no_padding.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: %no_padding.var = alloca { i32, i32, i32 }, align 4, !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %no_padding.var), !dbg !29 +// CHECK:STDOUT: %.loc8.x = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 0, !dbg !31 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc8.x), !dbg !33 +// CHECK:STDOUT: %.loc9.y = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 1, !dbg !34 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc9.y), !dbg !36 +// CHECK:STDOUT: %.loc10.z = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 2, !dbg !37 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.z), !dbg !39 +// CHECK:STDOUT: call void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %no_padding.var), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -112,38 +112,38 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 8, column: 6, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 6, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 10, column: 6, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 7, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef264ddbcdaf6301:core.Destroy.Core", scope: null, file: !1, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !25} -// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) -// CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !22) +// CHECK:STDOUT: !18 = !DIFile(filename: "no_padding.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 5, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 7, column: 3, scope: !28) +// CHECK:STDOUT: !31 = !DILocation(line: 8, column: 6, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 8, column: 3, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 9, column: 6, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 9, column: 3, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 10, column: 6, scope: !28) +// CHECK:STDOUT: !39 = !DILocation(line: 10, column: 3, scope: !28) +// CHECK:STDOUT: !40 = !DILocation(line: 5, column: 1, scope: !28) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 7, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef264ddbcdaf6301:core.Destroy.Core", scope: null, file: !18, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) +// CHECK:STDOUT: !47 = !DILocation(line: 7, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'avoid_tail_padding.carbon' @@ -152,26 +152,26 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %avoid_tail_padding.var = alloca <{ ptr, i32 }>, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %avoid_tail_padding.var), !dbg !7 -// CHECK:STDOUT: %.loc8.y = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %avoid_tail_padding.var, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc8.y), !dbg !9 -// CHECK:STDOUT: call void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %avoid_tail_padding.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %avoid_tail_padding.var = alloca <{ ptr, i32 }>, align 8, !dbg !52 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %avoid_tail_padding.var), !dbg !52 +// CHECK:STDOUT: %.loc8.y = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %avoid_tail_padding.var, i32 0, i32 1, !dbg !54 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc8.y), !dbg !56 +// CHECK:STDOUT: call void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %avoid_tail_padding.var), !dbg !52 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !58 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -180,34 +180,34 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!50} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "avoid_tail_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 8, column: 6, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !1, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !49 = !DIFile(filename: "avoid_tail_padding.carbon", directory: "") +// CHECK:STDOUT: !50 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !49, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !49, line: 5, type: !25, spFlags: DISPFlagDefinition, unit: !50) +// CHECK:STDOUT: !52 = !DILocation(line: 7, column: 3, scope: !51) +// CHECK:STDOUT: !54 = !DILocation(line: 8, column: 6, scope: !51) +// CHECK:STDOUT: !56 = !DILocation(line: 8, column: 3, scope: !51) +// CHECK:STDOUT: !57 = !DILocation(line: 5, column: 1, scope: !51) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !49, line: 7, type: !27, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !61) +// CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !58, type: !20) +// CHECK:STDOUT: !60 = !DILocation(line: 7, column: 3, scope: !58) +// CHECK:STDOUT: !61 = !{!59} +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !49, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !50, retainedNodes: !65) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !62, type: !21) +// CHECK:STDOUT: !64 = !DILocation(line: 7, column: 3, scope: !62) +// CHECK:STDOUT: !65 = !{!63} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'use_tail_padding.carbon' @@ -216,35 +216,35 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !68 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %use_tail_padding.var = alloca { <{ ptr, i32 }>, i32 }, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %use_tail_padding.var), !dbg !7 -// CHECK:STDOUT: %.loc9_22.a = getelementptr inbounds nuw { <{ ptr, i32 }>, i32 }, ptr %use_tail_padding.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc9_24.y = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc9_22.a, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.y), !dbg !9 -// CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, i32 }, ptr %use_tail_padding.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !11 -// CHECK:STDOUT: call void @"_COp.43335663c40fb4bc:core.Destroy.Core"(ptr %use_tail_padding.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %use_tail_padding.var = alloca { <{ ptr, i32 }>, i32 }, align 8, !dbg !69 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %use_tail_padding.var), !dbg !69 +// CHECK:STDOUT: %.loc9_22.a = getelementptr inbounds nuw { <{ ptr, i32 }>, i32 }, ptr %use_tail_padding.var, i32 0, i32 0, !dbg !71 +// CHECK:STDOUT: %.loc9_24.y = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc9_22.a, i32 0, i32 1, !dbg !71 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.y), !dbg !73 +// CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, i32 }, ptr %use_tail_padding.var, i32 0, i32 1, !dbg !74 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !76 +// CHECK:STDOUT: call void @"_COp.43335663c40fb4bc:core.Destroy.Core"(ptr %use_tail_padding.var), !dbg !69 +// CHECK:STDOUT: ret void, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !78 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !82 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.43335663c40fb4bc:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.43335663c40fb4bc:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -253,40 +253,40 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!67} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "use_tail_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 9, column: 6, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 10, column: 6, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 3, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !1, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 8, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43335663c40fb4bc:core.Destroy.Core", scope: null, file: !1, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) -// CHECK:STDOUT: !30 = !DILocation(line: 8, column: 3, scope: !27) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !66 = !DIFile(filename: "use_tail_padding.carbon", directory: "") +// CHECK:STDOUT: !67 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !66, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !66, line: 5, type: !25, spFlags: DISPFlagDefinition, unit: !67) +// CHECK:STDOUT: !69 = !DILocation(line: 8, column: 3, scope: !68) +// CHECK:STDOUT: !71 = !DILocation(line: 9, column: 6, scope: !68) +// CHECK:STDOUT: !73 = !DILocation(line: 9, column: 3, scope: !68) +// CHECK:STDOUT: !74 = !DILocation(line: 10, column: 6, scope: !68) +// CHECK:STDOUT: !76 = !DILocation(line: 10, column: 3, scope: !68) +// CHECK:STDOUT: !77 = !DILocation(line: 5, column: 1, scope: !68) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !66, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !81) +// CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !78, type: !20) +// CHECK:STDOUT: !80 = !DILocation(line: 8, column: 3, scope: !78) +// CHECK:STDOUT: !81 = !{!79} +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !66, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !85) +// CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !82, type: !21) +// CHECK:STDOUT: !84 = !DILocation(line: 8, column: 3, scope: !82) +// CHECK:STDOUT: !85 = !{!83} +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43335663c40fb4bc:core.Destroy.Core", scope: null, file: !66, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !67, retainedNodes: !89) +// CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !86, type: !21) +// CHECK:STDOUT: !88 = !DILocation(line: 8, column: 3, scope: !86) +// CHECK:STDOUT: !89 = !{!87} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'implicit_padding.carbon' @@ -295,35 +295,35 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !92 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %implicit_padding.var = alloca { <{ ptr, i32 }>, ptr }, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %implicit_padding.var), !dbg !7 -// CHECK:STDOUT: %.loc9_22.a = getelementptr inbounds nuw { <{ ptr, i32 }>, ptr }, ptr %implicit_padding.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %.loc9_24.x = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc9_22.a, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.x), !dbg !9 -// CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, ptr }, ptr %implicit_padding.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !11 -// CHECK:STDOUT: call void @"_COp.bbaa45a6eaf1eb33:core.Destroy.Core"(ptr %implicit_padding.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %implicit_padding.var = alloca { <{ ptr, i32 }>, ptr }, align 8, !dbg !93 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %implicit_padding.var), !dbg !93 +// CHECK:STDOUT: %.loc9_22.a = getelementptr inbounds nuw { <{ ptr, i32 }>, ptr }, ptr %implicit_padding.var, i32 0, i32 0, !dbg !95 +// CHECK:STDOUT: %.loc9_24.x = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc9_22.a, i32 0, i32 0, !dbg !95 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.x), !dbg !97 +// CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, ptr }, ptr %implicit_padding.var, i32 0, i32 1, !dbg !98 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !100 +// CHECK:STDOUT: call void @"_COp.bbaa45a6eaf1eb33:core.Destroy.Core"(ptr %implicit_padding.var), !dbg !93 +// CHECK:STDOUT: ret void, !dbg !101 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !102 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: ret void, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.39f44b5e2be36eae:core.Destroy.Core"(ptr %self) #0 !dbg !106 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bbaa45a6eaf1eb33:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.bbaa45a6eaf1eb33:core.Destroy.Core"(ptr %self) #0 !dbg !110 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !112 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -332,40 +332,40 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!91} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "implicit_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 9, column: 6, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 10, column: 6, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !{!18} -// CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 8, column: 3, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !1, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{null, !23} -// CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 8, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbaa45a6eaf1eb33:core.Destroy.Core", scope: null, file: !1, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) -// CHECK:STDOUT: !30 = !DILocation(line: 8, column: 3, scope: !27) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !90 = !DIFile(filename: "implicit_padding.carbon", directory: "") +// CHECK:STDOUT: !91 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !90, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !90, line: 5, type: !25, spFlags: DISPFlagDefinition, unit: !91) +// CHECK:STDOUT: !93 = !DILocation(line: 8, column: 3, scope: !92) +// CHECK:STDOUT: !95 = !DILocation(line: 9, column: 6, scope: !92) +// CHECK:STDOUT: !97 = !DILocation(line: 9, column: 3, scope: !92) +// CHECK:STDOUT: !98 = !DILocation(line: 10, column: 6, scope: !92) +// CHECK:STDOUT: !100 = !DILocation(line: 10, column: 3, scope: !92) +// CHECK:STDOUT: !101 = !DILocation(line: 5, column: 1, scope: !92) +// CHECK:STDOUT: !102 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !90, line: 8, type: !27, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !105) +// CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !102, type: !20) +// CHECK:STDOUT: !104 = !DILocation(line: 8, column: 3, scope: !102) +// CHECK:STDOUT: !105 = !{!103} +// CHECK:STDOUT: !106 = distinct !DISubprogram(name: "Op", linkageName: "_COp.39f44b5e2be36eae:core.Destroy.Core", scope: null, file: !90, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !109) +// CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !106, type: !21) +// CHECK:STDOUT: !108 = !DILocation(line: 8, column: 3, scope: !106) +// CHECK:STDOUT: !109 = !{!107} +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbaa45a6eaf1eb33:core.Destroy.Core", scope: null, file: !90, line: 8, type: !23, spFlags: DISPFlagDefinition, unit: !91, retainedNodes: !113) +// CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !110, type: !21) +// CHECK:STDOUT: !112 = !DILocation(line: 8, column: 3, scope: !110) +// CHECK:STDOUT: !113 = !{!111} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'insert_padding.carbon' @@ -374,32 +374,32 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !116 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %insert_padding.var = alloca <{ <{ { i32, i32, i32 }, [4 x i8] }>, ptr, i32 }>, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %insert_padding.var), !dbg !7 -// CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw <{ <{ { i32, i32, i32 }, [4 x i8] }>, ptr, i32 }>, ptr %insert_padding.var, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !9 -// CHECK:STDOUT: call void @"_COp.97f42b497d28c70c:core.Destroy.Core"(ptr %insert_padding.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %insert_padding.var = alloca <{ <{ { i32, i32, i32 }, [4 x i8] }>, ptr, i32 }>, align 8, !dbg !117 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %insert_padding.var), !dbg !117 +// CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw <{ <{ { i32, i32, i32 }, [4 x i8] }>, ptr, i32 }>, ptr %insert_padding.var, i32 0, i32 1, !dbg !119 +// CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !121 +// CHECK:STDOUT: call void @"_COp.97f42b497d28c70c:core.Destroy.Core"(ptr %insert_padding.var), !dbg !117 +// CHECK:STDOUT: ret void, !dbg !122 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.ef264ddbcdaf6301:core.Destroy.Core"(ptr %self) #0 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.97f42b497d28c70c:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.97f42b497d28c70c:core.Destroy.Core"(ptr %self) #0 !dbg !131 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -408,36 +408,36 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!115} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "insert_padding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 10, column: 6, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef264ddbcdaf6301:core.Destroy.Core", scope: null, file: !1, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 9, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.97f42b497d28c70c:core.Destroy.Core", scope: null, file: !1, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) -// CHECK:STDOUT: !28 = !DILocation(line: 9, column: 3, scope: !25) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !114 = !DIFile(filename: "insert_padding.carbon", directory: "") +// CHECK:STDOUT: !115 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !114, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !116 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !114, line: 5, type: !25, spFlags: DISPFlagDefinition, unit: !115) +// CHECK:STDOUT: !117 = !DILocation(line: 9, column: 3, scope: !116) +// CHECK:STDOUT: !119 = !DILocation(line: 10, column: 6, scope: !116) +// CHECK:STDOUT: !121 = !DILocation(line: 10, column: 3, scope: !116) +// CHECK:STDOUT: !122 = !DILocation(line: 5, column: 1, scope: !116) +// CHECK:STDOUT: !123 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !114, line: 9, type: !27, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !126) +// CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !123, type: !20) +// CHECK:STDOUT: !125 = !DILocation(line: 9, column: 3, scope: !123) +// CHECK:STDOUT: !126 = !{!124} +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef264ddbcdaf6301:core.Destroy.Core", scope: null, file: !114, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !130) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !21) +// CHECK:STDOUT: !129 = !DILocation(line: 9, column: 3, scope: !127) +// CHECK:STDOUT: !130 = !{!128} +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Op", linkageName: "_COp.97f42b497d28c70c:core.Destroy.Core", scope: null, file: !114, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !115, retainedNodes: !134) +// CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !131, type: !21) +// CHECK:STDOUT: !133 = !DILocation(line: 9, column: 3, scope: !131) +// CHECK:STDOUT: !134 = !{!132} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/member_access.carbon b/toolchain/lower/testdata/struct/member_access.carbon index b62942f50000..339be10506e0 100644 --- a/toolchain/lower/testdata/struct/member_access.carbon +++ b/toolchain/lower/testdata/struct/member_access.carbon @@ -24,44 +24,44 @@ fn Run() -> i32 { // CHECK:STDOUT: @struct.77f.loc14_3 = internal constant <{ double, i32 }> <{ double 0.000000e+00, i32 1 }> // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca <{ double, i32 }>, align 8, !dbg !8 -// CHECK:STDOUT: %y.var = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: %.loc14_48.3.a = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc14_48.6.b = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %x.var, ptr align 8 @struct.77f.loc14_3, i64 12, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !9 -// CHECK:STDOUT: %.loc15_17.1.b = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 1, !dbg !12 -// CHECK:STDOUT: %.loc15_17.2 = load i32, ptr %.loc15_17.1.b, align 4, !dbg !12 -// CHECK:STDOUT: store i32 %.loc15_17.2, ptr %y.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !10 -// CHECK:STDOUT: %.loc16 = load i32, ptr %y.var, align 4, !dbg !13 -// CHECK:STDOUT: store i32 %.loc16, ptr %_.var, align 4, !dbg !10 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %y.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d17ca542c084061e:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !14 +// CHECK:STDOUT: %x.var = alloca <{ double, i32 }>, align 8, !dbg !45 +// CHECK:STDOUT: %y.var = alloca i32, align 4, !dbg !48 +// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !51 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !45 +// CHECK:STDOUT: %.loc14_48.3.a = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 0, !dbg !46 +// CHECK:STDOUT: %.loc14_48.6.b = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 1, !dbg !46 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %x.var, ptr align 8 @struct.77f.loc14_3, i64 12, i1 false), !dbg !45 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !48 +// CHECK:STDOUT: %.loc15_17.1.b = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 1, !dbg !49 +// CHECK:STDOUT: %.loc15_17.2 = load i32, ptr %.loc15_17.1.b, align 4, !dbg !49 +// CHECK:STDOUT: store i32 %.loc15_17.2, ptr %y.var, align 4, !dbg !48 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !51 +// CHECK:STDOUT: %.loc16 = load i32, ptr %y.var, align 4, !dbg !52 +// CHECK:STDOUT: store i32 %.loc16, ptr %_.var, align 4, !dbg !51 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !51 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %y.var), !dbg !48 +// CHECK:STDOUT: call void @"_COp.d17ca542c084061e:core.Destroy.Core"(ptr %x.var), !dbg !45 +// CHECK:STDOUT: ret i32 0, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d17ca542c084061e:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.d17ca542c084061e:core.Destroy.Core"(ptr %self) #0 !dbg !63 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -77,39 +77,39 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "member_access.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 31, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 15, column: 16, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 16, column: 16, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !7} -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !15, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 16, column: 3, scope: !15) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !24} -// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 14, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d17ca542c084061e:core.Destroy.Core", scope: null, file: !1, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !DIFile(filename: "member_access.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !35 = !{!34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = !{null, !34} +// CHECK:STDOUT: !38 = !DISubroutineType(types: !37) +// CHECK:STDOUT: !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !40 = !{null, !39} +// CHECK:STDOUT: !41 = !DISubroutineType(types: !40) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !32, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !33) +// CHECK:STDOUT: !45 = !DILocation(line: 14, column: 3, scope: !42) +// CHECK:STDOUT: !46 = !DILocation(line: 14, column: 31, scope: !42) +// CHECK:STDOUT: !48 = !DILocation(line: 15, column: 3, scope: !42) +// CHECK:STDOUT: !49 = !DILocation(line: 15, column: 16, scope: !42) +// CHECK:STDOUT: !51 = !DILocation(line: 16, column: 3, scope: !42) +// CHECK:STDOUT: !52 = !DILocation(line: 16, column: 16, scope: !42) +// CHECK:STDOUT: !54 = !DILocation(line: 17, column: 3, scope: !42) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !32, line: 16, type: !38, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !34) +// CHECK:STDOUT: !57 = !DILocation(line: 16, column: 3, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !62) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !39) +// CHECK:STDOUT: !61 = !DILocation(line: 14, column: 3, scope: !59) +// CHECK:STDOUT: !62 = !{!60} +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d17ca542c084061e:core.Destroy.Core", scope: null, file: !32, line: 14, type: !41, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !66) +// CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !63, type: !39) +// CHECK:STDOUT: !65 = !DILocation(line: 14, column: 3, scope: !63) +// CHECK:STDOUT: !66 = !{!64} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/nested_struct.carbon b/toolchain/lower/testdata/struct/nested_struct.carbon index 5fa47e00b135..4f39bb311166 100644 --- a/toolchain/lower/testdata/struct/nested_struct.carbon +++ b/toolchain/lower/testdata/struct/nested_struct.carbon @@ -20,23 +20,23 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "nested_struct.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nested_struct.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 15, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "nested_struct.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/nested_struct_in_place.carbon b/toolchain/lower/testdata/struct/nested_struct_in_place.carbon index e1ba6bbf7930..284f6507953f 100644 --- a/toolchain/lower/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/lower/testdata/struct/nested_struct_in_place.carbon @@ -23,34 +23,34 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr sret({ i32, i32, i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { { i32, i32, i32 }, { i32, i32, i32 } }, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !7 -// CHECK:STDOUT: %.loc16_74.1.a = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.1.a), !dbg !9 -// CHECK:STDOUT: %.loc16_74.2.b = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.2.b), !dbg !10 -// CHECK:STDOUT: call void @"_COp.308e7cf8d122ebd0:core.Destroy.Core"(ptr %_.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var = alloca { { i32, i32, i32 }, { i32, i32, i32 } }, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !31 +// CHECK:STDOUT: %.loc16_74.1.a = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.1.a), !dbg !33 +// CHECK:STDOUT: %.loc16_74.2.b = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.2.b), !dbg !34 +// CHECK:STDOUT: call void @"_COp.308e7cf8d122ebd0:core.Destroy.Core"(ptr %_.var), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.308e7cf8d122ebd0:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.308e7cf8d122ebd0:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -59,37 +59,37 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nested_struct_in_place.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 55, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 61, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 71, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.308e7cf8d122ebd0:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) -// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) +// CHECK:STDOUT: !18 = !DIFile(filename: "nested_struct_in_place.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 55, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 61, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 16, column: 71, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !21) +// CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.308e7cf8d122ebd0:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) +// CHECK:STDOUT: !47 = !DILocation(line: 16, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/one_entry.carbon b/toolchain/lower/testdata/struct/one_entry.carbon index 487a06d1200a..88b2c1b2eed3 100644 --- a/toolchain/lower/testdata/struct/one_entry.carbon +++ b/toolchain/lower/testdata/struct/one_entry.carbon @@ -21,32 +21,32 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "one_entry.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %_.var = alloca { i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: store { i32 } { i32 4 }, ptr %x.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: %.loc15_22.1.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.a, align 4, !dbg !10 -// CHECK:STDOUT: %.loc15_22.3.struct.init = insertvalue { i32 } poison, i32 %.loc15_22.2, 0, !dbg !10 -// CHECK:STDOUT: store { i32 } %.loc15_22.3.struct.init, ptr %_.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !11 +// CHECK:STDOUT: %x.var = alloca { i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %_.var = alloca { i32 }, align 4, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !31 +// CHECK:STDOUT: store { i32 } { i32 4 }, ptr %x.var, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !33 +// CHECK:STDOUT: %.loc15_22.1.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.a, align 4, !dbg !34 +// CHECK:STDOUT: %.loc15_22.3.struct.init = insertvalue { i32 } poison, i32 %.loc15_22.2, 0, !dbg !34 +// CHECK:STDOUT: store { i32 } %.loc15_22.3.struct.init, ptr %_.var, align 4, !dbg !33 +// CHECK:STDOUT: call void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: ret i32 0, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.68d83131305ed52b:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -59,32 +59,32 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "one_entry.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 22, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !7} -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68d83131305ed52b:core.Destroy.Core", scope: null, file: !1, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 3, scope: !18) +// CHECK:STDOUT: !18 = !DIFile(filename: "one_entry.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 22, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68d83131305ed52b:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !25) +// CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/partially_const.carbon b/toolchain/lower/testdata/struct/partially_const.carbon index ba1688e5fa45..da036c0ac156 100644 --- a/toolchain/lower/testdata/struct/partially_const.carbon +++ b/toolchain/lower/testdata/struct/partially_const.carbon @@ -19,33 +19,33 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: source_filename = "partially_const.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CMake.Main(ptr sret({ i32, i32, i32 }) %return, i32 %n) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CMake.Main(ptr sret({ i32, i32, i32 }) %return, i32 %n) #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc14_33.3.a = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc14_33.5.b = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store i32 %n, ptr %.loc14_33.5.b, align 4, !dbg !11 -// CHECK:STDOUT: %.loc14_33.8.c = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !11 -// CHECK:STDOUT: store i32 0, ptr %.loc14_33.3.a, align 4, !dbg !11 -// CHECK:STDOUT: store i32 0, ptr %.loc14_33.8.c, align 4, !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc14_33.3.a = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !30 +// CHECK:STDOUT: %.loc14_33.5.b = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !30 +// CHECK:STDOUT: store i32 %n, ptr %.loc14_33.5.b, align 4, !dbg !30 +// CHECK:STDOUT: %.loc14_33.8.c = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !30 +// CHECK:STDOUT: store i32 0, ptr %.loc14_33.3.a, align 4, !dbg !30 +// CHECK:STDOUT: store i32 0, ptr %.loc14_33.8.c, align 4, !dbg !30 +// CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "partially_const.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !9) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !8} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !9 = !{!10} -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !4, type: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 14, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "partially_const.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21, !20} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !32) +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !24, type: !20) +// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 10, scope: !24) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !24) +// CHECK:STDOUT: !32 = !{!25} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/struct/two_entries.carbon b/toolchain/lower/testdata/struct/two_entries.carbon index 0c130e66d99d..a46ff49f3791 100644 --- a/toolchain/lower/testdata/struct/two_entries.carbon +++ b/toolchain/lower/testdata/struct/two_entries.carbon @@ -23,38 +23,38 @@ fn Run() -> i32 { // CHECK:STDOUT: @struct.631.loc14_3 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca { i32, i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: %.loc14_46.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc14_46.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @struct.631.loc14_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: %.loc15_31.1.a = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc15_31.2 = load i32, ptr %.loc15_31.1.a, align 4, !dbg !11 -// CHECK:STDOUT: %.loc15_31.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc15_31.2, ptr %.loc15_31.3.a, align 4, !dbg !11 -// CHECK:STDOUT: %.loc15_31.5.b = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %.loc15_31.6 = load i32, ptr %.loc15_31.5.b, align 4, !dbg !11 -// CHECK:STDOUT: %.loc15_31.7.b = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store i32 %.loc15_31.6, ptr %.loc15_31.7.b, align 4, !dbg !11 -// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !12 +// CHECK:STDOUT: %x.var = alloca { i32, i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !31 +// CHECK:STDOUT: %.loc14_46.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: %.loc14_46.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @struct.631.loc14_3, i64 8, i1 false), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !34 +// CHECK:STDOUT: %.loc15_31.1.a = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %.loc15_31.2 = load i32, ptr %.loc15_31.1.a, align 4, !dbg !35 +// CHECK:STDOUT: %.loc15_31.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: store i32 %.loc15_31.2, ptr %.loc15_31.3.a, align 4, !dbg !35 +// CHECK:STDOUT: %.loc15_31.5.b = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: %.loc15_31.6 = load i32, ptr %.loc15_31.5.b, align 4, !dbg !35 +// CHECK:STDOUT: %.loc15_31.7.b = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: store i32 %.loc15_31.6, ptr %.loc15_31.7.b, align 4, !dbg !35 +// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %_.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: ret i32 0, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.d0e8d3e870241846:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -70,33 +70,33 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "two_entries.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 31, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 31, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !7} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !1, line: 15, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 15, column: 3, scope: !19) +// CHECK:STDOUT: !18 = !DIFile(filename: "two_entries.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 14, column: 31, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 31, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !40 = !DILocation(line: 15, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d0e8d3e870241846:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !25) +// CHECK:STDOUT: !44 = !DILocation(line: 15, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !{!43} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/template/merging.carbon b/toolchain/lower/testdata/template/merging.carbon index f1f3b7b8d72f..868c9069ac41 100644 --- a/toolchain/lower/testdata/template/merging.carbon +++ b/toolchain/lower/testdata/template/merging.carbon @@ -97,60 +97,60 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: declare void @_CF.B.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCallF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCallCallF.Main() #0 !dbg !8 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallF.Main.bd4fb75a414fe858(), !dbg !7 -// CHECK:STDOUT: call void @_CCallF.Main.a6a60dfee2d7d273(), !dbg !8 -// CHECK:STDOUT: call void @_CCallF.Main.9522ff908e97e267(), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @_CCallF.Main.bd4fb75a414fe858(), !dbg !9 +// CHECK:STDOUT: call void @_CCallF.Main.a6a60dfee2d7d273(), !dbg !10 +// CHECK:STDOUT: call void @_CCallF.Main.9522ff908e97e267(), !dbg !11 +// CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.bd4fb75a414fe858() #0 !dbg !11 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.bd4fb75a414fe858() #0 !dbg !13 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.A.Main(), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @_CF.A.Main(), !dbg !14 +// CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.a6a60dfee2d7d273() #0 !dbg !14 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.a6a60dfee2d7d273() #0 !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.B.Main(), !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @_CF.B.Main(), !dbg !17 +// CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.9522ff908e97e267() #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.9522ff908e97e267() #0 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.B.Main(), !dbg !18 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_CF.B.Main(), !dbg !20 +// CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "merge_constant.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !4 = !DIFile(filename: "merge_constant.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.bd4fb75a414fe858", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 30, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 1, scope: !11) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.a6a60dfee2d7d273", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 30, scope: !14) -// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 1, scope: !14) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.9522ff908e97e267", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 30, scope: !17) -// CHECK:STDOUT: !19 = !DILocation(line: 7, column: 1, scope: !17) +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !4, line: 9, type: !7, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !9 = !DILocation(line: 10, column: 3, scope: !8) +// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 3, scope: !8) +// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 3, scope: !8) +// CHECK:STDOUT: !12 = !DILocation(line: 9, column: 1, scope: !8) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.bd4fb75a414fe858", scope: null, file: !4, line: 7, type: !7, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 30, scope: !13) +// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 1, scope: !13) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.a6a60dfee2d7d273", scope: null, file: !4, line: 7, type: !7, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !17 = !DILocation(line: 7, column: 30, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 7, column: 1, scope: !16) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.9522ff908e97e267", scope: null, file: !4, line: 7, type: !7, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 30, scope: !19) +// CHECK:STDOUT: !21 = !DILocation(line: 7, column: 1, scope: !19) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'no_merge_different_conversions.carbon' @@ -169,130 +169,130 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: declare void @_CF.B.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc8_45, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc8_45, i64 0, i1 false), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define void @"_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc8_45, i64 0, i1 false), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !14 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc8_45, i64 0, i1 false), !dbg !41 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCallF.Main() #0 !dbg !15 { +// CHECK:STDOUT: define void @_CCallCallF.Main() #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CInitAndCallF.Main.bd4fb75a414fe858(), !dbg !18 -// CHECK:STDOUT: call void @_CInitAndCallF.Main.a6a60dfee2d7d273(), !dbg !19 -// CHECK:STDOUT: call void @_CInitAndCallF.Main.9522ff908e97e267(), !dbg !20 -// CHECK:STDOUT: call void @_CInitAndCallF.Main.931317eeae6ffe17(), !dbg !21 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @_CInitAndCallF.Main.bd4fb75a414fe858(), !dbg !44 +// CHECK:STDOUT: call void @_CInitAndCallF.Main.a6a60dfee2d7d273(), !dbg !45 +// CHECK:STDOUT: call void @_CInitAndCallF.Main.9522ff908e97e267(), !dbg !46 +// CHECK:STDOUT: call void @_CInitAndCallF.Main.931317eeae6ffe17(), !dbg !47 +// CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCallBF.Main() #0 !dbg !23 { +// CHECK:STDOUT: define void @_CCallCallBF.Main() #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc32_11.2.temp = alloca {}, align 1, !dbg !24 -// CHECK:STDOUT: %.loc33_11.2.temp = alloca {}, align 1, !dbg !25 -// CHECK:STDOUT: %.loc34_11.2.temp = alloca {}, align 1, !dbg !26 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc32_11.2.temp), !dbg !24 -// CHECK:STDOUT: call void @_CCallBF.Main.a6a60dfee2d7d273(ptr @B.val.loc8_45), !dbg !27 -// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr @B.val), !dbg !24 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc33_11.2.temp), !dbg !25 -// CHECK:STDOUT: call void @_CCallBF.Main.9522ff908e97e267(ptr @C.val.loc33_13.3), !dbg !28 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !25 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_11.2.temp), !dbg !26 -// CHECK:STDOUT: call void @_CCallBF.Main.931317eeae6ffe17(ptr @D.val.loc34_13.3), !dbg !29 -// CHECK:STDOUT: call void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr @D.val), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !30 +// CHECK:STDOUT: %.loc32_11.2.temp = alloca {}, align 1, !dbg !50 +// CHECK:STDOUT: %.loc33_11.2.temp = alloca {}, align 1, !dbg !52 +// CHECK:STDOUT: %.loc34_11.2.temp = alloca {}, align 1, !dbg !54 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc32_11.2.temp), !dbg !50 +// CHECK:STDOUT: call void @_CCallBF.Main.a6a60dfee2d7d273(ptr @B.val.loc8_45), !dbg !51 +// CHECK:STDOUT: call void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr @B.val), !dbg !50 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc33_11.2.temp), !dbg !52 +// CHECK:STDOUT: call void @_CCallBF.Main.9522ff908e97e267(ptr @C.val.loc33_13.3), !dbg !53 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr @C.val), !dbg !52 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_11.2.temp), !dbg !54 +// CHECK:STDOUT: call void @_CCallBF.Main.931317eeae6ffe17(ptr @D.val.loc34_13.3), !dbg !55 +// CHECK:STDOUT: call void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr @D.val), !dbg !54 +// CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.535580a8a7a96b3b:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !36 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !40 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.86bfabb7802f32e5:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !44 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.bd4fb75a414fe858() #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.bd4fb75a414fe858() #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.A.Main(ptr @A.val.A.val), !dbg !46 -// CHECK:STDOUT: ret void, !dbg !47 +// CHECK:STDOUT: call void @_CF.A.Main(ptr @A.val.A.val), !dbg !70 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.a6a60dfee2d7d273() #0 !dbg !48 { +// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.a6a60dfee2d7d273() #0 !dbg !72 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.B.Main(ptr @B.val.loc8_45), !dbg !49 -// CHECK:STDOUT: ret void, !dbg !50 +// CHECK:STDOUT: call void @_CF.B.Main(ptr @B.val.loc8_45), !dbg !73 +// CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.9522ff908e97e267() #0 !dbg !51 { +// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.9522ff908e97e267() #0 !dbg !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.2a64a1.4.temp = alloca {}, align 1, !dbg !52 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.4.temp), !dbg !52 -// CHECK:STDOUT: call void @"_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.4.temp, ptr @C.val.loc33_13.3), !dbg !52 -// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.4.temp), !dbg !53 -// CHECK:STDOUT: ret void, !dbg !54 +// CHECK:STDOUT: %.2a64a1.4.temp = alloca {}, align 1, !dbg !77 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.4.temp), !dbg !77 +// CHECK:STDOUT: call void @"_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.4.temp, ptr @C.val.loc33_13.3), !dbg !77 +// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.4.temp), !dbg !76 +// CHECK:STDOUT: ret void, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.931317eeae6ffe17() #0 !dbg !55 { +// CHECK:STDOUT: define linkonce_odr void @_CInitAndCallF.Main.931317eeae6ffe17() #0 !dbg !79 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.2a64a1.3.temp = alloca {}, align 1, !dbg !56 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.3.temp), !dbg !56 -// CHECK:STDOUT: call void @"_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.3.temp, ptr @D.val.loc34_13.3), !dbg !56 -// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.3.temp), !dbg !57 -// CHECK:STDOUT: ret void, !dbg !58 +// CHECK:STDOUT: %.2a64a1.3.temp = alloca {}, align 1, !dbg !81 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.3.temp), !dbg !81 +// CHECK:STDOUT: call void @"_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.3.temp, ptr @D.val.loc34_13.3), !dbg !81 +// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.3.temp), !dbg !80 +// CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallBF.Main.a6a60dfee2d7d273(ptr %x) #0 !dbg !59 { +// CHECK:STDOUT: define linkonce_odr void @_CCallBF.Main.a6a60dfee2d7d273(ptr %x) #0 !dbg !83 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.B.Main(ptr %x), !dbg !62 -// CHECK:STDOUT: ret void, !dbg !63 +// CHECK:STDOUT: call void @_CF.B.Main(ptr %x), !dbg !86 +// CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallBF.Main.9522ff908e97e267(ptr %x) #0 !dbg !64 { +// CHECK:STDOUT: define linkonce_odr void @_CCallBF.Main.9522ff908e97e267(ptr %x) #0 !dbg !89 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.2a64a1.2.temp = alloca {}, align 1, !dbg !67 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.2.temp), !dbg !67 -// CHECK:STDOUT: call void @"_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.2.temp, ptr %x), !dbg !67 -// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.2.temp), !dbg !67 -// CHECK:STDOUT: ret void, !dbg !68 +// CHECK:STDOUT: %.2a64a1.2.temp = alloca {}, align 1, !dbg !92 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.2.temp), !dbg !92 +// CHECK:STDOUT: call void @"_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.2.temp, ptr %x), !dbg !92 +// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.2.temp), !dbg !92 +// CHECK:STDOUT: ret void, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallBF.Main.931317eeae6ffe17(ptr %x) #0 !dbg !69 { +// CHECK:STDOUT: define linkonce_odr void @_CCallBF.Main.931317eeae6ffe17(ptr %x) #0 !dbg !95 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.2a64a1.1.temp = alloca {}, align 1, !dbg !72 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.1.temp), !dbg !72 -// CHECK:STDOUT: call void @"_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.1.temp, ptr %x), !dbg !72 -// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.1.temp), !dbg !72 -// CHECK:STDOUT: ret void, !dbg !73 +// CHECK:STDOUT: %.2a64a1.1.temp = alloca {}, align 1, !dbg !98 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2a64a1.1.temp), !dbg !98 +// CHECK:STDOUT: call void @"_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2a64a1.1.temp, ptr %x), !dbg !98 +// CHECK:STDOUT: call void @_CF.B.Main(ptr %.2a64a1.1.temp), !dbg !98 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -302,83 +302,83 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_merge_different_conversions.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !1, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 8, column: 36, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !1, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 36, scope: !11) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !1, line: 20, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null} -// CHECK:STDOUT: !18 = !DILocation(line: 21, column: 3, scope: !15) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 3, scope: !15) -// CHECK:STDOUT: !20 = !DILocation(line: 23, column: 3, scope: !15) -// CHECK:STDOUT: !21 = !DILocation(line: 24, column: 3, scope: !15) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 1, scope: !15) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "CallCallBF", linkageName: "_CCallCallBF.Main", scope: null, file: !1, line: 31, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !24 = !DILocation(line: 32, column: 10, scope: !23) -// CHECK:STDOUT: !25 = !DILocation(line: 33, column: 10, scope: !23) -// CHECK:STDOUT: !26 = !DILocation(line: 34, column: 10, scope: !23) -// CHECK:STDOUT: !27 = !DILocation(line: 32, column: 3, scope: !23) -// CHECK:STDOUT: !28 = !DILocation(line: 33, column: 3, scope: !23) -// CHECK:STDOUT: !29 = !DILocation(line: 34, column: 3, scope: !23) -// CHECK:STDOUT: !30 = !DILocation(line: 31, column: 1, scope: !23) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !1, line: 32, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) -// CHECK:STDOUT: !32 = !DISubroutineType(types: !33) -// CHECK:STDOUT: !33 = !{null, !7} -// CHECK:STDOUT: !34 = !{!35} -// CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !31, type: !7) -// CHECK:STDOUT: !36 = !DILocation(line: 32, column: 10, scope: !31) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 33, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !38) -// CHECK:STDOUT: !38 = !{!39} -// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !7) -// CHECK:STDOUT: !40 = !DILocation(line: 33, column: 10, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.86bfabb7802f32e5:core.Destroy.Core", scope: null, file: !1, line: 34, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !42) -// CHECK:STDOUT: !42 = !{!43} -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 34, column: 10, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.bd4fb75a414fe858", scope: null, file: !1, line: 18, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !46 = !DILocation(line: 18, column: 37, scope: !45) -// CHECK:STDOUT: !47 = !DILocation(line: 18, column: 1, scope: !45) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.a6a60dfee2d7d273", scope: null, file: !1, line: 18, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !49 = !DILocation(line: 18, column: 37, scope: !48) -// CHECK:STDOUT: !50 = !DILocation(line: 18, column: 1, scope: !48) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.9522ff908e97e267", scope: null, file: !1, line: 18, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !52 = !DILocation(line: 0, scope: !51) -// CHECK:STDOUT: !53 = !DILocation(line: 18, column: 37, scope: !51) -// CHECK:STDOUT: !54 = !DILocation(line: 18, column: 1, scope: !51) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.931317eeae6ffe17", scope: null, file: !1, line: 18, type: !16, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !56 = !DILocation(line: 0, scope: !55) -// CHECK:STDOUT: !57 = !DILocation(line: 18, column: 37, scope: !55) -// CHECK:STDOUT: !58 = !DILocation(line: 18, column: 1, scope: !55) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "CallBF", linkageName: "_CCallBF.Main.a6a60dfee2d7d273", scope: null, file: !1, line: 27, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !60) -// CHECK:STDOUT: !60 = !{!61} -// CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !59, type: !7) -// CHECK:STDOUT: !62 = !DILocation(line: 28, column: 3, scope: !59) -// CHECK:STDOUT: !63 = !DILocation(line: 27, column: 1, scope: !59) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "CallBF", linkageName: "_CCallBF.Main.9522ff908e97e267", scope: null, file: !1, line: 27, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !65) -// CHECK:STDOUT: !65 = !{!66} -// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !7) -// CHECK:STDOUT: !67 = !DILocation(line: 28, column: 3, scope: !64) -// CHECK:STDOUT: !68 = !DILocation(line: 27, column: 1, scope: !64) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "CallBF", linkageName: "_CCallBF.Main.931317eeae6ffe17", scope: null, file: !1, line: 27, type: !32, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !70) -// CHECK:STDOUT: !70 = !{!71} -// CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !69, type: !7) -// CHECK:STDOUT: !72 = !DILocation(line: 28, column: 3, scope: !69) -// CHECK:STDOUT: !73 = !DILocation(line: 27, column: 1, scope: !69) +// CHECK:STDOUT: !6 = !{null} +// CHECK:STDOUT: !7 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !22 = !DIFile(filename: "no_merge_different_conversions.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !25 = !{null, !24} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = !{!24, !24} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.C.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !22, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !35) +// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !29, type: !24) +// CHECK:STDOUT: !34 = !DILocation(line: 8, column: 36, scope: !29) +// CHECK:STDOUT: !35 = !{!30} +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.D.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !22, line: 14, type: !28, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !42) +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !36, type: !24) +// CHECK:STDOUT: !41 = !DILocation(line: 14, column: 36, scope: !36) +// CHECK:STDOUT: !42 = !{!37} +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !22, line: 20, type: !7, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !44 = !DILocation(line: 21, column: 3, scope: !43) +// CHECK:STDOUT: !45 = !DILocation(line: 22, column: 3, scope: !43) +// CHECK:STDOUT: !46 = !DILocation(line: 23, column: 3, scope: !43) +// CHECK:STDOUT: !47 = !DILocation(line: 24, column: 3, scope: !43) +// CHECK:STDOUT: !48 = !DILocation(line: 20, column: 1, scope: !43) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "CallCallBF", linkageName: "_CCallCallBF.Main", scope: null, file: !22, line: 31, type: !7, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !50 = !DILocation(line: 32, column: 10, scope: !49) +// CHECK:STDOUT: !51 = !DILocation(line: 32, column: 3, scope: !49) +// CHECK:STDOUT: !52 = !DILocation(line: 33, column: 10, scope: !49) +// CHECK:STDOUT: !53 = !DILocation(line: 33, column: 3, scope: !49) +// CHECK:STDOUT: !54 = !DILocation(line: 34, column: 10, scope: !49) +// CHECK:STDOUT: !55 = !DILocation(line: 34, column: 3, scope: !49) +// CHECK:STDOUT: !56 = !DILocation(line: 31, column: 1, scope: !49) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.535580a8a7a96b3b:core.Destroy.Core", scope: null, file: !22, line: 32, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !60) +// CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !57, type: !24) +// CHECK:STDOUT: !59 = !DILocation(line: 32, column: 10, scope: !57) +// CHECK:STDOUT: !60 = !{!58} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !22, line: 33, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !64) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !24) +// CHECK:STDOUT: !63 = !DILocation(line: 33, column: 10, scope: !61) +// CHECK:STDOUT: !64 = !{!62} +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.86bfabb7802f32e5:core.Destroy.Core", scope: null, file: !22, line: 34, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !68) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !24) +// CHECK:STDOUT: !67 = !DILocation(line: 34, column: 10, scope: !65) +// CHECK:STDOUT: !68 = !{!66} +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.bd4fb75a414fe858", scope: null, file: !22, line: 18, type: !7, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !70 = !DILocation(line: 18, column: 37, scope: !69) +// CHECK:STDOUT: !71 = !DILocation(line: 18, column: 1, scope: !69) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.a6a60dfee2d7d273", scope: null, file: !22, line: 18, type: !7, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !73 = !DILocation(line: 18, column: 37, scope: !72) +// CHECK:STDOUT: !74 = !DILocation(line: 18, column: 1, scope: !72) +// CHECK:STDOUT: !75 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.9522ff908e97e267", scope: null, file: !22, line: 18, type: !7, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !76 = !DILocation(line: 18, column: 37, scope: !75) +// CHECK:STDOUT: !77 = !DILocation(line: 0, scope: !75) +// CHECK:STDOUT: !78 = !DILocation(line: 18, column: 1, scope: !75) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "InitAndCallF", linkageName: "_CInitAndCallF.Main.931317eeae6ffe17", scope: null, file: !22, line: 18, type: !7, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !80 = !DILocation(line: 18, column: 37, scope: !79) +// CHECK:STDOUT: !81 = !DILocation(line: 0, scope: !79) +// CHECK:STDOUT: !82 = !DILocation(line: 18, column: 1, scope: !79) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "CallBF", linkageName: "_CCallBF.Main.a6a60dfee2d7d273", scope: null, file: !22, line: 27, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !88) +// CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !83, type: !24) +// CHECK:STDOUT: !86 = !DILocation(line: 28, column: 3, scope: !83) +// CHECK:STDOUT: !87 = !DILocation(line: 27, column: 1, scope: !83) +// CHECK:STDOUT: !88 = !{!84} +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "CallBF", linkageName: "_CCallBF.Main.9522ff908e97e267", scope: null, file: !22, line: 27, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !94) +// CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !89, type: !24) +// CHECK:STDOUT: !92 = !DILocation(line: 28, column: 3, scope: !89) +// CHECK:STDOUT: !93 = !DILocation(line: 27, column: 1, scope: !89) +// CHECK:STDOUT: !94 = !{!90} +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "CallBF", linkageName: "_CCallBF.Main.931317eeae6ffe17", scope: null, file: !22, line: 27, type: !26, spFlags: DISPFlagDefinition, unit: !23, retainedNodes: !100) +// CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !95, type: !24) +// CHECK:STDOUT: !98 = !DILocation(line: 28, column: 3, scope: !95) +// CHECK:STDOUT: !99 = !DILocation(line: 27, column: 1, scope: !95) +// CHECK:STDOUT: !100 = !{!96} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'no_merge_convert_one_arg.carbon' @@ -387,65 +387,65 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: @A.val.loc6_45 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !105 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc6_45, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc6_45, i64 0, i1 false), !dbg !110 +// CHECK:STDOUT: ret void, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Main(ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCallCallF.Main(ptr %a, ptr %b) #0 !dbg !11 { +// CHECK:STDOUT: define void @_CCallCallF.Main(ptr %a, ptr %b) #0 !dbg !112 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallF.Main.2877a42045e01a3b(ptr %a, ptr %a), !dbg !17 -// CHECK:STDOUT: call void @_CCallF.Main.d01354a0ad5f3687(ptr %a, ptr %b), !dbg !18 -// CHECK:STDOUT: call void @_CCallF.Main.37b67b83fe9ed3dd(ptr %b, ptr %a), !dbg !19 -// CHECK:STDOUT: call void @_CCallF.Main.7096323a0fb88cc3(ptr %b, ptr %b), !dbg !20 -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: call void @_CCallF.Main.2877a42045e01a3b(ptr %a, ptr %a), !dbg !119 +// CHECK:STDOUT: call void @_CCallF.Main.d01354a0ad5f3687(ptr %a, ptr %b), !dbg !122 +// CHECK:STDOUT: call void @_CCallF.Main.37b67b83fe9ed3dd(ptr %b, ptr %a), !dbg !125 +// CHECK:STDOUT: call void @_CCallF.Main.7096323a0fb88cc3(ptr %b, ptr %b), !dbg !128 +// CHECK:STDOUT: ret void, !dbg !129 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.2877a42045e01a3b(ptr %x, ptr %y) #0 !dbg !22 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.2877a42045e01a3b(ptr %x, ptr %y) #0 !dbg !131 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr %x, ptr %y), !dbg !26 -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: call void @_CF.Main(ptr %x, ptr %y), !dbg !138 +// CHECK:STDOUT: ret void, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.d01354a0ad5f3687(ptr %x, ptr %y) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.d01354a0ad5f3687(ptr %x, ptr %y) #0 !dbg !141 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.9745c1.4.temp = alloca {}, align 1, !dbg !32 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.4.temp), !dbg !32 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.4.temp, ptr %y), !dbg !32 -// CHECK:STDOUT: call void @_CF.Main(ptr %x, ptr %.9745c1.4.temp), !dbg !32 -// CHECK:STDOUT: ret void, !dbg !33 +// CHECK:STDOUT: %.9745c1.4.temp = alloca {}, align 1, !dbg !148 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.4.temp), !dbg !148 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.4.temp, ptr %y), !dbg !148 +// CHECK:STDOUT: call void @_CF.Main(ptr %x, ptr %.9745c1.4.temp), !dbg !148 +// CHECK:STDOUT: ret void, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.37b67b83fe9ed3dd(ptr %x, ptr %y) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.37b67b83fe9ed3dd(ptr %x, ptr %y) #0 !dbg !151 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.9745c1.3.temp = alloca {}, align 1, !dbg !38 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.3.temp), !dbg !38 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.3.temp, ptr %x), !dbg !38 -// CHECK:STDOUT: call void @_CF.Main(ptr %.9745c1.3.temp, ptr %y), !dbg !38 -// CHECK:STDOUT: ret void, !dbg !39 +// CHECK:STDOUT: %.9745c1.3.temp = alloca {}, align 1, !dbg !158 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.3.temp), !dbg !158 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.3.temp, ptr %x), !dbg !158 +// CHECK:STDOUT: call void @_CF.Main(ptr %.9745c1.3.temp, ptr %y), !dbg !158 +// CHECK:STDOUT: ret void, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.7096323a0fb88cc3(ptr %x, ptr %y) #0 !dbg !40 { +// CHECK:STDOUT: define linkonce_odr void @_CCallF.Main.7096323a0fb88cc3(ptr %x, ptr %y) #0 !dbg !161 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.9745c1.1.temp = alloca {}, align 1, !dbg !44 -// CHECK:STDOUT: %.9745c1.2.temp = alloca {}, align 1, !dbg !44 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.1.temp), !dbg !44 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.1.temp, ptr %x), !dbg !44 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.2.temp), !dbg !44 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.2.temp, ptr %y), !dbg !44 -// CHECK:STDOUT: call void @_CF.Main(ptr %.9745c1.1.temp, ptr %.9745c1.2.temp), !dbg !44 -// CHECK:STDOUT: ret void, !dbg !45 +// CHECK:STDOUT: %.9745c1.1.temp = alloca {}, align 1, !dbg !168 +// CHECK:STDOUT: %.9745c1.2.temp = alloca {}, align 1, !dbg !168 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.1.temp), !dbg !168 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.1.temp, ptr %x), !dbg !168 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.9745c1.2.temp), !dbg !168 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.9745c1.2.temp, ptr %y), !dbg !168 +// CHECK:STDOUT: call void @_CF.Main(ptr %.9745c1.1.temp, ptr %.9745c1.2.temp), !dbg !168 +// CHECK:STDOUT: ret void, !dbg !169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -457,53 +457,53 @@ fn CallCallF(a: A, b: B) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!102} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "no_merge_convert_one_arg.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 36, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !1, line: 16, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7, !7} -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !11, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 3, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 3, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 19, column: 3, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 20, column: 3, scope: !11) -// CHECK:STDOUT: !21 = !DILocation(line: 16, column: 1, scope: !11) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.2877a42045e01a3b", scope: null, file: !1, line: 12, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !23 = !{!24, !25} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !7) -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 2, scope: !22, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 13, column: 3, scope: !22) -// CHECK:STDOUT: !27 = !DILocation(line: 12, column: 1, scope: !22) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.d01354a0ad5f3687", scope: null, file: !1, line: 12, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !29) -// CHECK:STDOUT: !29 = !{!30, !31} -// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !7) -// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !28, type: !7) -// CHECK:STDOUT: !32 = !DILocation(line: 13, column: 3, scope: !28) -// CHECK:STDOUT: !33 = !DILocation(line: 12, column: 1, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.37b67b83fe9ed3dd", scope: null, file: !1, line: 12, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !35) -// CHECK:STDOUT: !35 = !{!36, !37} -// CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !7) -// CHECK:STDOUT: !37 = !DILocalVariable(arg: 2, scope: !34, type: !7) -// CHECK:STDOUT: !38 = !DILocation(line: 13, column: 3, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 12, column: 1, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.7096323a0fb88cc3", scope: null, file: !1, line: 12, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !41) -// CHECK:STDOUT: !41 = !{!42, !43} -// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !7) -// CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !7) -// CHECK:STDOUT: !44 = !DILocation(line: 13, column: 3, scope: !40) -// CHECK:STDOUT: !45 = !DILocation(line: 12, column: 1, scope: !40) +// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !27 = !{!24, !24} +// CHECK:STDOUT: !28 = !DISubroutineType(types: !27) +// CHECK:STDOUT: !101 = !DIFile(filename: "no_merge_convert_one_arg.carbon", directory: "") +// CHECK:STDOUT: !102 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !101, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !103 = !{null, !24, !24} +// CHECK:STDOUT: !104 = !DISubroutineType(types: !103) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core", scope: null, file: !101, line: 6, type: !28, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !111) +// CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !105, type: !24) +// CHECK:STDOUT: !110 = !DILocation(line: 6, column: 36, scope: !105) +// CHECK:STDOUT: !111 = !{!106} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "CallCallF", linkageName: "_CCallCallF.Main", scope: null, file: !101, line: 16, type: !104, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !130) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !24) +// CHECK:STDOUT: !114 = !DILocalVariable(arg: 2, scope: !112, type: !24) +// CHECK:STDOUT: !119 = !DILocation(line: 17, column: 3, scope: !112) +// CHECK:STDOUT: !122 = !DILocation(line: 18, column: 3, scope: !112) +// CHECK:STDOUT: !125 = !DILocation(line: 19, column: 3, scope: !112) +// CHECK:STDOUT: !128 = !DILocation(line: 20, column: 3, scope: !112) +// CHECK:STDOUT: !129 = !DILocation(line: 16, column: 1, scope: !112) +// CHECK:STDOUT: !130 = !{!113, !114} +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.2877a42045e01a3b", scope: null, file: !101, line: 12, type: !104, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !140) +// CHECK:STDOUT: !132 = !DILocalVariable(arg: 1, scope: !131, type: !24) +// CHECK:STDOUT: !133 = !DILocalVariable(arg: 2, scope: !131, type: !24) +// CHECK:STDOUT: !138 = !DILocation(line: 13, column: 3, scope: !131) +// CHECK:STDOUT: !139 = !DILocation(line: 12, column: 1, scope: !131) +// CHECK:STDOUT: !140 = !{!132, !133} +// CHECK:STDOUT: !141 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.d01354a0ad5f3687", scope: null, file: !101, line: 12, type: !104, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !150) +// CHECK:STDOUT: !142 = !DILocalVariable(arg: 1, scope: !141, type: !24) +// CHECK:STDOUT: !143 = !DILocalVariable(arg: 2, scope: !141, type: !24) +// CHECK:STDOUT: !148 = !DILocation(line: 13, column: 3, scope: !141) +// CHECK:STDOUT: !149 = !DILocation(line: 12, column: 1, scope: !141) +// CHECK:STDOUT: !150 = !{!142, !143} +// CHECK:STDOUT: !151 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.37b67b83fe9ed3dd", scope: null, file: !101, line: 12, type: !104, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !160) +// CHECK:STDOUT: !152 = !DILocalVariable(arg: 1, scope: !151, type: !24) +// CHECK:STDOUT: !153 = !DILocalVariable(arg: 2, scope: !151, type: !24) +// CHECK:STDOUT: !158 = !DILocation(line: 13, column: 3, scope: !151) +// CHECK:STDOUT: !159 = !DILocation(line: 12, column: 1, scope: !151) +// CHECK:STDOUT: !160 = !{!152, !153} +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main.7096323a0fb88cc3", scope: null, file: !101, line: 12, type: !104, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !170) +// CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !161, type: !24) +// CHECK:STDOUT: !163 = !DILocalVariable(arg: 2, scope: !161, type: !24) +// CHECK:STDOUT: !168 = !DILocation(line: 13, column: 3, scope: !161) +// CHECK:STDOUT: !169 = !DILocation(line: 12, column: 1, scope: !161) +// CHECK:STDOUT: !170 = !{!162, !163} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/template/operator.carbon b/toolchain/lower/testdata/template/operator.carbon index 7b6e01cdc0f8..2018ca35729a 100644 --- a/toolchain/lower/testdata/template/operator.carbon +++ b/toolchain/lower/testdata/template/operator.carbon @@ -42,196 +42,196 @@ fn CallPolynomial(n: i32) -> i32 { return Polynomial(n); } // CHECK:STDOUT: source_filename = "unary.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallNegate.Main(i32 %a) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CCallNegate.Main(i32 %a) #0 !dbg !9 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Negate.call = call i32 @_CNegate.Main.84588f41d61dafba(i32 %a), !dbg !10 -// CHECK:STDOUT: ret i32 %Negate.call, !dbg !11 +// CHECK:STDOUT: %Negate.call = call i32 @_CNegate.Main.84588f41d61dafba(i32 %a), !dbg !15 +// CHECK:STDOUT: ret i32 %Negate.call, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CNegate.Main.84588f41d61dafba(i32 %a) #0 !dbg !12 { +// CHECK:STDOUT: define linkonce_odr i32 @_CNegate.Main.84588f41d61dafba(i32 %a) #0 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %a, !dbg !15 -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %Int.as.Negate.impl.Op.call), !dbg !16 -// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !16 +// CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %a, !dbg !24 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %Int.as.Negate.impl.Op.call), !dbg !25 +// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !17 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !21 -// CHECK:STDOUT: ret i32 %1, !dbg !22 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !28 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !33 +// CHECK:STDOUT: ret i32 %1, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !23 { -// CHECK:STDOUT: ret i32 %self, !dbg !26 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !37 { +// CHECK:STDOUT: ret i32 %self, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "unary.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallNegate", linkageName: "_CCallNegate.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 39, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 32, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Negate", linkageName: "_CNegate.Main.84588f41d61dafba", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 10, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 4, column: 3, scope: !12) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !18, line: 64, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !18 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 66, column: 17, scope: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 66, column: 5, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !18, line: 59, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 59, column: 28, scope: !23) +// CHECK:STDOUT: !4 = !DIFile(filename: "unary.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{!6, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "CallNegate", linkageName: "_CCallNegate.Main", scope: null, file: !4, line: 7, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !17) +// CHECK:STDOUT: !10 = !DILocalVariable(arg: 1, scope: !9, type: !6) +// CHECK:STDOUT: !15 = !DILocation(line: 7, column: 39, scope: !9) +// CHECK:STDOUT: !16 = !DILocation(line: 7, column: 32, scope: !9) +// CHECK:STDOUT: !17 = !{!10} +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Negate", linkageName: "_CNegate.Main.84588f41d61dafba", scope: null, file: !4, line: 3, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !18, type: !6) +// CHECK:STDOUT: !24 = !DILocation(line: 4, column: 10, scope: !18) +// CHECK:STDOUT: !25 = !DILocation(line: 4, column: 3, scope: !18) +// CHECK:STDOUT: !26 = !{!19} +// CHECK:STDOUT: !27 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !27, line: 64, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !6) +// CHECK:STDOUT: !33 = !DILocation(line: 66, column: 17, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 66, column: 5, scope: !28) +// CHECK:STDOUT: !36 = !{!29} +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !27, line: 59, type: !8, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !44) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !6) +// CHECK:STDOUT: !43 = !DILocation(line: 59, column: 28, scope: !37) +// CHECK:STDOUT: !44 = !{!38} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'binary.carbon' // CHECK:STDOUT: source_filename = "binary.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallAdd.Main(i32 %a, i32 %b) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CCallAdd.Main(i32 %a, i32 %b) #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Add.call = call i32 @_CAdd.Main.84588f41d61dafba(i32 %a, i32 %b), !dbg !11 -// CHECK:STDOUT: ret i32 %Add.call, !dbg !12 +// CHECK:STDOUT: %Add.call = call i32 @_CAdd.Main.84588f41d61dafba(i32 %a, i32 %b), !dbg !58 +// CHECK:STDOUT: ret i32 %Add.call, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CAdd.Main.84588f41d61dafba(i32 %a, i32 %b) #0 !dbg !13 { +// CHECK:STDOUT: define linkonce_odr i32 @_CAdd.Main.84588f41d61dafba(i32 %a, i32 %b) #0 !dbg !61 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %a, %b, !dbg !17 -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %Int.as.AddWith.impl.Op.call), !dbg !18 -// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !18 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %a, %b, !dbg !68 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %Int.as.AddWith.impl.Op.call), !dbg !70 +// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !19 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !25 -// CHECK:STDOUT: ret i32 %1, !dbg !26 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !72 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !77 +// CHECK:STDOUT: ret i32 %1, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !27 { -// CHECK:STDOUT: ret i32 %self, !dbg !30 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !81 { +// CHECK:STDOUT: ret i32 %self, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!46} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "binary.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallAdd", linkageName: "_CCallAdd.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 44, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 37, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Add", linkageName: "_CAdd.Main.84588f41d61dafba", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !14 = !{!15, !16} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 2, scope: !13, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 4, column: 10, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 4, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !20, line: 64, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !21 = !DISubroutineType(types: !22) -// CHECK:STDOUT: !22 = !{!7, !7} -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !7) -// CHECK:STDOUT: !25 = !DILocation(line: 66, column: 17, scope: !19) -// CHECK:STDOUT: !26 = !DILocation(line: 66, column: 5, scope: !19) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !20, line: 59, type: !21, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !28) -// CHECK:STDOUT: !28 = !{!29} -// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) -// CHECK:STDOUT: !30 = !DILocation(line: 59, column: 28, scope: !27) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{!6, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !27 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !45 = !DIFile(filename: "binary.carbon", directory: "") +// CHECK:STDOUT: !46 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !45, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !47 = !{!6, !6, !6} +// CHECK:STDOUT: !48 = !DISubroutineType(types: !47) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "CallAdd", linkageName: "_CCallAdd.Main", scope: null, file: !45, line: 7, type: !48, spFlags: DISPFlagDefinition, unit: !46, retainedNodes: !60) +// CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !49, type: !6) +// CHECK:STDOUT: !51 = !DILocalVariable(arg: 2, scope: !49, type: !6) +// CHECK:STDOUT: !58 = !DILocation(line: 7, column: 44, scope: !49) +// CHECK:STDOUT: !59 = !DILocation(line: 7, column: 37, scope: !49) +// CHECK:STDOUT: !60 = !{!50, !51} +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Add", linkageName: "_CAdd.Main.84588f41d61dafba", scope: null, file: !45, line: 3, type: !48, spFlags: DISPFlagDefinition, unit: !46, retainedNodes: !71) +// CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !61, type: !6) +// CHECK:STDOUT: !63 = !DILocalVariable(arg: 2, scope: !61, type: !6) +// CHECK:STDOUT: !68 = !DILocation(line: 4, column: 10, scope: !61) +// CHECK:STDOUT: !70 = !DILocation(line: 4, column: 3, scope: !61) +// CHECK:STDOUT: !71 = !{!62, !63} +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !27, line: 64, type: !8, spFlags: DISPFlagDefinition, unit: !46, retainedNodes: !80) +// CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !72, type: !6) +// CHECK:STDOUT: !77 = !DILocation(line: 66, column: 17, scope: !72) +// CHECK:STDOUT: !79 = !DILocation(line: 66, column: 5, scope: !72) +// CHECK:STDOUT: !80 = !{!73} +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !27, line: 59, type: !8, spFlags: DISPFlagDefinition, unit: !46, retainedNodes: !88) +// CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !81, type: !6) +// CHECK:STDOUT: !87 = !DILocation(line: 59, column: 28, scope: !81) +// CHECK:STDOUT: !88 = !{!82} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'chained.carbon' // CHECK:STDOUT: source_filename = "chained.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CCallPolynomial.Main(i32 %n) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CCallPolynomial.Main(i32 %n) #0 !dbg !91 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Polynomial.call = call i32 @_CPolynomial.Main.84588f41d61dafba(i32 %n), !dbg !10 -// CHECK:STDOUT: ret i32 %Polynomial.call, !dbg !11 +// CHECK:STDOUT: %Polynomial.call = call i32 @_CPolynomial.Main.84588f41d61dafba(i32 %n), !dbg !97 +// CHECK:STDOUT: ret i32 %Polynomial.call, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CPolynomial.Main.84588f41d61dafba(i32 %n) #0 !dbg !12 { +// CHECK:STDOUT: define linkonce_odr i32 @_CPolynomial.Main.84588f41d61dafba(i32 %n) #0 !dbg !100 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call.83a = mul i32 3, %n, !dbg !15 -// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %T.as_type.as.MulWith.impl.Op.call.83a, %n, !dbg !15 -// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call.958 = mul i32 5, %n, !dbg !16 -// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Int.as.MulWith.impl.Op.call, %T.as_type.as.MulWith.impl.Op.call.958, !dbg !15 -// CHECK:STDOUT: %Int.as.SubWith.impl.Op.call = sub i32 %Int.as.AddWith.impl.Op.call, 2, !dbg !15 -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %Int.as.SubWith.impl.Op.call), !dbg !17 -// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !17 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call.83a = mul i32 3, %n, !dbg !106 +// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %T.as_type.as.MulWith.impl.Op.call.83a, %n, !dbg !106 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call.958 = mul i32 5, %n, !dbg !109 +// CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %Int.as.MulWith.impl.Op.call, %T.as_type.as.MulWith.impl.Op.call.958, !dbg !106 +// CHECK:STDOUT: %Int.as.SubWith.impl.Op.call = sub i32 %Int.as.AddWith.impl.Op.call, 2, !dbg !106 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %Int.as.SubWith.impl.Op.call), !dbg !110 +// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !18 { -// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !22 -// CHECK:STDOUT: ret i32 %1, !dbg !23 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044"(i32 %self) #0 !dbg !112 { +// CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !117 +// CHECK:STDOUT: ret i32 %1, !dbg !119 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !24 { -// CHECK:STDOUT: ret i32 %self, !dbg !27 +// CHECK:STDOUT: define linkonce_odr i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self) #0 !dbg !121 { +// CHECK:STDOUT: ret i32 %self, !dbg !127 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!90} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "chained.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "CallPolynomial", linkageName: "_CCallPolynomial.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7, !7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 43, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 36, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Polynomial", linkageName: "_CPolynomial.Main.84588f41d61dafba", scope: null, file: !1, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13) -// CHECK:STDOUT: !13 = !{!14} -// CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 10, scope: !12) -// CHECK:STDOUT: !16 = !DILocation(line: 4, column: 22, scope: !12) -// CHECK:STDOUT: !17 = !DILocation(line: 4, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !19, line: 64, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 66, column: 17, scope: !18) -// CHECK:STDOUT: !23 = !DILocation(line: 66, column: 5, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !19, line: 59, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 59, column: 28, scope: !24) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{!6, !6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !27 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") +// CHECK:STDOUT: !89 = !DIFile(filename: "chained.carbon", directory: "") +// CHECK:STDOUT: !90 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !89, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "CallPolynomial", linkageName: "_CCallPolynomial.Main", scope: null, file: !89, line: 7, type: !8, spFlags: DISPFlagDefinition, unit: !90, retainedNodes: !99) +// CHECK:STDOUT: !92 = !DILocalVariable(arg: 1, scope: !91, type: !6) +// CHECK:STDOUT: !97 = !DILocation(line: 7, column: 43, scope: !91) +// CHECK:STDOUT: !98 = !DILocation(line: 7, column: 36, scope: !91) +// CHECK:STDOUT: !99 = !{!92} +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Polynomial", linkageName: "_CPolynomial.Main.84588f41d61dafba", scope: null, file: !89, line: 3, type: !8, spFlags: DISPFlagDefinition, unit: !90, retainedNodes: !111) +// CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !100, type: !6) +// CHECK:STDOUT: !106 = !DILocation(line: 4, column: 10, scope: !100) +// CHECK:STDOUT: !109 = !DILocation(line: 4, column: 22, scope: !100) +// CHECK:STDOUT: !110 = !DILocation(line: 4, column: 3, scope: !100) +// CHECK:STDOUT: !111 = !{!101} +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.bb469f8924cce044", scope: null, file: !27, line: 64, type: !8, spFlags: DISPFlagDefinition, unit: !90, retainedNodes: !120) +// CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !112, type: !6) +// CHECK:STDOUT: !117 = !DILocation(line: 66, column: 17, scope: !112) +// CHECK:STDOUT: !119 = !DILocation(line: 66, column: 5, scope: !112) +// CHECK:STDOUT: !120 = !{!113} +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "AsInt", linkageName: "_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8", scope: null, file: !27, line: 59, type: !8, spFlags: DISPFlagDefinition, unit: !90, retainedNodes: !128) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !121, type: !6) +// CHECK:STDOUT: !127 = !DILocation(line: 59, column: 28, scope: !121) +// CHECK:STDOUT: !128 = !{!122} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/access/element_access.carbon b/toolchain/lower/testdata/tuple/access/element_access.carbon index b1845142c4f7..de478b3c80a9 100644 --- a/toolchain/lower/testdata/tuple/access/element_access.carbon +++ b/toolchain/lower/testdata/tuple/access/element_access.carbon @@ -24,40 +24,40 @@ fn Run() -> i32 { // CHECK:STDOUT: @tuple.32e.loc14_3 = internal constant { i32, i32, i32 } { i32 0, i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %_.var.loc15 = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: %_.var.loc16 = alloca i32, align 4, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !8 -// CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %tuple.elem2.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.32e.loc14_3, i64 12, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !9 -// CHECK:STDOUT: %tuple.elem0.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc15 = load i32, ptr %tuple.elem0.loc15.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: store i32 %.loc15, ptr %_.var.loc15, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !10 -// CHECK:STDOUT: %tuple.elem2.loc16.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !13 -// CHECK:STDOUT: %.loc16 = load i32, ptr %tuple.elem2.loc16.tuple.elem, align 4, !dbg !13 -// CHECK:STDOUT: store i32 %.loc16, ptr %_.var.loc16, align 4, !dbg !10 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc16), !dbg !10 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc15), !dbg !9 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !14 +// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %_.var.loc15 = alloca i32, align 4, !dbg !34 +// CHECK:STDOUT: %_.var.loc16 = alloca i32, align 4, !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !31 +// CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: %tuple.elem2.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !32 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.32e.loc14_3, i64 12, i1 false), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !34 +// CHECK:STDOUT: %tuple.elem0.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %.loc15 = load i32, ptr %tuple.elem0.loc15.tuple.elem, align 4, !dbg !35 +// CHECK:STDOUT: store i32 %.loc15, ptr %_.var.loc15, align 4, !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !37 +// CHECK:STDOUT: %tuple.elem2.loc16.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !38 +// CHECK:STDOUT: %.loc16 = load i32, ptr %tuple.elem2.loc16.tuple.elem, align 4, !dbg !38 +// CHECK:STDOUT: store i32 %.loc16, ptr %_.var.loc16, align 4, !dbg !37 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc16), !dbg !37 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var.loc15), !dbg !34 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !31 +// CHECK:STDOUT: ret i32 0, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -73,35 +73,35 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "element_access.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 28, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 15, column: 16, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 16, column: 16, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !7} -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !15, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 16, column: 3, scope: !15) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !24} -// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 14, column: 3, scope: !21) +// CHECK:STDOUT: !18 = !DIFile(filename: "element_access.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 14, column: 28, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 16, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !38 = !DILocation(line: 16, column: 16, scope: !28) +// CHECK:STDOUT: !40 = !DILocation(line: 17, column: 3, scope: !28) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !20) +// CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !25) +// CHECK:STDOUT: !47 = !DILocation(line: 14, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/access/return_value_access.carbon b/toolchain/lower/testdata/tuple/access/return_value_access.carbon index 6c71c00b2131..074f518b9614 100644 --- a/toolchain/lower/testdata/tuple/access/return_value_access.carbon +++ b/toolchain/lower/testdata/tuple/access/return_value_access.carbon @@ -23,40 +23,40 @@ fn Run() { // CHECK:STDOUT: @tuple.1cd.loc13_39 = internal constant { i32, i32 } { i32 12, i32 24 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.1cd.loc13_39, i64 8, i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.1cd.loc13_39, i64 8, i1 false), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !10 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !14 -// CHECK:STDOUT: %.loc16_18.1.temp = alloca { i32, i32 }, align 4, !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_18.1.temp), !dbg !15 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_18.1.temp), !dbg !15 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_18.1.temp, i32 0, i32 1, !dbg !15 -// CHECK:STDOUT: %.loc16_19 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !15 -// CHECK:STDOUT: store i32 %.loc16_19, ptr %_.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc16_18.1.temp), !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !14 -// CHECK:STDOUT: ret i32 0, !dbg !16 +// CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !36 +// CHECK:STDOUT: %.loc16_18.1.temp = alloca { i32, i32 }, align 4, !dbg !37 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_18.1.temp), !dbg !37 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_18.1.temp), !dbg !37 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_18.1.temp, i32 0, i32 1, !dbg !37 +// CHECK:STDOUT: %.loc16_19 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !37 +// CHECK:STDOUT: store i32 %.loc16_19, ptr %_.var, align 4, !dbg !36 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %.loc16_18.1.temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %_.var), !dbg !36 +// CHECK:STDOUT: ret i32 0, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !28 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -71,36 +71,36 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "return_value_access.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 13, column: 31, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 13, column: 24, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{!13} -// CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !10) -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 16, scope: !10) -// CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !13} -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !13) -// CHECK:STDOUT: !22 = !DILocation(line: 16, column: 16, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) -// CHECK:STDOUT: !24 = !DISubroutineType(types: !25) -// CHECK:STDOUT: !25 = !{null, !7} -// CHECK:STDOUT: !26 = !{!27} -// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 16, scope: !23) +// CHECK:STDOUT: !18 = !DIFile(filename: "return_value_access.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{!20} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !33 = !DILocation(line: 13, column: 31, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 13, column: 24, scope: !30) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !35) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 16, scope: !35) +// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 1, scope: !35) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !43) +// CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !40, type: !20) +// CHECK:STDOUT: !42 = !DILocation(line: 16, column: 16, scope: !40) +// CHECK:STDOUT: !43 = !{!41} +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !47) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !21) +// CHECK:STDOUT: !46 = !DILocation(line: 16, column: 16, scope: !44) +// CHECK:STDOUT: !47 = !{!45} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/empty.carbon b/toolchain/lower/testdata/tuple/empty.carbon index 54f9fe5cfed4..2a60000c80d7 100644 --- a/toolchain/lower/testdata/tuple/empty.carbon +++ b/toolchain/lower/testdata/tuple/empty.carbon @@ -21,13 +21,13 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "empty.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca {}, align 1, !dbg !8 -// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: ret i32 0, !dbg !10 +// CHECK:STDOUT: %x.var = alloca {}, align 1, !dbg !26 +// CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !26 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !28 +// CHECK:STDOUT: ret i32 0, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -39,18 +39,18 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "empty.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "empty.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 15, column: 3, scope: !23) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/nested_tuple.carbon b/toolchain/lower/testdata/tuple/nested_tuple.carbon index 184499fad034..bc7017bc72e7 100644 --- a/toolchain/lower/testdata/tuple/nested_tuple.carbon +++ b/toolchain/lower/testdata/tuple/nested_tuple.carbon @@ -20,23 +20,23 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "nested_tuple.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret i32 0, !dbg !8 +// CHECK:STDOUT: ret i32 0, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nested_tuple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 15, column: 3, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "nested_tuple.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !26 = !DILocation(line: 15, column: 3, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon b/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon index 8017b107ad6c..25f11504fb38 100644 --- a/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon +++ b/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon @@ -23,34 +23,34 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr sret({ i32, i32, i32 })) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %_.var = alloca { { i32, i32, i32 }, { i32, i32, i32 } }, align 4, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !7 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem0.tuple.elem), !dbg !9 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem1.tuple.elem), !dbg !10 -// CHECK:STDOUT: call void @"_COp.ac811304fbcb483d:core.Destroy.Core"(ptr %_.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: %_.var = alloca { { i32, i32, i32 }, { i32, i32, i32 } }, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !31 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem0.tuple.elem), !dbg !33 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem1.tuple.elem), !dbg !34 +// CHECK:STDOUT: call void @"_COp.ac811304fbcb483d:core.Destroy.Core"(ptr %_.var), !dbg !31 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac811304fbcb483d:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.ac811304fbcb483d:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !29 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -59,37 +59,37 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nested_tuple_in_place.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 47, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 48, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 53, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !15} -// CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) -// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac811304fbcb483d:core.Destroy.Core", scope: null, file: !1, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) -// CHECK:STDOUT: !27 = !{!28} -// CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) -// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) +// CHECK:STDOUT: !18 = !DIFile(filename: "nested_tuple_in_place.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = !{null, !21} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 3, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 47, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 48, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 16, column: 53, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 1, scope: !30) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !21) +// CHECK:STDOUT: !43 = !DILocation(line: 16, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac811304fbcb483d:core.Destroy.Core", scope: null, file: !18, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !48) +// CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !45, type: !21) +// CHECK:STDOUT: !47 = !DILocation(line: 16, column: 3, scope: !45) +// CHECK:STDOUT: !48 = !{!46} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/one_entry.carbon b/toolchain/lower/testdata/tuple/one_entry.carbon index e773eb0bc3d0..65015129a87b 100644 --- a/toolchain/lower/testdata/tuple/one_entry.carbon +++ b/toolchain/lower/testdata/tuple/one_entry.carbon @@ -21,32 +21,32 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "one_entry.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca { i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %_.var = alloca { i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: store { i32 } { i32 1 }, ptr %x.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc15_20.1 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: %.loc15_20.2.tuple.init = insertvalue { i32 } poison, i32 %.loc15_20.1, 0, !dbg !10 -// CHECK:STDOUT: store { i32 } %.loc15_20.2.tuple.init, ptr %_.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !11 +// CHECK:STDOUT: %x.var = alloca { i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %_.var = alloca { i32 }, align 4, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !31 +// CHECK:STDOUT: store { i32 } { i32 1 }, ptr %x.var, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !33 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: %.loc15_20.1 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !34 +// CHECK:STDOUT: %.loc15_20.2.tuple.init = insertvalue { i32 } poison, i32 %.loc15_20.1, 0, !dbg !34 +// CHECK:STDOUT: store { i32 } %.loc15_20.2.tuple.init, ptr %_.var, align 4, !dbg !33 +// CHECK:STDOUT: call void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %_.var), !dbg !33 +// CHECK:STDOUT: call void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: ret i32 0, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.216a6481b641f07b:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -59,32 +59,32 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "one_entry.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 20, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !13 = !DISubroutineType(types: !14) -// CHECK:STDOUT: !14 = !{null, !7} -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) -// CHECK:STDOUT: !17 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.216a6481b641f07b:core.Destroy.Core", scope: null, file: !1, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) -// CHECK:STDOUT: !19 = !DISubroutineType(types: !20) -// CHECK:STDOUT: !20 = !{null, !21} -// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !22 = !{!23} -// CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) -// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 3, scope: !18) +// CHECK:STDOUT: !18 = !DIFile(filename: "one_entry.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 20, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !40) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !20) +// CHECK:STDOUT: !39 = !DILocation(line: 15, column: 3, scope: !37) +// CHECK:STDOUT: !40 = !{!38} +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.216a6481b641f07b:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !44) +// CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !41, type: !25) +// CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !41) +// CHECK:STDOUT: !44 = !{!42} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/two_entries.carbon b/toolchain/lower/testdata/tuple/two_entries.carbon index afbcc69b862b..205071a92465 100644 --- a/toolchain/lower/testdata/tuple/two_entries.carbon +++ b/toolchain/lower/testdata/tuple/two_entries.carbon @@ -23,38 +23,38 @@ fn Run() -> i32 { // CHECK:STDOUT: @tuple.328.loc14_3 = internal constant { i32, i32 } { i32 12, i32 7 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca { i32, i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %tuple.elem1.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @tuple.328.loc14_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 -// CHECK:STDOUT: %tuple.elem0.loc15_23.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: %.loc15_23.1 = load i32, ptr %tuple.elem0.loc15_23.1.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem0.loc15_23.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store i32 %.loc15_23.1, ptr %tuple.elem0.loc15_23.2.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.loc15_23.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: %.loc15_23.3 = load i32, ptr %tuple.elem1.loc15_23.1.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: %tuple.elem1.loc15_23.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store i32 %.loc15_23.3, ptr %tuple.elem1.loc15_23.2.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !12 +// CHECK:STDOUT: %x.var = alloca { i32, i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !31 +// CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !32 +// CHECK:STDOUT: %tuple.elem1.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !32 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @tuple.328.loc14_3, i64 8, i1 false), !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !34 +// CHECK:STDOUT: %tuple.elem0.loc15_23.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: %.loc15_23.1 = load i32, ptr %tuple.elem0.loc15_23.1.tuple.elem, align 4, !dbg !35 +// CHECK:STDOUT: %tuple.elem0.loc15_23.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: store i32 %.loc15_23.1, ptr %tuple.elem0.loc15_23.2.tuple.elem, align 4, !dbg !35 +// CHECK:STDOUT: %tuple.elem1.loc15_23.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: %.loc15_23.3 = load i32, ptr %tuple.elem1.loc15_23.1.tuple.elem, align 4, !dbg !35 +// CHECK:STDOUT: %tuple.elem1.loc15_23.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: store i32 %.loc15_23.3, ptr %tuple.elem1.loc15_23.2.tuple.elem, align 4, !dbg !35 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %_.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %x.var), !dbg !31 +// CHECK:STDOUT: ret i32 0, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.7ebc50e8bd9eb2f1:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !25 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -70,33 +70,33 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "two_entries.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 14, column: 23, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 23, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{null, !7} -// CHECK:STDOUT: !16 = !{!17} -// CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !1, line: 15, type: !20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null, !22} -// CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !23 = !{!24} -// CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) -// CHECK:STDOUT: !25 = !DILocation(line: 15, column: 3, scope: !19) +// CHECK:STDOUT: !18 = !DIFile(filename: "two_entries.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !26 = !{null, !25} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) +// CHECK:STDOUT: !32 = !DILocation(line: 14, column: 23, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 23, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !40 = !DILocation(line: 15, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7ebc50e8bd9eb2f1:core.Destroy.Core", scope: null, file: !18, line: 15, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !25) +// CHECK:STDOUT: !44 = !DILocation(line: 15, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !{!43} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/value_formation.carbon b/toolchain/lower/testdata/tuple/value_formation.carbon index 15c94e29d941..909540097d21 100644 --- a/toolchain/lower/testdata/tuple/value_formation.carbon +++ b/toolchain/lower/testdata/tuple/value_formation.carbon @@ -25,62 +25,62 @@ fn F() { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main() #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !7 -// CHECK:STDOUT: %b.var = alloca { i32, i32, i32 }, align 4, !dbg !8 -// CHECK:STDOUT: %tuple.loc18_6 = alloca { i32, i32, i32 }, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.loc18_9 = alloca { i32, i32, i32 }, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.loc18_10 = alloca { ptr, ptr }, align 8, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !8 -// CHECK:STDOUT: %tuple.elem0.loc18_6.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: %.loc18_6.1 = load i32, ptr %tuple.elem0.loc18_6.tuple.elem, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.elem1.loc18_6.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !9 -// CHECK:STDOUT: %.loc18_6.2 = load i32, ptr %tuple.elem1.loc18_6.tuple.elem, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.elem2.loc18_6.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !9 -// CHECK:STDOUT: %.loc18_6.3 = load i32, ptr %tuple.elem2.loc18_6.tuple.elem, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc18_6), !dbg !9 -// CHECK:STDOUT: %tuple.loc18_61 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_6, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: store i32 %.loc18_6.1, ptr %tuple.loc18_61, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.loc18_62 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_6, i32 0, i32 1, !dbg !9 -// CHECK:STDOUT: store i32 %.loc18_6.2, ptr %tuple.loc18_62, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.loc18_63 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_6, i32 0, i32 2, !dbg !9 -// CHECK:STDOUT: store i32 %.loc18_6.3, ptr %tuple.loc18_63, align 4, !dbg !9 -// CHECK:STDOUT: %tuple.elem0.loc18_9.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: %.loc18_9.1 = load i32, ptr %tuple.elem0.loc18_9.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.elem1.loc18_9.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: %.loc18_9.2 = load i32, ptr %tuple.elem1.loc18_9.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.elem2.loc18_9.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %b.var, i32 0, i32 2, !dbg !10 -// CHECK:STDOUT: %.loc18_9.3 = load i32, ptr %tuple.elem2.loc18_9.tuple.elem, align 4, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc18_9), !dbg !10 -// CHECK:STDOUT: %tuple.loc18_94 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_9, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: store i32 %.loc18_9.1, ptr %tuple.loc18_94, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.loc18_95 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_9, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: store i32 %.loc18_9.2, ptr %tuple.loc18_95, align 4, !dbg !10 -// CHECK:STDOUT: %tuple.loc18_96 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_9, i32 0, i32 2, !dbg !10 -// CHECK:STDOUT: store i32 %.loc18_9.3, ptr %tuple.loc18_96, align 4, !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc18_10), !dbg !11 -// CHECK:STDOUT: %tuple.loc18_107 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc18_10, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store ptr %tuple.loc18_6, ptr %tuple.loc18_107, align 8, !dbg !11 -// CHECK:STDOUT: %tuple.loc18_108 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc18_10, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store ptr %tuple.loc18_9, ptr %tuple.loc18_108, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CG.Main(ptr %tuple.loc18_10), !dbg !12 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %b.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !29 +// CHECK:STDOUT: %b.var = alloca { i32, i32, i32 }, align 4, !dbg !31 +// CHECK:STDOUT: %tuple.loc18_6 = alloca { i32, i32, i32 }, align 4, !dbg !33 +// CHECK:STDOUT: %tuple.loc18_9 = alloca { i32, i32, i32 }, align 4, !dbg !34 +// CHECK:STDOUT: %tuple.loc18_10 = alloca { ptr, ptr }, align 8, !dbg !35 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !29 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !31 +// CHECK:STDOUT: %tuple.elem0.loc18_6.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: %.loc18_6.1 = load i32, ptr %tuple.elem0.loc18_6.tuple.elem, align 4, !dbg !33 +// CHECK:STDOUT: %tuple.elem1.loc18_6.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: %.loc18_6.2 = load i32, ptr %tuple.elem1.loc18_6.tuple.elem, align 4, !dbg !33 +// CHECK:STDOUT: %tuple.elem2.loc18_6.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !33 +// CHECK:STDOUT: %.loc18_6.3 = load i32, ptr %tuple.elem2.loc18_6.tuple.elem, align 4, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc18_6), !dbg !33 +// CHECK:STDOUT: %tuple.loc18_61 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_6, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: store i32 %.loc18_6.1, ptr %tuple.loc18_61, align 4, !dbg !33 +// CHECK:STDOUT: %tuple.loc18_62 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_6, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: store i32 %.loc18_6.2, ptr %tuple.loc18_62, align 4, !dbg !33 +// CHECK:STDOUT: %tuple.loc18_63 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_6, i32 0, i32 2, !dbg !33 +// CHECK:STDOUT: store i32 %.loc18_6.3, ptr %tuple.loc18_63, align 4, !dbg !33 +// CHECK:STDOUT: %tuple.elem0.loc18_9.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: %.loc18_9.1 = load i32, ptr %tuple.elem0.loc18_9.tuple.elem, align 4, !dbg !34 +// CHECK:STDOUT: %tuple.elem1.loc18_9.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !34 +// CHECK:STDOUT: %.loc18_9.2 = load i32, ptr %tuple.elem1.loc18_9.tuple.elem, align 4, !dbg !34 +// CHECK:STDOUT: %tuple.elem2.loc18_9.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %b.var, i32 0, i32 2, !dbg !34 +// CHECK:STDOUT: %.loc18_9.3 = load i32, ptr %tuple.elem2.loc18_9.tuple.elem, align 4, !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc18_9), !dbg !34 +// CHECK:STDOUT: %tuple.loc18_94 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_9, i32 0, i32 0, !dbg !34 +// CHECK:STDOUT: store i32 %.loc18_9.1, ptr %tuple.loc18_94, align 4, !dbg !34 +// CHECK:STDOUT: %tuple.loc18_95 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_9, i32 0, i32 1, !dbg !34 +// CHECK:STDOUT: store i32 %.loc18_9.2, ptr %tuple.loc18_95, align 4, !dbg !34 +// CHECK:STDOUT: %tuple.loc18_96 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %tuple.loc18_9, i32 0, i32 2, !dbg !34 +// CHECK:STDOUT: store i32 %.loc18_9.3, ptr %tuple.loc18_96, align 4, !dbg !34 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple.loc18_10), !dbg !35 +// CHECK:STDOUT: %tuple.loc18_107 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc18_10, i32 0, i32 0, !dbg !35 +// CHECK:STDOUT: store ptr %tuple.loc18_6, ptr %tuple.loc18_107, align 8, !dbg !35 +// CHECK:STDOUT: %tuple.loc18_108 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc18_10, i32 0, i32 1, !dbg !35 +// CHECK:STDOUT: store ptr %tuple.loc18_9, ptr %tuple.loc18_108, align 8, !dbg !35 +// CHECK:STDOUT: call void @_CG.Main(ptr %tuple.loc18_10), !dbg !36 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %b.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -93,35 +93,35 @@ fn F() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "value_formation.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 6, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 18, column: 9, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 18, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 17, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !24} -// CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 17, column: 3, scope: !21) +// CHECK:STDOUT: !18 = !DIFile(filename: "value_formation.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{null, !21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = !{null} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = !{null, !20} +// CHECK:STDOUT: !27 = !DISubroutineType(types: !26) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !28) +// CHECK:STDOUT: !31 = !DILocation(line: 17, column: 3, scope: !28) +// CHECK:STDOUT: !33 = !DILocation(line: 18, column: 6, scope: !28) +// CHECK:STDOUT: !34 = !DILocation(line: 18, column: 9, scope: !28) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 5, scope: !28) +// CHECK:STDOUT: !36 = !DILocation(line: 18, column: 3, scope: !28) +// CHECK:STDOUT: !37 = !DILocation(line: 15, column: 1, scope: !28) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 17, type: !27, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !41) +// CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !38, type: !20) +// CHECK:STDOUT: !40 = !DILocation(line: 17, column: 3, scope: !38) +// CHECK:STDOUT: !41 = !{!39} +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !18, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !45) +// CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !42, type: !21) +// CHECK:STDOUT: !44 = !DILocation(line: 17, column: 3, scope: !42) +// CHECK:STDOUT: !45 = !{!43} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/tuple/value_forwarding.carbon b/toolchain/lower/testdata/tuple/value_forwarding.carbon index f8827b52104c..eed4f58549a0 100644 --- a/toolchain/lower/testdata/tuple/value_forwarding.carbon +++ b/toolchain/lower/testdata/tuple/value_forwarding.carbon @@ -23,16 +23,16 @@ fn F(a: (i32, i32, i32), b: (i32, i32, i32)) { // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr %a, ptr %b) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr %a, ptr %b) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple = alloca { ptr, ptr }, align 8, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple), !dbg !11 -// CHECK:STDOUT: %tuple1 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple, i32 0, i32 0, !dbg !11 -// CHECK:STDOUT: store ptr %a, ptr %tuple1, align 8, !dbg !11 -// CHECK:STDOUT: %tuple2 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: store ptr %b, ptr %tuple2, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CG.Main(ptr %tuple), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %tuple = alloca { ptr, ptr }, align 8, !dbg !33 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %tuple), !dbg !33 +// CHECK:STDOUT: %tuple1 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple, i32 0, i32 0, !dbg !33 +// CHECK:STDOUT: store ptr %a, ptr %tuple1, align 8, !dbg !33 +// CHECK:STDOUT: %tuple2 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple, i32 0, i32 1, !dbg !33 +// CHECK:STDOUT: store ptr %b, ptr %tuple2, align 8, !dbg !33 +// CHECK:STDOUT: call void @_CG.Main(ptr %tuple), !dbg !34 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -41,21 +41,21 @@ fn F(a: (i32, i32, i32), b: (i32, i32, i32)) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "value_forwarding.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9, !10} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 15, column: 1, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "value_forwarding.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !24 = !{null, !21, !21} +// CHECK:STDOUT: !25 = !DISubroutineType(types: !24) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !18, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !36) +// CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !26, type: !21) +// CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !26, type: !21) +// CHECK:STDOUT: !33 = !DILocation(line: 16, column: 5, scope: !26) +// CHECK:STDOUT: !34 = !DILocation(line: 16, column: 3, scope: !26) +// CHECK:STDOUT: !35 = !DILocation(line: 15, column: 1, scope: !26) +// CHECK:STDOUT: !36 = !{!27, !28} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/destroy_control_flow.carbon b/toolchain/lower/testdata/var/destroy_control_flow.carbon index 63f37056889f..b9c80a1a55a1 100644 --- a/toolchain/lower/testdata/var/destroy_control_flow.carbon +++ b/toolchain/lower/testdata/var/destroy_control_flow.carbon @@ -120,30 +120,30 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: declare void @"_COp.Destructible.Main:Destroy.Core"(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.3fda586d04e243ea.Core:Destructible.Main:Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp:thunk:Destroy.3fda586d04e243ea.Core:Destructible.Main:Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Destructible.Main:Destroy.Core"(ptr %self), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @"_COp.Destructible.Main:Destroy.Core"(ptr %self), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { alwaysinline nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!33} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "destructible.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.3fda586d04e243ea.Core:Destructible.Main:Destroy.Core", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 5, scope: !4) +// CHECK:STDOUT: !32 = !DIFile(filename: "destructible.carbon", directory: "") +// CHECK:STDOUT: !33 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !32, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.3fda586d04e243ea.Core:Destructible.Main:Destroy.Core", scope: null, file: !32, line: 7, type: !36, spFlags: DISPFlagDefinition, unit: !33, retainedNodes: !41) +// CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !37, type: !34) +// CHECK:STDOUT: !40 = !DILocation(line: 7, column: 5, scope: !37) +// CHECK:STDOUT: !41 = !{!38} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'if_then.carbon' @@ -152,34 +152,34 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: @Destructible.val.loc6_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIfThen.Main(i1 %cond) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CIfThen.Main(i1 %cond) #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !12 -// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !13 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !47 +// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !54 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !47 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !47 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !51 +// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !53 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !11 -// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: br label %if.else, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !54 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !54 +// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !58 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !54 +// CHECK:STDOUT: br label %if.else, !dbg !59 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !16 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !62 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !47 +// CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -197,31 +197,31 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!43} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "if_then.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "IfThen", linkageName: "_CIfThen.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 8, column: 6, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 10, column: 5, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) -// CHECK:STDOUT: !21 = !DILocation(line: 9, column: 5, scope: !18) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !42 = !DIFile(filename: "if_then.carbon", directory: "") +// CHECK:STDOUT: !43 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !42, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "IfThen", linkageName: "_CIfThen.Main", scope: null, file: !42, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !43, retainedNodes: !64) +// CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !44, type: !34) +// CHECK:STDOUT: !47 = !DILocation(line: 6, column: 3, scope: !44) +// CHECK:STDOUT: !51 = !DILocation(line: 7, column: 3, scope: !44) +// CHECK:STDOUT: !53 = !DILocation(line: 8, column: 6, scope: !44) +// CHECK:STDOUT: !54 = !DILocation(line: 9, column: 5, scope: !44) +// CHECK:STDOUT: !58 = !DILocation(line: 10, column: 5, scope: !44) +// CHECK:STDOUT: !59 = !DILocation(line: 8, column: 3, scope: !44) +// CHECK:STDOUT: !62 = !DILocation(line: 12, column: 3, scope: !44) +// CHECK:STDOUT: !63 = !DILocation(line: 5, column: 1, scope: !44) +// CHECK:STDOUT: !64 = !{!45} +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !42, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !43, retainedNodes: !68) +// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !65, type: !34) +// CHECK:STDOUT: !67 = !DILocation(line: 9, column: 5, scope: !65) +// CHECK:STDOUT: !68 = !{!66} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'if_else.carbon' @@ -230,42 +230,42 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: @Destructible.val.loc6_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIfElse.Main(i1 %cond) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CIfElse.Main(i1 %cond) #0 !dbg !71 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !13 -// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !14 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !74 +// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !81 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !87 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !74 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !74 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !78 +// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !80 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !11 -// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: br label %if.done, !dbg !16 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !81 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !81 +// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !85 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !81 +// CHECK:STDOUT: br label %if.done, !dbg !86 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !12 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !12 -// CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !12 -// CHECK:STDOUT: br label %if.done, !dbg !16 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !87 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !87 +// CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !91 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !87 +// CHECK:STDOUT: br label %if.done, !dbg !86 // CHECK:STDOUT: // CHECK:STDOUT: if.done: ; preds = %if.else, %if.then -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !19 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !94 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !74 +// CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -283,33 +283,33 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!70} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "if_else.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "IfElse", linkageName: "_CIfElse.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 12, column: 5, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 8, column: 6, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 10, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 13, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) -// CHECK:STDOUT: !21 = !{!22} -// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !7) -// CHECK:STDOUT: !23 = !DILocation(line: 9, column: 5, scope: !20) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !69 = !DIFile(filename: "if_else.carbon", directory: "") +// CHECK:STDOUT: !70 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !69, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "IfElse", linkageName: "_CIfElse.Main", scope: null, file: !69, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !96) +// CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !71, type: !34) +// CHECK:STDOUT: !74 = !DILocation(line: 6, column: 3, scope: !71) +// CHECK:STDOUT: !78 = !DILocation(line: 7, column: 3, scope: !71) +// CHECK:STDOUT: !80 = !DILocation(line: 8, column: 6, scope: !71) +// CHECK:STDOUT: !81 = !DILocation(line: 9, column: 5, scope: !71) +// CHECK:STDOUT: !85 = !DILocation(line: 10, column: 5, scope: !71) +// CHECK:STDOUT: !86 = !DILocation(line: 8, column: 3, scope: !71) +// CHECK:STDOUT: !87 = !DILocation(line: 12, column: 5, scope: !71) +// CHECK:STDOUT: !91 = !DILocation(line: 13, column: 5, scope: !71) +// CHECK:STDOUT: !94 = !DILocation(line: 15, column: 3, scope: !71) +// CHECK:STDOUT: !95 = !DILocation(line: 5, column: 1, scope: !71) +// CHECK:STDOUT: !96 = !{!72} +// CHECK:STDOUT: !97 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !69, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !70, retainedNodes: !100) +// CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !97, type: !34) +// CHECK:STDOUT: !99 = !DILocation(line: 9, column: 5, scope: !97) +// CHECK:STDOUT: !100 = !{!98} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'if_return.carbon' @@ -318,34 +318,34 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: @Destructible.val.loc6_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CIfReturn.Main(i1 %cond) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CIfReturn.Main(i1 %cond) #0 !dbg !103 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !12 -// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !13 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !106 +// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !113 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !106 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !106 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !110 +// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !112 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !11 -// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !113 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !113 +// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !117 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !113 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !106 +// CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !106 +// CHECK:STDOUT: ret void, !dbg !119 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !121 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !123 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -363,30 +363,30 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!102} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "if_return.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "IfReturn", linkageName: "_CIfReturn.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 8, column: 6, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 10, column: 5, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 11, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !20 = !DILocation(line: 9, column: 5, scope: !17) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !101 = !DIFile(filename: "if_return.carbon", directory: "") +// CHECK:STDOUT: !102 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !101, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "IfReturn", linkageName: "_CIfReturn.Main", scope: null, file: !101, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !120) +// CHECK:STDOUT: !104 = !DILocalVariable(arg: 1, scope: !103, type: !34) +// CHECK:STDOUT: !106 = !DILocation(line: 6, column: 3, scope: !103) +// CHECK:STDOUT: !110 = !DILocation(line: 7, column: 3, scope: !103) +// CHECK:STDOUT: !112 = !DILocation(line: 8, column: 6, scope: !103) +// CHECK:STDOUT: !113 = !DILocation(line: 9, column: 5, scope: !103) +// CHECK:STDOUT: !117 = !DILocation(line: 10, column: 5, scope: !103) +// CHECK:STDOUT: !118 = !DILocation(line: 11, column: 5, scope: !103) +// CHECK:STDOUT: !119 = !DILocation(line: 5, column: 1, scope: !103) +// CHECK:STDOUT: !120 = !{!104} +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !101, line: 9, type: !36, spFlags: DISPFlagDefinition, unit: !102, retainedNodes: !124) +// CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !121, type: !34) +// CHECK:STDOUT: !123 = !DILocation(line: 9, column: 5, scope: !121) +// CHECK:STDOUT: !124 = !{!122} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'while_break.carbon' @@ -395,50 +395,50 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: @Destructible.val.loc6_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWhileBreak.Main(i1 %cond) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWhileBreak.Main(i1 %cond) #0 !dbg !127 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !13 -// CHECK:STDOUT: br label %while.cond, !dbg !14 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !130 +// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !140 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !147 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !130 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !130 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !134 +// CHECK:STDOUT: br label %while.cond, !dbg !135 // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %if.else, %entry -// CHECK:STDOUT: br i1 %cond, label %while.body, label %while.done, !dbg !14 +// CHECK:STDOUT: br i1 %cond, label %while.body, label %while.done, !dbg !135 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !11 -// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !16 -// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !17 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !139 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !140 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !140 +// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !144 +// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !146 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %while.body -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !12 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !12 -// CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !12 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: br label %while.done, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !147 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !147 +// CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !151 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !147 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !140 +// CHECK:STDOUT: br label %while.done, !dbg !152 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %while.body -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: br label %while.cond, !dbg !20 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !140 +// CHECK:STDOUT: br label %while.cond, !dbg !153 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %if.then, %while.cond -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !21 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !156 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !130 +// CHECK:STDOUT: ret void, !dbg !157 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !159 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -456,36 +456,36 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!126} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "while_break.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "WhileBreak", linkageName: "_CWhileBreak.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 10, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 13, column: 7, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 8, column: 9, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 5, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 8, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 7, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 7, scope: !4) -// CHECK:STDOUT: !20 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !22 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 13, column: 7, scope: !23) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !125 = !DIFile(filename: "while_break.carbon", directory: "") +// CHECK:STDOUT: !126 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !125, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !127 = distinct !DISubprogram(name: "WhileBreak", linkageName: "_CWhileBreak.Main", scope: null, file: !125, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !126, retainedNodes: !158) +// CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !127, type: !34) +// CHECK:STDOUT: !130 = !DILocation(line: 6, column: 3, scope: !127) +// CHECK:STDOUT: !134 = !DILocation(line: 7, column: 3, scope: !127) +// CHECK:STDOUT: !135 = !DILocation(line: 8, column: 9, scope: !127) +// CHECK:STDOUT: !139 = !DILocation(line: 9, column: 5, scope: !127) +// CHECK:STDOUT: !140 = !DILocation(line: 10, column: 5, scope: !127) +// CHECK:STDOUT: !144 = !DILocation(line: 11, column: 5, scope: !127) +// CHECK:STDOUT: !146 = !DILocation(line: 12, column: 8, scope: !127) +// CHECK:STDOUT: !147 = !DILocation(line: 13, column: 7, scope: !127) +// CHECK:STDOUT: !151 = !DILocation(line: 14, column: 7, scope: !127) +// CHECK:STDOUT: !152 = !DILocation(line: 15, column: 7, scope: !127) +// CHECK:STDOUT: !153 = !DILocation(line: 8, column: 3, scope: !127) +// CHECK:STDOUT: !156 = !DILocation(line: 18, column: 3, scope: !127) +// CHECK:STDOUT: !157 = !DILocation(line: 5, column: 1, scope: !127) +// CHECK:STDOUT: !158 = !{!128} +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !125, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !126, retainedNodes: !162) +// CHECK:STDOUT: !160 = !DILocalVariable(arg: 1, scope: !159, type: !34) +// CHECK:STDOUT: !161 = !DILocation(line: 13, column: 7, scope: !159) +// CHECK:STDOUT: !162 = !{!160} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'while_continue.carbon' @@ -494,50 +494,50 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: @Destructible.val.loc6_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWhileContinue.Main(i1 %cond) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWhileContinue.Main(i1 %cond) #0 !dbg !165 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !10 -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !13 -// CHECK:STDOUT: br label %while.cond, !dbg !14 +// CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !168 +// CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !178 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !185 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !168 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %a.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !168 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !172 +// CHECK:STDOUT: br label %while.cond, !dbg !173 // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %if.else, %if.then, %entry -// CHECK:STDOUT: br i1 %cond, label %while.body, label %while.done, !dbg !14 +// CHECK:STDOUT: br i1 %cond, label %while.body, label %while.done, !dbg !173 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !15 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !11 -// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !16 -// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !17 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !177 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !178 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %b.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !178 +// CHECK:STDOUT: call void @_CUse.Main(ptr %b.var), !dbg !182 +// CHECK:STDOUT: br i1 %cond, label %if.then, label %if.else, !dbg !184 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %while.body -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !12 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !12 -// CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !12 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: br label %while.cond, !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !185 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @Destructible.val.loc6_3, i64 0, i1 false), !dbg !185 +// CHECK:STDOUT: call void @_CUse.Main(ptr %c.var), !dbg !189 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %c.var), !dbg !185 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !178 +// CHECK:STDOUT: br label %while.cond, !dbg !190 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %while.body -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !11 -// CHECK:STDOUT: br label %while.cond, !dbg !20 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %b.var), !dbg !178 +// CHECK:STDOUT: br label %while.cond, !dbg !191 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !21 -// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: call void @_CUse.Main(ptr %a.var), !dbg !194 +// CHECK:STDOUT: call void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %a.var), !dbg !168 +// CHECK:STDOUT: ret void, !dbg !195 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CUse.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.474c886d55da95e6:core.Destroy.Core"(ptr %self) #0 !dbg !197 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -555,34 +555,34 @@ fn WhileContinue(cond: bool) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!164} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "while_continue.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "WhileContinue", linkageName: "_CWhileContinue.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !8) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null, !7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !{!9} -// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 10, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 13, column: 7, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 8, column: 9, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 5, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 12, column: 8, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 7, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 7, scope: !4) -// CHECK:STDOUT: !20 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !22 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 13, column: 7, scope: !23) +// CHECK:STDOUT: !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !35 = !{null, !34} +// CHECK:STDOUT: !36 = !DISubroutineType(types: !35) +// CHECK:STDOUT: !163 = !DIFile(filename: "while_continue.carbon", directory: "") +// CHECK:STDOUT: !164 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !163, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !165 = distinct !DISubprogram(name: "WhileContinue", linkageName: "_CWhileContinue.Main", scope: null, file: !163, line: 5, type: !36, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !196) +// CHECK:STDOUT: !166 = !DILocalVariable(arg: 1, scope: !165, type: !34) +// CHECK:STDOUT: !168 = !DILocation(line: 6, column: 3, scope: !165) +// CHECK:STDOUT: !172 = !DILocation(line: 7, column: 3, scope: !165) +// CHECK:STDOUT: !173 = !DILocation(line: 8, column: 9, scope: !165) +// CHECK:STDOUT: !177 = !DILocation(line: 9, column: 5, scope: !165) +// CHECK:STDOUT: !178 = !DILocation(line: 10, column: 5, scope: !165) +// CHECK:STDOUT: !182 = !DILocation(line: 11, column: 5, scope: !165) +// CHECK:STDOUT: !184 = !DILocation(line: 12, column: 8, scope: !165) +// CHECK:STDOUT: !185 = !DILocation(line: 13, column: 7, scope: !165) +// CHECK:STDOUT: !189 = !DILocation(line: 14, column: 7, scope: !165) +// CHECK:STDOUT: !190 = !DILocation(line: 15, column: 7, scope: !165) +// CHECK:STDOUT: !191 = !DILocation(line: 8, column: 3, scope: !165) +// CHECK:STDOUT: !194 = !DILocation(line: 18, column: 3, scope: !165) +// CHECK:STDOUT: !195 = !DILocation(line: 5, column: 1, scope: !165) +// CHECK:STDOUT: !196 = !{!166} +// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Op", linkageName: "_COp.474c886d55da95e6:core.Destroy.Core", scope: null, file: !163, line: 13, type: !36, spFlags: DISPFlagDefinition, unit: !164, retainedNodes: !200) +// CHECK:STDOUT: !198 = !DILocalVariable(arg: 1, scope: !197, type: !34) +// CHECK:STDOUT: !199 = !DILocation(line: 13, column: 7, scope: !197) +// CHECK:STDOUT: !200 = !{!198} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/export.carbon b/toolchain/lower/testdata/var/export.carbon index 243f545a7d0d..2028651da882 100644 --- a/toolchain/lower/testdata/var/export.carbon +++ b/toolchain/lower/testdata/var/export.carbon @@ -39,53 +39,53 @@ fn Run() -> i32 { // CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable // CHECK:STDOUT: define dso_local noundef i32 @_Z3Getv() #0 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %0 = load i32, ptr @_Cx.Main, align 4, !tbaa !12 +// CHECK:STDOUT: %0 = load i32, ptr @_Cx.Main, align 4, !tbaa !3 // CHECK:STDOUT: ret i32 %0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #1 !dbg !13 { +// CHECK:STDOUT: define i32 @main() #1 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Get.call = call i32 @_Z3Getv(), !dbg !17 -// CHECK:STDOUT: ret i32 %Get.call, !dbg !18 +// CHECK:STDOUT: %Get.call = call i32 @_Z3Getv(), !dbg !30 +// CHECK:STDOUT: ret i32 %Get.call, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !19 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #1 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 poison, ptr @_Cx.Main, align 4, !dbg !22 -// CHECK:STDOUT: ret void, !dbg !23 +// CHECK:STDOUT: store i32 poison, ptr @_Cx.Main, align 4, !dbg !35 +// CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } // CHECK:STDOUT: attributes #1 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} -// CHECK:STDOUT: !llvm.module.flags = !{!2, !3, !4, !5, !6} -// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: !llvm.dbg.cu = !{!23} +// CHECK:STDOUT: !llvm.module.flags = !{!37, !38, !39, !6, !7} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!41} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_export.carbon", directory: "") -// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} -// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} -// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} -// CHECK:STDOUT: !5 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !6 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !7 = !{!8, !9, i64 0} -// CHECK:STDOUT: !8 = !{!"__libc_errno", !9, i64 0} -// CHECK:STDOUT: !9 = !{!"int", !10, i64 0} -// CHECK:STDOUT: !10 = !{!"omnipotent char", !11, i64 0} -// CHECK:STDOUT: !11 = !{!"Simple C++ TBAA"} -// CHECK:STDOUT: !12 = !{!9, !9, i64 0} -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DISubroutineType(types: !15) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !17 = !DILocation(line: 14, column: 10, scope: !13) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !20, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !20 = !DISubroutineType(types: !21) -// CHECK:STDOUT: !21 = !{null} -// CHECK:STDOUT: !22 = !DILocation(line: 5, column: 1, scope: !19) -// CHECK:STDOUT: !23 = !DILocation(line: 0, scope: !19) +// CHECK:STDOUT: !0 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !1 = !{!"omnipotent char", !0, i64 0} +// CHECK:STDOUT: !2 = !{!"int", !1, i64 0} +// CHECK:STDOUT: !3 = !{!2, !2, i64 0} +// CHECK:STDOUT: !6 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !7 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !22 = !DIFile(filename: "var_export.carbon", directory: "") +// CHECK:STDOUT: !23 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !22, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !25 = !{!24} +// CHECK:STDOUT: !26 = !DISubroutineType(types: !25) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !22, line: 13, type: !26, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 14, column: 10, scope: !27) +// CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !27) +// CHECK:STDOUT: !32 = !{null} +// CHECK:STDOUT: !33 = !DISubroutineType(types: !32) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !22, type: !33, spFlags: DISPFlagDefinition, unit: !23) +// CHECK:STDOUT: !35 = !DILocation(line: 5, column: 1, scope: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 0, scope: !34) +// CHECK:STDOUT: !37 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !38 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !39 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !40 = !{!"__libc_errno", !2, i64 0} +// CHECK:STDOUT: !41 = !{!40, !2, i64 0} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/global.carbon b/toolchain/lower/testdata/var/global.carbon index 65a136522a6d..ef8835db5839 100644 --- a/toolchain/lower/testdata/var/global.carbon +++ b/toolchain/lower/testdata/var/global.carbon @@ -58,37 +58,37 @@ var a: i32 = 1; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CGetA.Main() #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CGetA.Main() #0 !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_Ca.Main, !dbg !8 +// CHECK:STDOUT: ret ptr @_Ca.Main, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !9 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 1, ptr @_Ca.Main, align 4, !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: store i32 1, ptr @_Ca.Main, align 4, !dbg !31 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "GetA", linkageName: "_CGetA.Main", scope: null, file: !1, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 21, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !10, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DISubroutineType(types: !11) -// CHECK:STDOUT: !11 = !{null} -// CHECK:STDOUT: !12 = !DILocation(line: 4, column: 1, scope: !9) -// CHECK:STDOUT: !13 = !DILocation(line: 0, scope: !9) +// CHECK:STDOUT: !18 = !DIFile(filename: "simple.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "GetA", linkageName: "_CGetA.Main", scope: null, file: !18, line: 5, type: !23, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !27 = !DILocation(line: 5, column: 21, scope: !24) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !29, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !31 = !DILocation(line: 4, column: 1, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 0, scope: !30) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'var_in_tuple.carbon' @@ -99,47 +99,47 @@ var a: i32 = 1; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CGetB.Main() #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CGetB.Main() #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_Cb.Main, !dbg !8 +// CHECK:STDOUT: ret ptr @_Cb.Main, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CGetC.Main() #0 !dbg !9 { +// CHECK:STDOUT: define ptr @_CGetC.Main() #0 !dbg !39 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_Cc.Main, !dbg !10 +// CHECK:STDOUT: ret ptr @_Cc.Main, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !11 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 2, ptr @_Cb.Main, align 4, !dbg !14 -// CHECK:STDOUT: store i32 3, ptr @_Cc.Main, align 4, !dbg !15 -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: store i32 2, ptr @_Cb.Main, align 4, !dbg !44 +// CHECK:STDOUT: store i32 3, ptr @_Cc.Main, align 4, !dbg !45 +// CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!34} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "var_in_tuple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "GetB", linkageName: "_CGetB.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 21, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 21, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 6, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 18, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 0, scope: !11) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !33 = !DIFile(filename: "var_in_tuple.carbon", directory: "") +// CHECK:STDOUT: !34 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !33, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "GetB", linkageName: "_CGetB.Main", scope: null, file: !33, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 21, scope: !35) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.Main", scope: null, file: !33, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !42 = !DILocation(line: 7, column: 21, scope: !39) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !33, type: !29, spFlags: DISPFlagDefinition, unit: !34) +// CHECK:STDOUT: !44 = !DILocation(line: 4, column: 6, scope: !43) +// CHECK:STDOUT: !45 = !DILocation(line: 4, column: 18, scope: !43) +// CHECK:STDOUT: !46 = !DILocation(line: 0, scope: !43) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'tuple_in_var.carbon' @@ -150,22 +150,22 @@ var a: i32 = 1; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CGetD.Main() #0 !dbg !4 { +// CHECK:STDOUT: define ptr @_CGetD.Main() #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr @_Cd.Main, !dbg !8 +// CHECK:STDOUT: ret ptr @_Cd.Main, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define ptr @_CGetE.Main() #0 !dbg !9 { +// CHECK:STDOUT: define ptr @_CGetE.Main() #0 !dbg !53 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret ptr getelementptr inbounds nuw ({ i32, i32 }, ptr @_Cd.Main, i32 0, i32 1), !dbg !10 +// CHECK:STDOUT: ret ptr getelementptr inbounds nuw ({ i32, i32 }, ptr @_Cd.Main, i32 0, i32 1), !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !11 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cd.Main, ptr align 4 @tuple.8a1.loc4_1, i64 8, i1 false), !dbg !14 -// CHECK:STDOUT: ret void, !dbg !15 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cd.Main, ptr align 4 @tuple.8a1.loc4_1, i64 8, i1 false), !dbg !58 +// CHECK:STDOUT: ret void, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -177,25 +177,25 @@ var a: i32 = 1; // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!48} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "tuple_in_var.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "GetD", linkageName: "_CGetD.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 21, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "GetE", linkageName: "_CGetE.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 21, scope: !9) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !12, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null} -// CHECK:STDOUT: !14 = !DILocation(line: 4, column: 1, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 0, scope: !11) +// CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !22 = !{!21} +// CHECK:STDOUT: !23 = !DISubroutineType(types: !22) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !47 = !DIFile(filename: "tuple_in_var.carbon", directory: "") +// CHECK:STDOUT: !48 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !47, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "GetD", linkageName: "_CGetD.Main", scope: null, file: !47, line: 6, type: !23, spFlags: DISPFlagDefinition, unit: !48) +// CHECK:STDOUT: !52 = !DILocation(line: 6, column: 21, scope: !49) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "GetE", linkageName: "_CGetE.Main", scope: null, file: !47, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !48) +// CHECK:STDOUT: !56 = !DILocation(line: 7, column: 21, scope: !53) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !47, type: !29, spFlags: DISPFlagDefinition, unit: !48) +// CHECK:STDOUT: !58 = !DILocation(line: 4, column: 1, scope: !57) +// CHECK:STDOUT: !59 = !DILocation(line: 0, scope: !57) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'unnamed.carbon' @@ -208,11 +208,11 @@ var a: i32 = 1; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cx.Main, ptr align 4 @tuple.102.loc4_1, i64 8, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @var.anon.var_patt.loc5, ptr align 4 @tuple.e16.loc5_1, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cx.Main, ptr align 4 @tuple.102.loc4_1, i64 8, i1 false), !dbg !63 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @var.anon.var_patt.loc5, ptr align 4 @tuple.e16.loc5_1, i64 8, i1 false), !dbg !65 +// CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -224,19 +224,19 @@ var a: i32 = 1; // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!61} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "unnamed.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !60 = !DIFile(filename: "unnamed.carbon", directory: "") +// CHECK:STDOUT: !61 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !60, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !60, type: !29, spFlags: DISPFlagDefinition, unit: !61) +// CHECK:STDOUT: !63 = !DILocation(line: 4, column: 1, scope: !62) +// CHECK:STDOUT: !65 = !DILocation(line: 5, column: 1, scope: !62) +// CHECK:STDOUT: !66 = !DILocation(line: 0, scope: !62) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'not_main_package.carbon' @@ -246,24 +246,24 @@ var a: i32 = 1; // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Other, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Other() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Other() #0 !dbg !69 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 1, ptr @_Ca.Other, align 4, !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: store i32 1, ptr @_Ca.Other, align 4, !dbg !70 +// CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!68} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "not_main_package.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Other", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !28 = !{null} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !67 = !DIFile(filename: "not_main_package.carbon", directory: "") +// CHECK:STDOUT: !68 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !67, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Other", scope: null, file: !67, type: !29, spFlags: DISPFlagDefinition, unit: !68) +// CHECK:STDOUT: !70 = !DILocation(line: 4, column: 1, scope: !69) +// CHECK:STDOUT: !71 = !DILocation(line: 0, scope: !69) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/import.carbon b/toolchain/lower/testdata/var/import.carbon index 58c24f5c5094..5f95d768739e 100644 --- a/toolchain/lower/testdata/var/import.carbon +++ b/toolchain/lower/testdata/var/import.carbon @@ -56,26 +56,26 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: store i32 42, ptr @_Cv.Main, align 4, !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: store i32 42, ptr @_Cv.Main, align 4, !dbg !24 +// CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !18 = !DIFile(filename: "simple.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !18, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !24 = !DILocation(line: 4, column: 1, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 0, scope: !23) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_simple.carbon' @@ -84,27 +84,27 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: @_Cv.Main = external global i32 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7 = load i32, ptr @_Cv.Main, align 4, !dbg !8 -// CHECK:STDOUT: ret i32 %.loc7, !dbg !9 +// CHECK:STDOUT: %.loc7 = load i32, ptr @_Cv.Main, align 4, !dbg !33 +// CHECK:STDOUT: ret i32 %.loc7, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!27} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_simple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !26 = !DIFile(filename: "import_simple.carbon", directory: "") +// CHECK:STDOUT: !27 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !26, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !28 = !{!20} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !26, line: 6, type: !29, spFlags: DISPFlagDefinition, unit: !27) +// CHECK:STDOUT: !33 = !DILocation(line: 7, column: 10, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 7, column: 3, scope: !30) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'tuple_pattern.carbon' @@ -118,12 +118,12 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { +// CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !37 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cv.Main, ptr align 4 @tuple.102.loc4_1, i64 8, i1 false), !dbg !7 -// CHECK:STDOUT: store i32 4, ptr @_Cy.Main, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cz.Main, ptr align 4 @tuple.54c.loc8_1, i64 8, i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cv.Main, ptr align 4 @tuple.102.loc4_1, i64 8, i1 false), !dbg !38 +// CHECK:STDOUT: store i32 4, ptr @_Cy.Main, align 4, !dbg !39 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cz.Main, ptr align 4 @tuple.54c.loc8_1, i64 8, i1 false), !dbg !40 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -135,20 +135,20 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!36} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "tuple_pattern.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !1, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 14, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 8, column: 1, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 0, scope: !4) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !35 = !DIFile(filename: "tuple_pattern.carbon", directory: "") +// CHECK:STDOUT: !36 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !35, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "__global_init", linkageName: "_C__global_init.Main", scope: null, file: !35, type: !22, spFlags: DISPFlagDefinition, unit: !36) +// CHECK:STDOUT: !38 = !DILocation(line: 4, column: 1, scope: !37) +// CHECK:STDOUT: !39 = !DILocation(line: 6, column: 14, scope: !37) +// CHECK:STDOUT: !40 = !DILocation(line: 8, column: 1, scope: !37) +// CHECK:STDOUT: !41 = !DILocation(line: 0, scope: !37) // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'import_tuple_pattern.carbon' @@ -159,31 +159,31 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: @_Cz.Main = external global { i32, i32 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CV.Main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @_CV.Main() #0 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc6_24 = load i32, ptr @_Cv.Main, align 4, !dbg !8 -// CHECK:STDOUT: ret i32 %.loc6_24, !dbg !9 +// CHECK:STDOUT: %.loc6_24 = load i32, ptr @_Cv.Main, align 4, !dbg !47 +// CHECK:STDOUT: ret i32 %.loc6_24, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CW.Main() #0 !dbg !10 { +// CHECK:STDOUT: define i32 @_CW.Main() #0 !dbg !49 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc7_24 = load i32, ptr getelementptr inbounds nuw ({ i32, i32 }, ptr @_Cv.Main, i32 0, i32 1), align 4, !dbg !11 -// CHECK:STDOUT: ret i32 %.loc7_24, !dbg !12 +// CHECK:STDOUT: %.loc7_24 = load i32, ptr getelementptr inbounds nuw ({ i32, i32 }, ptr @_Cv.Main, i32 0, i32 1), align 4, !dbg !52 +// CHECK:STDOUT: ret i32 %.loc7_24, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CY.Main() #0 !dbg !13 { +// CHECK:STDOUT: define i32 @_CY.Main() #0 !dbg !54 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc9_24 = load i32, ptr @_Cy.Main, align 4, !dbg !14 -// CHECK:STDOUT: ret i32 %.loc9_24, !dbg !15 +// CHECK:STDOUT: %.loc9_24 = load i32, ptr @_Cy.Main, align 4, !dbg !57 +// CHECK:STDOUT: ret i32 %.loc9_24, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @_CZ.Main() #0 !dbg !16 { +// CHECK:STDOUT: define i32 @_CZ.Main() #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc10_24 = load i32, ptr getelementptr inbounds nuw ({ i32, i32 }, ptr @_Cz.Main, i32 0, i32 1), align 4, !dbg !17 -// CHECK:STDOUT: ret i32 %.loc10_24, !dbg !18 +// CHECK:STDOUT: %.loc10_24 = load i32, ptr getelementptr inbounds nuw ({ i32, i32 }, ptr @_Cz.Main, i32 0, i32 1), align 4, !dbg !62 +// CHECK:STDOUT: ret i32 %.loc10_24, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives @@ -191,26 +191,26 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!43} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "import_tuple_pattern.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "V", linkageName: "_CV.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 6, column: 24, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 6, column: 17, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "W", linkageName: "_CW.Main", scope: null, file: !1, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 24, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 17, scope: !10) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Y", linkageName: "_CY.Main", scope: null, file: !1, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !14 = !DILocation(line: 9, column: 24, scope: !13) -// CHECK:STDOUT: !15 = !DILocation(line: 9, column: 17, scope: !13) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Z", linkageName: "_CZ.Main", scope: null, file: !1, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !17 = !DILocation(line: 10, column: 24, scope: !16) -// CHECK:STDOUT: !18 = !DILocation(line: 10, column: 17, scope: !16) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !28 = !{!20} +// CHECK:STDOUT: !29 = !DISubroutineType(types: !28) +// CHECK:STDOUT: !42 = !DIFile(filename: "import_tuple_pattern.carbon", directory: "") +// CHECK:STDOUT: !43 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !42, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "V", linkageName: "_CV.Main", scope: null, file: !42, line: 6, type: !29, spFlags: DISPFlagDefinition, unit: !43) +// CHECK:STDOUT: !47 = !DILocation(line: 6, column: 24, scope: !44) +// CHECK:STDOUT: !48 = !DILocation(line: 6, column: 17, scope: !44) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "W", linkageName: "_CW.Main", scope: null, file: !42, line: 7, type: !29, spFlags: DISPFlagDefinition, unit: !43) +// CHECK:STDOUT: !52 = !DILocation(line: 7, column: 24, scope: !49) +// CHECK:STDOUT: !53 = !DILocation(line: 7, column: 17, scope: !49) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Y", linkageName: "_CY.Main", scope: null, file: !42, line: 9, type: !29, spFlags: DISPFlagDefinition, unit: !43) +// CHECK:STDOUT: !57 = !DILocation(line: 9, column: 24, scope: !54) +// CHECK:STDOUT: !58 = !DILocation(line: 9, column: 17, scope: !54) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Z", linkageName: "_CZ.Main", scope: null, file: !42, line: 10, type: !29, spFlags: DISPFlagDefinition, unit: !43) +// CHECK:STDOUT: !62 = !DILocation(line: 10, column: 24, scope: !59) +// CHECK:STDOUT: !63 = !DILocation(line: 10, column: 17, scope: !59) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/local.carbon b/toolchain/lower/testdata/var/local.carbon index 9835bf81891b..044ff71b2687 100644 --- a/toolchain/lower/testdata/var/local.carbon +++ b/toolchain/lower/testdata/var/local.carbon @@ -35,20 +35,20 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: source_filename = "simple.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 -// CHECK:STDOUT: store i32 1, ptr %x.var, align 4, !dbg !8 -// CHECK:STDOUT: %.loc6 = load i32, ptr %x.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc6, !dbg !10 +// CHECK:STDOUT: %x.var = alloca i32, align 4, !dbg !28 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !28 +// CHECK:STDOUT: store i32 1, ptr %x.var, align 4, !dbg !28 +// CHECK:STDOUT: %.loc6 = load i32, ptr %x.var, align 4, !dbg !30 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %x.var), !dbg !28 +// CHECK:STDOUT: ret i32 %.loc6, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -57,26 +57,26 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "simple.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 6, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !7} -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) -// CHECK:STDOUT: !16 = !DILocation(line: 5, column: 3, scope: !11) +// CHECK:STDOUT: !18 = !DIFile(filename: "simple.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 4, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !28 = !DILocation(line: 5, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 6, column: 10, scope: !25) +// CHECK:STDOUT: !31 = !DILocation(line: 6, column: 3, scope: !25) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !20) +// CHECK:STDOUT: !34 = !DILocation(line: 5, column: 3, scope: !32) +// CHECK:STDOUT: !35 = !{!33} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'eval_init_in_place.carbon' @@ -85,47 +85,47 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: @tuple.479.loc4_50 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !4 { +// CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.479.loc4_50, i64 12, i1 false), !dbg !9 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !46 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !46 +// CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !46 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.479.loc4_50, i64 12, i1 false), !dbg !47 +// CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !10 { +// CHECK:STDOUT: define void @_CG.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !48 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.479.loc4_50, i64 12, i1 false), !dbg !11 -// CHECK:STDOUT: %tuple.elem0.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc8_10.1 = load i32, ptr %tuple.elem0.loc8_10.1.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: %tuple.elem0.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: store i32 %.loc8_10.1, ptr %tuple.elem0.loc8_10.2.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: %tuple.elem1.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !12 -// CHECK:STDOUT: %.loc8_10.3 = load i32, ptr %tuple.elem1.loc8_10.1.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: %tuple.elem1.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !12 -// CHECK:STDOUT: store i32 %.loc8_10.3, ptr %tuple.elem1.loc8_10.2.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: %tuple.elem2.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !12 -// CHECK:STDOUT: %.loc8_10.5 = load i32, ptr %tuple.elem2.loc8_10.1.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: %tuple.elem2.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !12 -// CHECK:STDOUT: store i32 %.loc8_10.5, ptr %tuple.elem2.loc8_10.2.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !51 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !51 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.479.loc4_50, i64 12, i1 false), !dbg !51 +// CHECK:STDOUT: %tuple.elem0.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !53 +// CHECK:STDOUT: %.loc8_10.1 = load i32, ptr %tuple.elem0.loc8_10.1.tuple.elem, align 4, !dbg !53 +// CHECK:STDOUT: %tuple.elem0.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !53 +// CHECK:STDOUT: store i32 %.loc8_10.1, ptr %tuple.elem0.loc8_10.2.tuple.elem, align 4, !dbg !53 +// CHECK:STDOUT: %tuple.elem1.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !53 +// CHECK:STDOUT: %.loc8_10.3 = load i32, ptr %tuple.elem1.loc8_10.1.tuple.elem, align 4, !dbg !53 +// CHECK:STDOUT: %tuple.elem1.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !53 +// CHECK:STDOUT: store i32 %.loc8_10.3, ptr %tuple.elem1.loc8_10.2.tuple.elem, align 4, !dbg !53 +// CHECK:STDOUT: %tuple.elem2.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !53 +// CHECK:STDOUT: %.loc8_10.5 = load i32, ptr %tuple.elem2.loc8_10.1.tuple.elem, align 4, !dbg !53 +// CHECK:STDOUT: %tuple.elem2.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !53 +// CHECK:STDOUT: store i32 %.loc8_10.5, ptr %tuple.elem2.loc8_10.2.tuple.elem, align 4, !dbg !53 +// CHECK:STDOUT: call void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %a.var), !dbg !51 +// CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !20 +// CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.891f32d238880255:core.Destroy.Core"(ptr %self) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -140,34 +140,34 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!37} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "eval_init_in_place.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !1, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !8 = !DILocation(line: 4, column: 41, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 4, column: 34, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 3, scope: !10) -// CHECK:STDOUT: !12 = !DILocation(line: 8, column: 10, scope: !10) -// CHECK:STDOUT: !13 = !DILocation(line: 8, column: 3, scope: !10) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) -// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) -// CHECK:STDOUT: !16 = !{null, !17} -// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !18 = !{!19} -// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !1, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) -// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) -// CHECK:STDOUT: !23 = !{null, !7} -// CHECK:STDOUT: !24 = !{!25} -// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) -// CHECK:STDOUT: !26 = !DILocation(line: 7, column: 3, scope: !21) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !36 = !DIFile(filename: "eval_init_in_place.carbon", directory: "") +// CHECK:STDOUT: !37 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !36, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !38 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !39 = !{!38} +// CHECK:STDOUT: !40 = !DISubroutineType(types: !39) +// CHECK:STDOUT: !41 = !{null, !38} +// CHECK:STDOUT: !42 = !DISubroutineType(types: !41) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !36, line: 4, type: !40, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !46 = !DILocation(line: 4, column: 41, scope: !43) +// CHECK:STDOUT: !47 = !DILocation(line: 4, column: 34, scope: !43) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !36, line: 6, type: !40, spFlags: DISPFlagDefinition, unit: !37) +// CHECK:STDOUT: !51 = !DILocation(line: 7, column: 3, scope: !48) +// CHECK:STDOUT: !53 = !DILocation(line: 8, column: 10, scope: !48) +// CHECK:STDOUT: !54 = !DILocation(line: 8, column: 3, scope: !48) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !36, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !58) +// CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !55, type: !20) +// CHECK:STDOUT: !57 = !DILocation(line: 7, column: 3, scope: !55) +// CHECK:STDOUT: !58 = !{!56} +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Op", linkageName: "_COp.891f32d238880255:core.Destroy.Core", scope: null, file: !36, line: 7, type: !42, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !62) +// CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !59, type: !38) +// CHECK:STDOUT: !61 = !DILocation(line: 7, column: 3, scope: !59) +// CHECK:STDOUT: !62 = !{!60} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/nested.carbon b/toolchain/lower/testdata/var/nested.carbon index 216ae1d454cd..0173cd964dfc 100644 --- a/toolchain/lower/testdata/var/nested.carbon +++ b/toolchain/lower/testdata/var/nested.carbon @@ -24,36 +24,36 @@ fn Run() -> i32 { // CHECK:STDOUT: source_filename = "nested.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !25 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %b.var = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !8 -// CHECK:STDOUT: store i32 1, ptr %a.var, align 4, !dbg !8 -// CHECK:STDOUT: br label %while.cond, !dbg !10 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !28 +// CHECK:STDOUT: %b.var = alloca i32, align 4, !dbg !31 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !28 +// CHECK:STDOUT: store i32 1, ptr %a.var, align 4, !dbg !28 +// CHECK:STDOUT: br label %while.cond, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %while.body, %entry -// CHECK:STDOUT: br i1 true, label %while.body, label %while.done, !dbg !10 +// CHECK:STDOUT: br i1 true, label %while.body, label %while.done, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !9 -// CHECK:STDOUT: %.loc16 = load i32, ptr %a.var, align 4, !dbg !11 -// CHECK:STDOUT: store i32 %.loc16, ptr %b.var, align 4, !dbg !9 -// CHECK:STDOUT: %.loc17 = load i32, ptr %b.var, align 4, !dbg !12 -// CHECK:STDOUT: store i32 %.loc17, ptr %a.var, align 4, !dbg !13 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %b.var), !dbg !9 -// CHECK:STDOUT: br label %while.cond, !dbg !14 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !31 +// CHECK:STDOUT: %.loc16 = load i32, ptr %a.var, align 4, !dbg !32 +// CHECK:STDOUT: store i32 %.loc16, ptr %b.var, align 4, !dbg !31 +// CHECK:STDOUT: %.loc17 = load i32, ptr %b.var, align 4, !dbg !35 +// CHECK:STDOUT: store i32 %.loc17, ptr %a.var, align 4, !dbg !34 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %b.var), !dbg !31 +// CHECK:STDOUT: br label %while.cond, !dbg !36 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: %.loc19 = load i32, ptr %a.var, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !8 -// CHECK:STDOUT: ret i32 %.loc19, !dbg !16 +// CHECK:STDOUT: %.loc19 = load i32, ptr %a.var, align 4, !dbg !37 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !28 +// CHECK:STDOUT: ret i32 %.loc19, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -66,30 +66,30 @@ fn Run() -> i32 { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!19} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "nested.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 5, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 9, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 16, column: 18, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 9, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 19, column: 10, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !20) -// CHECK:STDOUT: !18 = !DISubroutineType(types: !19) -// CHECK:STDOUT: !19 = !{null, !7} -// CHECK:STDOUT: !20 = !{!21} -// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !7) -// CHECK:STDOUT: !22 = !DILocation(line: 16, column: 5, scope: !17) +// CHECK:STDOUT: !18 = !DIFile(filename: "nested.carbon", directory: "") +// CHECK:STDOUT: !19 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !18, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !20 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !21 = !{!20} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = !{null, !20} +// CHECK:STDOUT: !24 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !18, line: 13, type: !22, spFlags: DISPFlagDefinition, unit: !19) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !25) +// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 9, scope: !25) +// CHECK:STDOUT: !31 = !DILocation(line: 16, column: 5, scope: !25) +// CHECK:STDOUT: !32 = !DILocation(line: 16, column: 18, scope: !25) +// CHECK:STDOUT: !34 = !DILocation(line: 17, column: 5, scope: !25) +// CHECK:STDOUT: !35 = !DILocation(line: 17, column: 9, scope: !25) +// CHECK:STDOUT: !36 = !DILocation(line: 15, column: 3, scope: !25) +// CHECK:STDOUT: !37 = !DILocation(line: 19, column: 10, scope: !25) +// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 3, scope: !25) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !18, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !19, retainedNodes: !42) +// CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !39, type: !20) +// CHECK:STDOUT: !41 = !DILocation(line: 16, column: 5, scope: !39) +// CHECK:STDOUT: !42 = !{!40} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/param.carbon b/toolchain/lower/testdata/var/param.carbon index 8f557c587216..348ab37e595b 100644 --- a/toolchain/lower/testdata/var/param.carbon +++ b/toolchain/lower/testdata/var/param.carbon @@ -57,20 +57,20 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !7 -// CHECK:STDOUT: call void @_CMake.C.Main(ptr %c.var), !dbg !8 -// CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !16 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !16 +// CHECK:STDOUT: call void @_CMake.C.Main(ptr %c.var), !dbg !17 +// CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !18 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !16 +// CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -79,27 +79,27 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!7} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "with_cleanup.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 13, column: 6, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 16, column: 5, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) -// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) -// CHECK:STDOUT: !13 = !{null, !14} -// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !15 = !{!16} -// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 13, column: 6, scope: !11) +// CHECK:STDOUT: !6 = !DIFile(filename: "with_cleanup.carbon", directory: "") +// CHECK:STDOUT: !7 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !9 = !{null, !8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !13 = !{null} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !6, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !7) +// CHECK:STDOUT: !16 = !DILocation(line: 13, column: 6, scope: !15) +// CHECK:STDOUT: !17 = !DILocation(line: 16, column: 5, scope: !15) +// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !15) +// CHECK:STDOUT: !19 = !DILocation(line: 15, column: 1, scope: !15) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !6, line: 13, type: !10, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) +// CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !20, type: !8) +// CHECK:STDOUT: !22 = !DILocation(line: 13, column: 6, scope: !20) +// CHECK:STDOUT: !23 = !{!21} // CHECK:STDOUT: // CHECK:STDOUT: ; --- // CHECK:STDOUT: ; ModuleID = 'struct_literal_cleanup.carbon' @@ -112,20 +112,20 @@ fn G() { // CHECK:STDOUT: declare void @_CF.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CG.Main() #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc11, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !9 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !27 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !27 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc11, i64 0, i1 false), !dbg !27 +// CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !28 +// CHECK:STDOUT: call void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %c.var), !dbg !27 +// CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.cbd14a388b4a1c25:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -137,24 +137,24 @@ fn G() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!25} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "struct_literal_cleanup.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 11, column: 6, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !1, line: 11, type: !11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !14) -// CHECK:STDOUT: !11 = !DISubroutineType(types: !12) -// CHECK:STDOUT: !12 = !{null, !13} -// CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !14 = !{!15} -// CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !10, type: !13) -// CHECK:STDOUT: !16 = !DILocation(line: 11, column: 6, scope: !10) +// CHECK:STDOUT: !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !9 = !{null, !8} +// CHECK:STDOUT: !10 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !13 = !{null} +// CHECK:STDOUT: !14 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !24 = !DIFile(filename: "struct_literal_cleanup.carbon", directory: "") +// CHECK:STDOUT: !25 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !24, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main", scope: null, file: !24, line: 13, type: !14, spFlags: DISPFlagDefinition, unit: !25) +// CHECK:STDOUT: !27 = !DILocation(line: 11, column: 6, scope: !26) +// CHECK:STDOUT: !28 = !DILocation(line: 14, column: 3, scope: !26) +// CHECK:STDOUT: !29 = !DILocation(line: 13, column: 1, scope: !26) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbd14a388b4a1c25:core.Destroy.Core", scope: null, file: !24, line: 11, type: !10, spFlags: DISPFlagDefinition, unit: !25, retainedNodes: !33) +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !30, type: !8) +// CHECK:STDOUT: !32 = !DILocation(line: 11, column: 6, scope: !30) +// CHECK:STDOUT: !33 = !{!31} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/uninitialized.carbon b/toolchain/lower/testdata/var/uninitialized.carbon index 7650e3b3fede..f3acfec74c02 100644 --- a/toolchain/lower/testdata/var/uninitialized.carbon +++ b/toolchain/lower/testdata/var/uninitialized.carbon @@ -24,39 +24,39 @@ fn Run() { // CHECK:STDOUT: source_filename = "uninitialized.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @main() #0 !dbg !4 { +// CHECK:STDOUT: define i32 @main() #0 !dbg !14 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %b.var = alloca double, align 8, !dbg !9 -// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !10 -// CHECK:STDOUT: %d.var = alloca {}, align 1, !dbg !11 -// CHECK:STDOUT: %e.var = alloca i1, align 1, !dbg !12 -// CHECK:STDOUT: %f.var = alloca ptr, align 8, !dbg !13 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !8 -// CHECK:STDOUT: store i32 poison, ptr %a.var, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !9 -// CHECK:STDOUT: store double poison, ptr %b.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !10 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %e.var), !dbg !12 -// CHECK:STDOUT: store i8 poison, ptr %e.var, align 1, !dbg !12 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %f.var), !dbg !13 -// CHECK:STDOUT: store ptr poison, ptr %f.var, align 8, !dbg !13 -// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %b.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !8 -// CHECK:STDOUT: ret i32 0, !dbg !14 +// CHECK:STDOUT: %a.var = alloca i32, align 4, !dbg !15 +// CHECK:STDOUT: %b.var = alloca double, align 8, !dbg !17 +// CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !19 +// CHECK:STDOUT: %d.var = alloca {}, align 1, !dbg !21 +// CHECK:STDOUT: %e.var = alloca i1, align 1, !dbg !23 +// CHECK:STDOUT: %f.var = alloca ptr, align 8, !dbg !25 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !15 +// CHECK:STDOUT: store i32 poison, ptr %a.var, align 4, !dbg !15 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !17 +// CHECK:STDOUT: store double poison, ptr %b.var, align 8, !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %d.var), !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %e.var), !dbg !23 +// CHECK:STDOUT: store i8 poison, ptr %e.var, align 1, !dbg !23 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %f.var), !dbg !25 +// CHECK:STDOUT: store ptr poison, ptr %f.var, align 8, !dbg !25 +// CHECK:STDOUT: call void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %b.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %a.var), !dbg !15 +// CHECK:STDOUT: ret i32 0, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.a1ae3d31ab69a7f8:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.70db2d92ffddbef7:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: ret void, !dbg !27 +// CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -68,35 +68,35 @@ fn Run() { // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "uninitialized.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !1, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{!7} -// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !1, line: 15, type: !16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) -// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) -// CHECK:STDOUT: !17 = !{null, !18} -// CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) -// CHECK:STDOUT: !19 = !{!20} -// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 15, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !1, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) -// CHECK:STDOUT: !23 = !DISubroutineType(types: !24) -// CHECK:STDOUT: !24 = !{null, !7} -// CHECK:STDOUT: !25 = !{!26} -// CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !22, type: !7) -// CHECK:STDOUT: !27 = !DILocation(line: 14, column: 3, scope: !22) +// CHECK:STDOUT: !4 = !DIFile(filename: "uninitialized.carbon", directory: "") +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !4, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !7 = !{!6} +// CHECK:STDOUT: !8 = !DISubroutineType(types: !7) +// CHECK:STDOUT: !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !10 = !{null, !9} +// CHECK:STDOUT: !11 = !DISubroutineType(types: !10) +// CHECK:STDOUT: !12 = !{null, !6} +// CHECK:STDOUT: !13 = !DISubroutineType(types: !12) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !4, line: 13, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !15 = !DILocation(line: 14, column: 3, scope: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 15, column: 3, scope: !14) +// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !14) +// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 3, scope: !14) +// CHECK:STDOUT: !23 = !DILocation(line: 18, column: 3, scope: !14) +// CHECK:STDOUT: !25 = !DILocation(line: 19, column: 3, scope: !14) +// CHECK:STDOUT: !27 = !DILocation(line: 13, column: 1, scope: !14) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1ae3d31ab69a7f8:core.Destroy.Core", scope: null, file: !4, line: 15, type: !11, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !28, type: !9) +// CHECK:STDOUT: !30 = !DILocation(line: 15, column: 3, scope: !28) +// CHECK:STDOUT: !31 = !{!29} +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70db2d92ffddbef7:core.Destroy.Core", scope: null, file: !4, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !32, type: !6) +// CHECK:STDOUT: !34 = !DILocation(line: 14, column: 3, scope: !32) +// CHECK:STDOUT: !35 = !{!33} // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/while/break_continue.carbon b/toolchain/lower/testdata/while/break_continue.carbon index 8bf96e4c0eb4..3bd7119ddcb1 100644 --- a/toolchain/lower/testdata/while/break_continue.carbon +++ b/toolchain/lower/testdata/while/break_continue.carbon @@ -32,33 +32,33 @@ fn While() { // CHECK:STDOUT: declare i1 @_CC.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: br label %while.cond // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %entry, %if.else.loc20, %if.then.loc19 -// CHECK:STDOUT: %A.call = call i1 @_CA.Main(), !dbg !7 -// CHECK:STDOUT: br i1 %A.call, label %while.body, label %while.done, !dbg !8 +// CHECK:STDOUT: %A.call = call i1 @_CA.Main(), !dbg !25 +// CHECK:STDOUT: br i1 %A.call, label %while.body, label %while.done, !dbg !24 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: %B.call = call i1 @_CB.Main(), !dbg !9 -// CHECK:STDOUT: br i1 %B.call, label %if.then.loc19, label %if.else.loc19, !dbg !10 +// CHECK:STDOUT: %B.call = call i1 @_CB.Main(), !dbg !26 +// CHECK:STDOUT: br i1 %B.call, label %if.then.loc19, label %if.else.loc19, !dbg !27 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc19: ; preds = %while.body -// CHECK:STDOUT: br label %while.cond, !dbg !11 +// CHECK:STDOUT: br label %while.cond, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc19: ; preds = %while.body -// CHECK:STDOUT: %C.call = call i1 @_CC.Main(), !dbg !12 -// CHECK:STDOUT: br i1 %C.call, label %if.then.loc20, label %if.else.loc20, !dbg !13 +// CHECK:STDOUT: %C.call = call i1 @_CC.Main(), !dbg !29 +// CHECK:STDOUT: br i1 %C.call, label %if.then.loc20, label %if.else.loc20, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc20: ; preds = %if.else.loc19 -// CHECK:STDOUT: br label %while.done, !dbg !14 +// CHECK:STDOUT: br label %while.done, !dbg !31 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc20: ; preds = %if.else.loc19 -// CHECK:STDOUT: br label %while.cond, !dbg !15 +// CHECK:STDOUT: br label %while.cond, !dbg !32 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %if.then.loc20, %while.cond -// CHECK:STDOUT: ret void, !dbg !16 +// CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder label %while.cond, { 1, 2, 0 } @@ -66,24 +66,24 @@ fn While() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "break_continue.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !1, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 10, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 9, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 19, column: 9, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 8, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 16, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 20, column: 9, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 20, column: 8, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 20, column: 16, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 1, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "break_continue.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !16, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 18, column: 9, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 18, column: 10, scope: !23) +// CHECK:STDOUT: !26 = !DILocation(line: 19, column: 9, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 19, column: 8, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 19, column: 16, scope: !23) +// CHECK:STDOUT: !29 = !DILocation(line: 20, column: 9, scope: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 20, column: 8, scope: !23) +// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 16, scope: !23) +// CHECK:STDOUT: !32 = !DILocation(line: 18, column: 3, scope: !23) +// CHECK:STDOUT: !33 = !DILocation(line: 17, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/while/preheader.carbon b/toolchain/lower/testdata/while/preheader.carbon index 77acd1bbff05..13b005bb9706 100644 --- a/toolchain/lower/testdata/while/preheader.carbon +++ b/toolchain/lower/testdata/while/preheader.carbon @@ -41,35 +41,35 @@ fn While() { // CHECK:STDOUT: declare void @_CG.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: br label %while.cond.loc22 // CHECK:STDOUT: // CHECK:STDOUT: while.cond.loc22: ; preds = %entry, %while.body.loc22 -// CHECK:STDOUT: %Cond.call.loc22 = call i1 @_CCond.Main(), !dbg !7 -// CHECK:STDOUT: br i1 %Cond.call.loc22, label %while.body.loc22, label %while.done.loc22, !dbg !8 +// CHECK:STDOUT: %Cond.call.loc22 = call i1 @_CCond.Main(), !dbg !25 +// CHECK:STDOUT: br i1 %Cond.call.loc22, label %while.body.loc22, label %while.done.loc22, !dbg !24 // CHECK:STDOUT: // CHECK:STDOUT: while.body.loc22: ; preds = %while.cond.loc22 -// CHECK:STDOUT: call void @_CF.Main(), !dbg !9 -// CHECK:STDOUT: br label %while.cond.loc22, !dbg !10 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !26 +// CHECK:STDOUT: br label %while.cond.loc22, !dbg !27 // CHECK:STDOUT: // CHECK:STDOUT: while.done.loc22: ; preds = %while.cond.loc22 -// CHECK:STDOUT: %Cond.call.loc26 = call i1 @_CCond.Main(), !dbg !11 -// CHECK:STDOUT: br i1 %Cond.call.loc26, label %while.cond.loc27, label %if.else, !dbg !12 +// CHECK:STDOUT: %Cond.call.loc26 = call i1 @_CCond.Main(), !dbg !28 +// CHECK:STDOUT: br i1 %Cond.call.loc26, label %while.cond.loc27, label %if.else, !dbg !29 // CHECK:STDOUT: // CHECK:STDOUT: while.cond.loc27: ; preds = %while.body.loc27, %while.done.loc22 -// CHECK:STDOUT: %Cond.call.loc27 = call i1 @_CCond.Main(), !dbg !13 -// CHECK:STDOUT: br i1 %Cond.call.loc27, label %while.body.loc27, label %while.done.loc27, !dbg !14 +// CHECK:STDOUT: %Cond.call.loc27 = call i1 @_CCond.Main(), !dbg !31 +// CHECK:STDOUT: br i1 %Cond.call.loc27, label %while.body.loc27, label %while.done.loc27, !dbg !30 // CHECK:STDOUT: // CHECK:STDOUT: while.body.loc27: ; preds = %while.cond.loc27 -// CHECK:STDOUT: call void @_CG.Main(), !dbg !15 -// CHECK:STDOUT: br label %while.cond.loc27, !dbg !16 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !32 +// CHECK:STDOUT: br label %while.cond.loc27, !dbg !33 // CHECK:STDOUT: // CHECK:STDOUT: while.done.loc27: ; preds = %while.cond.loc27 -// CHECK:STDOUT: br label %if.else, !dbg !17 +// CHECK:STDOUT: br label %if.else, !dbg !34 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %while.done.loc27, %while.done.loc22 -// CHECK:STDOUT: ret void, !dbg !18 +// CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder label %while.cond.loc22, { 1, 0 } @@ -77,26 +77,26 @@ fn While() { // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "preheader.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !1, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 22, column: 10, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 22, column: 9, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 23, column: 5, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 26, column: 7, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 26, column: 6, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 27, column: 12, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 27, column: 11, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 28, column: 7, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 27, column: 5, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 26, column: 3, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 21, column: 1, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "preheader.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !16, line: 21, type: !22, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 9, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 22, column: 10, scope: !23) +// CHECK:STDOUT: !26 = !DILocation(line: 23, column: 5, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 22, column: 3, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 26, column: 7, scope: !23) +// CHECK:STDOUT: !29 = !DILocation(line: 26, column: 6, scope: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 27, column: 11, scope: !23) +// CHECK:STDOUT: !31 = !DILocation(line: 27, column: 12, scope: !23) +// CHECK:STDOUT: !32 = !DILocation(line: 28, column: 7, scope: !23) +// CHECK:STDOUT: !33 = !DILocation(line: 27, column: 5, scope: !23) +// CHECK:STDOUT: !34 = !DILocation(line: 26, column: 3, scope: !23) +// CHECK:STDOUT: !35 = !DILocation(line: 21, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/while/unreachable_end.carbon b/toolchain/lower/testdata/while/unreachable_end.carbon index e278a21995ab..73ee50851630 100644 --- a/toolchain/lower/testdata/while/unreachable_end.carbon +++ b/toolchain/lower/testdata/while/unreachable_end.carbon @@ -38,41 +38,41 @@ fn While() { // CHECK:STDOUT: declare void @_CH.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(), !dbg !7 -// CHECK:STDOUT: br label %while.cond, !dbg !8 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !24 +// CHECK:STDOUT: br label %while.cond, !dbg !25 // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %entry -// CHECK:STDOUT: %Cond.call = call i1 @_CCond.Main(), !dbg !9 -// CHECK:STDOUT: br i1 %Cond.call, label %while.body, label %while.done, !dbg !8 +// CHECK:STDOUT: %Cond.call = call i1 @_CCond.Main(), !dbg !26 +// CHECK:STDOUT: br i1 %Cond.call, label %while.body, label %while.done, !dbg !25 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: call void @_CG.Main(), !dbg !10 -// CHECK:STDOUT: ret void, !dbg !11 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !27 +// CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @_CH.Main(), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @_CH.Main(), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "unreachable_end.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 9, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 21, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 23, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 19, column: 1, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "unreachable_end.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !16, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 20, column: 3, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 21, column: 9, scope: !23) +// CHECK:STDOUT: !26 = !DILocation(line: 21, column: 10, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 22, column: 5, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 23, column: 5, scope: !23) +// CHECK:STDOUT: !29 = !DILocation(line: 25, column: 3, scope: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 19, column: 1, scope: !23) // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/while/while.carbon b/toolchain/lower/testdata/while/while.carbon index 1b1a3f2e6fd6..6048a025fab5 100644 --- a/toolchain/lower/testdata/while/while.carbon +++ b/toolchain/lower/testdata/while/while.carbon @@ -37,41 +37,41 @@ fn While() { // CHECK:STDOUT: declare void @_CH.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CWhile.Main() #0 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(), !dbg !7 -// CHECK:STDOUT: br label %while.cond, !dbg !8 +// CHECK:STDOUT: call void @_CF.Main(), !dbg !24 +// CHECK:STDOUT: br label %while.cond, !dbg !25 // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %while.body, %entry -// CHECK:STDOUT: %Cond.call = call i1 @_CCond.Main(), !dbg !9 -// CHECK:STDOUT: br i1 %Cond.call, label %while.body, label %while.done, !dbg !8 +// CHECK:STDOUT: %Cond.call = call i1 @_CCond.Main(), !dbg !26 +// CHECK:STDOUT: br i1 %Cond.call, label %while.body, label %while.done, !dbg !25 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: call void @_CG.Main(), !dbg !10 -// CHECK:STDOUT: br label %while.cond, !dbg !11 +// CHECK:STDOUT: call void @_CG.Main(), !dbg !27 +// CHECK:STDOUT: br label %while.cond, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @_CH.Main(), !dbg !12 -// CHECK:STDOUT: ret void, !dbg !13 +// CHECK:STDOUT: call void @_CH.Main(), !dbg !29 +// CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: -// CHECK:STDOUT: !llvm.dbg.cu = !{!0} +// CHECK:STDOUT: !llvm.dbg.cu = !{!17} // CHECK:STDOUT: !llvm.module.flags = !{!2, !3} // CHECK:STDOUT: -// CHECK:STDOUT: !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !1 = !DIFile(filename: "while.carbon", directory: "") // CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !1, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !0) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{null} -// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 9, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 21, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 19, column: 1, scope: !4) +// CHECK:STDOUT: !16 = !DIFile(filename: "while.carbon", directory: "") +// CHECK:STDOUT: !17 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !16, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !21 = !{null} +// CHECK:STDOUT: !22 = !DISubroutineType(types: !21) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "While", linkageName: "_CWhile.Main", scope: null, file: !16, line: 19, type: !22, spFlags: DISPFlagDefinition, unit: !17) +// CHECK:STDOUT: !24 = !DILocation(line: 20, column: 3, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 21, column: 9, scope: !23) +// CHECK:STDOUT: !26 = !DILocation(line: 21, column: 10, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 22, column: 5, scope: !23) +// CHECK:STDOUT: !28 = !DILocation(line: 21, column: 3, scope: !23) +// CHECK:STDOUT: !29 = !DILocation(line: 24, column: 3, scope: !23) +// CHECK:STDOUT: !30 = !DILocation(line: 19, column: 1, scope: !23) // CHECK:STDOUT: