Disabling All Inlining in DMD Debug Builds

Jack Stouffer jack at jackstouffer.com
Mon Oct 24 19:28:34 UTC 2022


I use

```
pragma(inline, true)
function definition
```

all over my code. And by default, DMD inlines these functions 
even in debug builds, which normally is great. I have a custom 
dynamic array container and if the indexing operator overload 
function wasn't inlined the debug build would have a ~10x 
slowdown and become un-testable in many ways.

What sucks about this is that stepping through the code in a 
debugger is way worse because the the "step-over" operation no 
longer works properly. Maybe this is a bug in the PDB output, but 
trying to step over an inlined function call still takes you into 
the inlined function body as if it were a step-in.

So is there a way to tell DMD to ignore these pragmas in certain 
builds?


More information about the Digitalmars-d-learn mailing list