Questions sur strict-aliasing

11
réponses

Quelle est la stricte aliasing règle?

en posant des questions sur comportement commun non défini dans C , les âmes plus éclairées que je me suis référé à la règle stricte d'alias. De quoi parlent-ils?
demandé sur 2008-09-19 05:30:27
3
réponses

L'utilisation de ce pointeur provoque une étrange désoptimisation en boucle chaude

j'ai récemment rencontré une étrange désoptimisation (ou plutôt l'occasion manquée d'optimisation). considère ... n cache d'un pointeur de membre dans une boucle chaude semble être une technique d'optimisation manuelle nécessaire.
demandé sur 2014-10-10 12:38:56
5
réponses

"déréférencement de type punned pointeur de la pause-strict-aliasing règles d'avertissement"

j'utilise un code où je lance un enum* à int*. Quelque chose comme ceci: enum foo { ... } ... foo foobar; int * ... eux pas faire une règle Makefile séparée pour ce fichier source)? et oui, j'ai besoin de ce genre d'alias.
demandé sur 2010-11-12 12:20:53
3
réponses

Pourquoi l'optimisation supprime-t-elle cette fonction?

nous avons récemment eu une conférence à l'université sur la programmation des émissions spéciales en plusieurs langue ... pas même s'il pense qu'elles ne sont jamais lues ou écrites, mais je ne saurais pas pourquoi cela se produirait ici.
demandé sur 2014-01-04 19:08:03
7
réponses

Dereferencing type-pointeur pointu va briser les règles d'aliasing strictes

j'ai utilisé le code suivant pour lire des données à partir de fichiers dans le cadre d'un programme plus vaste. ... ssements. Que recommanderiez-vous? [update] j'ai substitué l'exemple du jouet avec la fonction réelle.
demandé sur 2010-07-14 16:48:35
6
réponses

gcc, stricte-aliasing, et les histoires d'horreur

Dans gcc-strict-aliasing-et-casting-par-un-union j'ai demandé si quelqu'un avait rencontré des problèmes avec l' ... c'est OK dans gcc-strict-aliasing-et-casting-par-un-union mais jusqu'à présent, personne n'est en désaccord.
demandé sur 2010-06-02 18:27:00
4
réponses

GCC Aliasing Vérifie w/Limiter les pointeurs

Envisager la suite de deux extraits: #define ALIGN_BYTES 32 #define ASSUME_ALIGNED(x) x = __builtin_assume_alig ... pq %rax, %rdx ja .L20 .L12: vzeroupper ret .L19: xorl %eax, %eax jmp .L20 .cfi_endproc
demandé sur 2013-03-25 15:21:23
7
réponses

gcc, aliasing strict, et la diffusion à travers une union

avez-vous des histoires d'horreur à raconter? Le manuel GCC a récemment ajouté un avertissement concernant-fstrict-al ... pas =3 , produit warning: dereferencing type-punned pointer might break strict-aliasing rules pour l'exemple ici.
demandé sur 2010-05-25 20:06:42
4
réponses

Pourquoi GCC et Clang ne font-ils pas cette alias-optimisation?

j'ai un cas où un ami lui jette un non-objet de classe de base de type "Base" à une classe d'objet de type "Déri ... " et elles sont exclues de l'optimisation." . Quelqu'un peut-il fournir une preuve de cela pour GCC ou Clang?
demandé sur 2013-06-19 18:14:51
3
réponses

L'alias T* avec char* est autorisé. Est-il permis aussi dans l'autre sens?

Note: cette question a été renommée et réduite pour la rendre plus précise et plus lisible. La plupart des comme ... e sens. Par exemple: char * c = read_socket(...); unsigned * u = reinterpret_cast<unsigned*>(c); // huh?
demandé sur 2012-09-27 04:45:24
2
réponses

Est-ce un comportement non défini à `réinterpréter cast` a `T*` à `T(*)[N]`?

envisager le scénario suivant: std::array<int, 8> a; auto p = reinterpret_cast<int(*)[8]>(a.data()) ... tableau de 8 int objets y a-t-il une règle qui me manque pour que ce reinterpret_cast soit valide?
demandé sur 2018-01-25 16:28:18
6
réponses

Réutiliser un tampon flottant pour les doubles sans comportement non défini

dans une fonction C++ particulière, il se trouve que j'ai un pointeur vers un grand tampon de flotteurs que je veux ut ... autorisée en C++). on peut supposer que le float buffer est correctement aligné pour l'utiliser en double.
demandé sur 2018-07-11 18:35:46
2
réponses

Façon correcte et portable d'interpréter le tampon comme une structure

le contexte de mon problème est dans la programmation réseau. Disons que je veux envoyer des messages sur le réseau en ... cette réponse, c'est certainement [edit - pas] rupture stricte-aliasing et a donc un comportement indéfini.
demandé sur 2013-10-03 21:08:34
2
réponses

Quand est-ce que char* est sûr pour l'aliasing pointeur strict?

j'ai essayé de comprendre les règles d'alias strictes comme elles s'appliquent au pointeur de char. Ici ... et que je le projette sur une structure? Comment faites-vous gérer cette situation dans un monde strictement aliasé?
demandé sur 2008-11-04 19:31:50
3
réponses

C99 règles d'alias strictes en C++ (GCC)

autant que je sache, GCC supporte toutes ses fonctionnalités C99 en C++. Mais comment est-ce que C99 aliasing strict e ... c ils sont sûrs, tandis que reinterpret_cast peut enfreindre des règles d'alias strictes. est-ce correct?
demandé sur 2010-05-05 10:25:53
1
réponses

Comprendre restreindre le qualificatif par des exemples

le comportement du mot-clé restrict est défini dans C99 par 6.7.3.1: doit être une déclaration d'un ide ... le les hypothèses que le compilateur peut faire, et comment ils échouent à tenir, avec chaque exemple serait grand.
demandé sur 2012-09-04 05:19:37
3
réponses

Pourquoi les compilateurs n'optimisent plus cet UB avec un aliasing strict

un des premiers résultats pour l'alias strict sur google est cet article http://dbp-consulting.com/tutorials/Stric ... produire UB ou il est juste une régression du compilateur qui dure des années... Clang ne l'optimise pas non plus.
demandé sur 2015-12-30 13:34:01
2
réponses

Aliasing tableau avec pointeur vers une struct sans violer la norme

Lire ce j'ai compris que vous pouvez alias structures (sans violer la norme, c'est si elles sont compatibles mem ... es pour tous membres de la structure indépendamment de leurs types tant qu'il y a un membre du type approprié?
demandé sur 2013-06-09 10:45:10
5
réponses

Reinterpret structure avec des membres du même type qu'un tableau d'une manière conforme à la norme [dupliquer]

cette question a déjà une réponse ici: Coulée double tableau à une structure de d ... tatic_assert n'est pas déclenché implique que operator[] fait ce qui est attendu et n'invoque pas UB à l'exécution?
demandé sur 2017-01-02 00:24:24