# stage2: add debug info for locals in the LLVM backend · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/0bc96354909c0828b7fd36ce0be5705b7b21d63c)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 0bc96354909c0828b7fd36ce0be5705b7b21d63c

Requested commit: 0bc96354909c0828b7fd36ce0be5705b7b21d63c

Commit: 0bc96354909c0828b7fd36ce0be5705b7b21d63c

Tree: 2b544abbf34776414478cb5fe4b8baad661337b3

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2: add debug info for locals in the LLVM backend

Adds 2 new AIR instructions:
 * dbg_var_ptr
 * dbg_var_val

Sema no longer emits dbg_stmt AIR instructions when strip=true.

LLVM backend: fixed lowerPtrToVoid when calling ptrAlignment on
the element type is problematic.

LLVM backend: fixed alloca instructions improperly getting debug
location annotated, causing chaotic debug info behavior.

zig_llvm.cpp: fixed incorrect bindings for a function that should use
unsigned integers for line and column.

A bunch of C test cases regressed because the new dbg_var AIR
instructions caused their operands to be alive, exposing latent bugs.
Mostly it's just a problem that the C backend lowers mutable
and const slices to the same C type, so we need to represent that in the
C backend instead of printing two duplicate typedefs.

```

## Parents

- [7ec2261dbf7a85f5c215f2dac22b80fca7de1e0f](https://git.cafe/gitcafe/zig/commit/7ec2261dbf7a85f5c215f2dac22b80fca7de1e0f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/0bc96354909c0828b7fd36ce0be5705b7b21d63c?format=markdown)
