Se nel main scrivi

codice:
int main(void)
{
  struct lista *l;

  ...
}
e la tua funzione e'

void F (struct lista *);

allora devi passare semplicemente

F(l);

perche' l e' gia' un puntatore alla struttura ...

Se scrivi

F(&l);

passi un puntatore ad un puntatore alla struttura e ottieni giustamente il warning ...