Go to the source code of this file.
◆ get_location_within_string()
const char * get_location_within_string |
( |
cpp_reader * | pfile, |
|
|
file_cache & | fc, |
|
|
string_concat_db * | concats, |
|
|
location_t | strloc, |
|
|
enum cpp_ttype | type, |
|
|
int | caret_idx, |
|
|
int | start_idx, |
|
|
int | end_idx, |
|
|
location_t * | out_loc ) |
|
extern |
Implementation detail, for use when implementing
LANG_HOOKS_GET_SUBSTRING_LOCATION.
Attempt to populate *OUT_LOC with source location information on the
given characters within the string literal found at STRLOC.
CARET_IDX, START_IDX, and END_IDX refer to offsets within the execution
character set.
For example, given CARET_IDX = 4, START_IDX = 3, END_IDX = 7
and string literal "012345\n789"
*OUT_LOC is written to with:
"012345\n789"
~^~~~~
If CONCATS is non-NULL, then any string literals that the token at
STRLOC was concatenated with are also considered.
This is implemented by re-parsing the relevant source line(s).
Return NULL if successful, or an error message if any errors occurred.
Error messages are intended for GCC developers (to help debugging) rather
than for end-users.
References gcc_assert, gcc_checking_assert, get_substring_ranges_for_loc(), make_location(), and NULL.