On Wed, Feb 15, 2012 at 09:29:18AM -0800, Richard Henderson wrote: > On 02/15/2012 01:48 AM, Richard Guenther wrote: > > Hmm. I think you rather want to teach local_pure_const about TM > > properties you want to know and have them propagated properly > > (of course unless pure/const which is about optimization and has an > > easy fallback default yours wouldn't have that - you'd have to assume > > the callee contains an invalid asm ...) > > That's more or less what we do ourselves during the tm ipa pass. > > The trouble we have here is merely one of diagnostics. The user > has written "transaction safe" and it's now our job to tell him > when he's done something that's not transaction safe. > > The unfortunate thing of diagnostics is you'd like to be able to > tell the user what they did wrong at the source level, not after > 10 levels of inlining. > > And given that pass_local_pure_const still runs after pass_early_inline, > doing anything in there doesn't really help the problem at all.
Use %K in error/warning fmt string, then the diagnostic will include the full virtual backtrace. Jakub