Wow.. finally got the damn thing working. It only took an entire day. :
It appears there's a bug/typo in the ModelSim Compile Regexp in vhdl-mode v3.34.2 (and previous versions).
Here's the default:
\(ERROR\|WARNING\|\*\* Error\|\*\* Warning\)[^:]*:\( *[[0-9]+]\)? \([^ \t\n]+\)(\([0-9]+\)):
and from that..
File subexp index: 3 = \([^ \t\n]+\)
Line subexp index: 4 = \([0-9]+\)
The File subexp part appears incorrect so I changed it to \(.+\) which I found in this thread:
http://www.velocityreviews.com/forum...oto-error.html
So I go on to hit 'set for current session'.. oh great it works! Then I hit 'save for future sessions' and re-open emacs to double-check that it worked, and.. nothing?!
Long story short, it appears there's some kind of intermittent issue where 'set for current session' makes it work (sometimes) and 'save for future sessions' doesn't work at all, for me.
I then find the 'Vhdl Compile' group shortcut at the bottom of the Customize Options page and I run across "Vhdl Compile Use Local Error Regexp", I toggle the setting to 'Off'. And now it works.. perfect.
So, to recap, here are the settings I used to get it working:
Regexp: \(ERROR\|WARNING\|\*\* Error\|\*\* Warning\)[^:]*:\( *[[0-9]+]\)? \(.+\)(\([0-9]+\)):
File subexp index: 3
Line subexp index: 4
Vhdl Compile Use Local Error Regexp (under Vhdl Compile group): Off
Enjoy!