I suppose gcc linker by default calls ranlib to inject index information to archive files(.a).
But
As stated in the GNU ranlib man page:
ranlib generates an index to the contents of an archive and stores it in the archive. The index lists each symbol defined by a member of an archive that is a relocatable object file.
You may use nm -s or nm --print-armap to list this index.
An archive with such an index speeds up linking to the library and allows routines in the library to call each other without regard to their placement in the archive.