// Taking the address of a scalar `::` constant is a compile error: a scalar // constant folds to its value and has NO storage (only array/struct constants // are immutable globals with a real address — see 0177). Covers a module-scope // const, a local const, and an inline-asm `-> @const` write-through (the path // that surfaced the bug). Before the fix, `@N` lowered to `inttoptr (i64 40 to // ptr)` — a wild pointer that segfaulted on deref and emitted invalid stores // for asm `-> @const`. Regression (issue 0138). takes :: (p: *i64) {} N :: 40; main :: () { takes(@N); // module scalar const — no storage x :: 7; takes(@x); // local scalar const — no storage asm volatile { "mov %[c], #99", [c] "=r" -> @N }; // write-through to a const }