GCC Middle and Back End API Reference
substring-locations.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  substring_loc
 
class  format_string_diagnostic_t
 

Functions

const charget_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)
 

Function Documentation

◆ 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(), ggc_alloc(), make_location(), and NULL.