[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]
Re: Bug dans g++ et LinuxPPC re: throw/catch
- To:
- Subject: Re: Bug dans g++ et LinuxPPC re: throw/catch
- From: Vincent Brousseau <>
- Date: Tue, 15 Feb 2000 01:46:23 -0500
-
In-reply-to: <[email protected]>
Tes chances de trouver une réponse dans cette section de discussion sont
plutôt minces, tu devrais aller voir dans des groupes plus
spécialisés...
Pierre Sarrazin wrote:
> (Désolé, mon message a été coupé. Le FBI enquête.
> Revoici la fin.)
>
> Voici le code de main(): c'est le premier throw qui appelle
> terminate(), comme s'il n'y avait pas de catch(...).
>
> int main(int argc, char *argv[])
> {
> cerr << "try: " << __FILE__ << ":" << __LINE__ << endl;
> try { throw 1844; } catch (...) { cerr << "catch!" << endl; }
> cerr << "apres catch: " << __FILE__ << ":" << __LINE__ << endl;
>
> CService *leService = NULL;
> try
> {
> cerr << "avant new" << endl;
> leService = new CServiceCorrection();
> cerr << "apres new" << endl;
> }
> catch (int err)
> {
> cerr << "catch (int err): err = " << err << endl;
> return 99;
> }
> catch (...)
> {
> cerr << "catch (...)" << endl;
> return 111;
> }
>
> cerr << leService->NomService() << endl;
>
> cerr << "fin" << endl;
> return 0;
> }
>
> Si on enlève l'énoncé qui appelle leService->NomService() à la
> fin de la fonction, alors le throw 1844 est attrapé correctement
> par le catch correspondant. Je ne comprends pas comment la simple
> présence de l'avant dernier énoncé de la fonction peut troubler
> un énoncé qui vient avant.
>
> J'utilise LinuxPPC R5 sur un PowerMac 7200/120. Le problème ne se
> produit pas sur un RedHat 5.2 ou 6.0 sur un Pentium. Le co