https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68823
--- Comment #9 from Sebastian Pop <spop at gcc dot gnu.org> --- /* Determines the base object and the list of indices of memory reference DR, analyzed in LOOP and instantiated in loop nest NEST. */ static void dr_analyze_indices (struct data_reference *dr, loop_p nest, loop_p loop) This function initializes the subscripts with their access functions: DR_ACCESS_FNS (dr) = access_fns; The number of subscripts (or "dimensions") is then the length of that array: #define DR_NUM_DIMENSIONS(DR) DR_ACCESS_FNS (DR).length ()