A major issue is when vendors just behave differently (because they suck!)
Instead of trying to handle vendor issues, one could use glslang as standard compiler frontend!
It does the parsing, so differences between the parsers of different implementations can be eliminated.