Fix array sizes where address space is not yet known
For variables in generic address spaces, for example:
```
unsigned char V[
6442450944];
...
```
the address space is not yet known when we get into
*getConstantArrayType*, it is 0. AMDGCN target's
address space 0 has 32 bits pointers, so when we
call *getPointerWidth* with 0, the array size is
trimmed to 32 bits, which is not right.
Differential Revision: https://reviews.llvm.org/D30845
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@298420
91177308-0d34-0410-b5e6-
96231b3b80d8