Faits :
A.
Le 6 juillet 2016, la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, a rendu un jugement dans la cause opposant C._ et A._, demandeur et demanderesse, à l'assurance D._ et à la Caisse de pensions de B._ SA, défenderesses, dont le ch. 1 du dispositif est le suivant:
"Invite la Caisse de pensions de B._ SA à transférer, du compte de Madame A._, née en 1972, n° AVS xxx, la somme de 45'741 fr. 80 à l'assurance D._ en faveur de Monsieur C._, né en 1957, n° AVS yyy, ainsi que des intérêts compensatoires au sens des considérants, dès le 4 février 2014 jusqu'au moment du transfert."
Le 13 juillet 2016, F._ SA a demandé à la Fondation de libre passage G._ de transférer la somme requise à l'assurance D._, dès lors qu'elle lui avait versé la totalité de la prestation de libre passage en faveur de Madame A._ le 22 décembre 2015 consécutivement à la fin de son affiliation au 31 juillet 2015 auprès de la Caisse de pensions de B._ SA au 31 juillet 2015, soit 136'877 fr. 95.
Le 19 septembre 2016, la Fondation de prévoyance E._ s'est adressée à la Chambre des assurances sociales. Se référant au jugement du 6 juillet 2016 qui lui avait été transmis par la Fondation de libre passage G._, elle a indiqué que A._ était assurée auprès d'elle depuis le 1 er avril 2016. Elle a demandé à la juridiction cantonale si elle devait exécuter le transfert de 45'741 fr. 80 du compte de la demanderesse ou si le jugement du 6 juillet 2016 faisait l'objet d'un recours. Par lettre du 23 septembre 2016 envoyée à la Fondation de prévoyance E._, la Cour de justice a confirmé que son jugement du 6 juillet 2016 était définitif et exécutoire; le 30 septembre 2016, elle l'a invitée à l'exécuter.
Le 4 octobre 2016, la Fondation de prévoyance E._ a fait savoir à la Chambre des assurances sociales que l'avocat de A._ s'était opposé formellement au transfert de la prestation de libre passage partagée, estimant que le jugement devait être modifié pour qu'il lui soit opposable. La fondation a indiqué qu'elle préférait attendre l'accord des parties ou la modification du jugement pour effectuer le versement de 45'741 fr. 80, avec intérêts jusqu'au moment du transfert.
Le 5 octobre 2016, le tribunal cantonal a communiqué l'écriture du 4 octobre 2016 à A._. Constatant que la prénommée et la Caisse de pensions de B._ SA ne l'avaient pas informé du transfert des avoirs de prévoyance, d'abord à la Fondation de libre passage G._ puis à la Fondation de prévoyance E._, le tribunal a invité A._ à lui faire part de ses intentions quant aux modalités du transfert, dans un délai échéant le 13 octobre 2016.
Le 28 octobre 2016, la Cour de justice a fait savoir à la Fondation de prévoyance E._ que A._ n'avait pas répondu à sa lettre du 5 octobre 2016. En l'absence d'une demande de révision formelle déposée par l'une des parties concernées, elle ne pouvait pas réviser son jugement du 6 juillet 2016 passé en force. Il appartiendrait, le cas échéant, à C._ voire à la Caisse de pensions de B._ SA de le faire.
B.
Par écriture du 4 novembre 2016, la Caisse de pensions de B._ SA a saisi la Cour de justice en prenant les conclusions suivantes:
"1. La demande de révision du 13 juillet 2016 complétée le 4 novembre 2016 est admise.
2. En conséquence, le ch. 1 des conclusions (recte: dispositif) du jugement du 6 juillet 2016 est modifié dans le sens suivant:
Invite la Fondation de libre passage G._ à transférer, du compte de Madame A._, née en 1972, n° AVS xxx, la somme de 45'741 fr. 80 à l'assurance D._ en faveur de Monsieur C._, né en 1957, n° AVS yyy, ainsi que des intérêts compensatoires au sens des considérants, dès le 4 février 2014 jusqu'au moment du transfert."
Par jugement en révision du 9 novembre 2016, la Cour de justice a annulé le ch. 1 du dispositif du jugement du 6 juillet 2016 et, statuant à nouveau, a invité la Fondation de prévoyance E._ à transférer, du compte de Madame A._, née en 1972, n° AVS xxx, la somme de 45'741 fr. 80 à l'assurance D._ en faveur de Monsieur C._, né en 1957, n° AVS yyy, ainsi que des intérêts compensatoires au sens des considérants, dès le 4 février 2014 jusqu'au moment du transfert.
C.
A._ interjette un recours en matière de droit public contre ce jugement dont elle conclut à l'annulation. A titre principal, elle demande au Tribunal fédéral de constater l'irrecevabilité de la demande de révision de l'arrêt du 6 juillet 2016; à titre subsidiaire, elle conclut au renvoi de la cause à la juridiction cantonale pour nouvelle décision au sens des considérants. Elle sollicite l'attribution de l'effet suspensif à son recours.
C._ conclut au rejet du recours. F._ SA conclut au rejet du recours dans la mesure de sa recevabilité, avec suite de frais et dépens. L'Office fédéral des assurances sociales et l'assurance D._ renoncent à répondre. La Fondation de prévoyance E._ ne s'est pas déterminée.

Considérant en droit :
1.
La juridiction cantonale a constaté que la prestation de libre passage de la recourante avait été transférée d'abord à la Fondation de libre passage G._, puis dès le 1 er avril 2016 à la Fondation de prévoyance E._. Par conséquent, elle a admis qu'il appartenait à cette dernière de transférer le montant à partager conformément aux considérants de son arrêt du 6 juillet 2016, lequel devait être révisé en application de l'art. 80 de la loi genevoise sur la procédure administrative (LPA-GE, RS-GE E 5 10).
2.
La recourante se prévaut d'une violation de son droit d'être entendue, car la Cour de justice a fait droit aux conclusions de la Caisse de pensions de B._ SA du 4 novembre 2016 et modifié le dispositif de son arrêt du 6 juillet 2016 sans l'inviter à s'exprimer.
3.
Dans la mesure où la recourante soulève un grief d'ordre formel contre le déroulement de la procédure de première instance, soit la violation de son droit d'être entendue (art. 29 al. 2 Cst.), celui-ci doit être examiné en premier lieu, car il se pourrait que le Tribunal fédéral accueille le recours sur ce point et renvoie la cause à l'autorité inférieure sans examen du litige au fond (cf. <ref-ruling> consid. 2 p. 92 et la référence; arrêt 9C_641/2015 du 21 juin 2016 consid. 2).
En l'espèce, si la recourante a toujours reçu une copie de la correspondance que les différentes parties se sont échangées après le jugement du 6 juillet 2016, il n'en demeure pas moins que le tribunal cantonal ne lui a pas préalablement soumis l'écriture du 4 novembre 2016 pour prise de position avant de rendre son jugement du 9 novembre 2016. Le grief est dès lors bien fondé, ce qui entraîne pour ce seul motif l'annulation du jugement attaqué et le renvoi de la cause à la juridiction cantonale pour nouvelle décision, après avoir respecté le droit de la recourante et des autres parties d'être entendues.
Vu l'issue du litige, la requête d'attribution de l'effet suspensif au recours n'a plus d'objet.
4.
La Caisse de pensions de B._ SA, qui succombe, supportera les frais de la procédure (art. 66 al. 1 LTF) ainsi que les dépens de la recourante (art. 68 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis. Le jugement en révision de la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, du 9 novembre 2016, est annulé, la cause lui étant renvoyée pour qu'elle procède conformément au considérant 3. Le recours est rejeté pour le surplus.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de l'intimée.
3.
L'intimée versera une indemnité de dépens de 2'800 fr. à la recourante pour la procédure fédérale.
4.
Le présent arrêt est communiqué aux parties, à C._, à l'assurance D._, à la Fondation de prévoyance E._, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 17 mai 2017
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Pfiffner
Le Greffier : Berthoud