1 int bar(int);
2
3 inline int __attribute__((artificial)) __attribute__((always_inline)) foo(int x)
4 {
5 return bar(x + 1);
6 }
7
8 void baz(void)
9 {
10 auto x = foo(1);
11 x = foo(2);
12 }
_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
I thought `artificial` and `nodebug` were supposed to be synonyms, just different names invented by different communities.
The linked patch doesn't implement the LLVM side of things, so I'm not sure when that got added.
In order to get the described effect, I think we’d need to put DW_AT_artificial on the subprogram, and then not attach source locations to the generated code. That would have the effect of not allowing break/step inside, but the subprogram name is still available. This is not the same as `nodebug`, where you lose the subprogram name too.
Shouldn’t be at all hard to get this to work.
Fangqing, would you be able to file an issue for this?
Thanks,
--paulr
In order to get the described effect, I think we’d need to put DW_AT_artificial on the subprogram, and then not attach source locations to the generated code. That would have the effect of not allowing break/step inside, but the subprogram name is still available. This is not the same as `nodebug`, where you lose the subprogram name too.
Shouldn’t be at all hard to get this to work.