There are two issues:
- only (void*)0 should be treated as nullptr
- only explicit addr space should be printed
This patch introduces a flag in Qualifier to indicating a non-default address space qualifier is deduced by context. Only
non-implicit address space qualifier will be print out when printing AST. It is also used to identify nullptr.
However this review does not rule out alternative approaches, e.g. using AttributedType. We will explore alternative approaches.
This patch depends on https://reviews.llvm.org/D35082
This is probably cleaner as: