Je suis en train d'utiliser le pragma optimize GCC pour définir des optimisations globales dans mon code C. La version de GCC est 4.4.3 sur Ubuntu. L'idée de base est d'utiliser des niveaux d'optimisation spécifiques à la fonction.optimisation de code C en utilisant GCC#pragma optimiser
#pragma GCC optimize ("O3")
Je reçois une erreur de compilation juste avant ma fonction principale dans mon code C
Mais quand je construis, j'obtiens l'erreur de compilation comme ci-dessous -
passrecovery.c: In function âmainâ:
passrecovery.c:493: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.4/README.Bugs> for instructions.
make: *** [all] Error 1
J'ai vérifié le README Fichier .Bugs, mentionné dans l'erreur, mais n'a trouvé aucun indice à ce sujet.
est-#pragma optimize
pris en charge dans GCC 4.4.3 ou non?
Si oui, qu'est-ce que je fais mal à utiliser ce pragma pour optimiser le code.
Toute autre directive GCC alternative pour l'optimisation du code pour la vitesse?
EDIT: J'ai même essayé #pragma GCC push_options
puis #pragma GCC optimize ("O3")
et à la fin du fichier #pragma GCC pop_options
; même erreur.
Pour votre information, j'ai essayé d'utiliser cette directive sur optimize principale(). Cela semble être le problème. Cette directive fonctionne bien (Atleast compilé ok) si elle est utilisée sur une autre fonction (autre que main) – goldenmean
@Would voudrait plus de globes oculaires pour passer en revue le code qui provoque cette situation. Seule la bibliothèque utilisée par ce code est -lcrypt (crypt.h), string.h, stdio.h, stdlib.h, ctype.h. – goldenmean
@goldenmean: recommande d'essayer d'enlever '' et tout ce qui en dépend en premier ... enfin, deuxième. Vous devriez regarder ce qui est dans les 490 premières lignes et voir ce qui peut être supprimé en gros tout en préservant le crash. Vous pouvez d'abord utiliser les commentaires, puis les supprimer. Il y a une chance que vous ne puissiez déplacer aucune ligne de code.Mais c'est plutôt improbable. Et chaque ligne supprimée est un avantage. Que votre programme n'utilise aucun de vos en-têtes simplifie la vie. –