This fixes two problems:
- When crossing compiling for windows on linux, source file path in debug info is concatenated with directory by host native separator ('/'). For windows local build, they are concatenated by '\'. This causes non-determinism bug.
The solution here is to let LangOptions.UseTargetPathSeparator to control if we should use host native separator or not.
- Objectfile path in CodeView also uses host native separator when generated.
It's fixed by changing the path separator in /Fo to '\' if the path is not an absolute path when adding the -object-file-name= flag.
Do we want to fix absolute filenames too?
I can see arguments for and against:
So the current decision probably makes sense.