Resultados da pesquisa a pedido "type-punning"

4 a resposta

Digite puncionando uma estrutura em C e C ++ por meio de uma união

Eu compilei isso no gcc e no g ++ com pedante e não recebo um aviso em nenhum deles: #include <stdio.h> #include <stdlib.h> #include <string.h> struct a { struct a *next; int i; }; struct b { struct b *next; int i; }; struct c { int x, x2, ...

3 a resposta

gcc: Como usar o __attribute ((__ may_alias__)) corretamente para evitar o aviso de "exclusão do ponteiro puncionado por tipo"

Eu tenho algum código que usa punção de tipo para evitar ter que chamar o membro de "objeto" construtor e destruidor, a menos que / até que seja realmente necessário usar o objet Funciona bem, mas no g ++ 4.4.3, recebo este temido aviso do ...

6 a resposta

@Fix para remover o ponteiro com punção de tipo quebrará o aliasing estrito

Estou tentando corrigir dois avisos ao compilar um programa específico usando o GCC. Os avisos são: warning: o cancelamento da referência ao ponteiro puncionado por tipo quebrará as regras de alias estrito [-Wstrict-aliasing] e os dois ...

3 a resposta

Buffers de memória compartilhada em C ++ sem violar regras estritas de alias

Eu estou lutando com a implementação de um buffer de memória compartilhada sem quebrar as regras de aliasing rigorosas do C99.Suponha que eu tenha algum códi...

2 a resposta

Aliasing estrito de ponteiro: o acesso através de um ponteiro 'volátil' / referência é uma solução?

Na esteira deum problema específico [https://stackoverflow.com/questions/2980920/strict-pointer-aliasing-any-solution-for-a-specific-problem/2981505#2981505] , uma resposta automática e comentários, gostaria de entender se é uma solução adequada, ...

5 a resposta

Punção de caracteres com segurança * para dobrar em C

Em um código abertoprograma que escrevi [http://honeypot.net/project/pgdbf], Estou lendo dados binários (gravados por outro programa) de um arquivo e produzindo ints, dobros e outros tipos de dados variados. Um dos desafios é que ele precisa ser ...

2 a resposta

bits flutuantes e aliasing estrito

Estou tentando extrair os bits de um flutuador sem invocar um comportamento indefinido. Aqui está minha primeira tentativa: unsigned foo(float x) { unsigned* u = (unsigned*)&x; return *u; }Pelo que entendi, isso não garante que funcione devido a ...

2 a resposta

Aliasing estrito do C ++ quando não estiver usando o ponteiro retornado pelo posicionamento new

Isso pode causar um comportamento indefinido? uint8_t storage[4]; // We assume storage is properly aligned here. int32_t* intPtr = new((void*)storage) int32_t(4); // I know this is ok: int32_t value1 = *intPtr; *intPtr = 5; // But can one of the ...

1 a resposta

Armazenamento baseado em char genérico [] e evitando o UB relacionado ao estrito aliasing

6 a resposta

Reutilizando um buffer flutuante para dobras sem comportamento indefinido

Em uma função específica do C ++, por acaso tenho um ponteiro para um grande buffer de flutuadores que quero usar temporariamente para armazenar metade do número de duplas. Existe um método para usar esse buffer como espaço temporário para ...