Builds on previous Differential D2219
Changes include:
- Using unordered_map with SourceLocation.ID (raw encoding) as key
- Demangle only if !isExternC. Used dyn_cast<FunctionDecl>((Decl*)CurFuncDecl) for this
- Modified an existing C testcase to test for options.
This parameter can be const.