DIStringType is used to encode the debug info of a character object in Fortran. A Fortran deferred-length character object is typically implemented as a pair of the following two pieces of info: A pointer to the raw storage of the characters, and the length of the object. The stringLocationExp field contains the DIExpression to get to the raw storage.
This patch also enables the emission of DW_AT_data_location attribute in a DW_TAG_string_type debug info entry based on stringLocationExp in DIStringType.
A test is added to ensure that the bitcode reader is backward compatible with the old DIStringType format.