Articles of gcc

Regex C ++ 0x no GCC

O seguinte código: #include using namespace std; (snippage) regex_search(s, m, re); funciona no Microsoft C ++, mas o GCC 4.4.3 fornece a seguinte mensagem de erro: /usr/include/c++/4.4/tr1_impl/regex:2255: warning: function inline ‘bool std :: regex_search (_Bi_iter, _Bi_iter, std :: match_results &, const std :: basic_regex &, std :: regex_constants :: match_flag_type) [com _Bi_iter = __gnu_cxx :: […]

Opções recomendadas de aviso gcc para C

Diferente de -Wall que outras advertências as pessoas acharam úteis? http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html

Erro de “uso inválido de tipo incompleto” com especialização parcial de modelo

O seguinte código: template struct foo { void bar(); }; template void foo ::bar() { } me dá o erro invalid use of incomplete type ‘struct foo’ declaration of ‘struct foo’ (Estou usando o gcc.) A minha syntax para a especialização parcial está errada? Note que se eu remover o segundo argumento: template struct foo […]

constexpr e boot de um ponteiro estático const void com reinterpret cast, qual compilador está certo?

Considere o seguinte trecho de código: struct foo { static constexpr const void* ptr = reinterpret_cast(0x1); }; auto main() -> int { return 0; } O exemplo acima compila bem em g ++ v4.9 ( Live Demo ), enquanto ele falha em compilar no clang v3.4 ( Live Demo ) e gera o seguinte erro: […]

Vetorização com buffers desalinhados: usando VMASKMOVPS: gerando uma máscara a partir de uma contagem de desalinhamento? Ou não usar esse insn em tudo

O gcc 5.3 com -O3 -mavx -mtune=haswell para x86-64 -O3 -mavx -mtune=haswell código surpreendentemente volumoso para manipular inputs potencialmente desalinhadas para código como: // convenient simple example of compiler input // I’m not actually interested in this for any real program void floatmul(float *a) { for (int i=0; i<1024 ; i++) a[i] *= 2; } […]

Linux clock_gettime (CLOCK_MONOTONIC) estranho comportamento não-monotônico

Pessoal, na minha aplicação estou usando clock_gettime(CLOCK_MONOTONIC) para medir o tempo delta entre frames (uma abordagem típica no gamedev) e de vez em quando estou enfrentando um comportamento estranho de clock_gettime(..) – valores retornados ocasionalmente não são monótonos (ou seja, o tempo anterior é maior que o tempo atual). Atualmente, se tal paradoxo acontece, simplesmente […]

Erro ao ativar o openmp – “ld: library not found for -lgomp” e erros do Clang

Eu estou tentando obter openmp para executar no meu programa no Mavericks, no entanto, quando eu tento compilar usando o flag -fopenmp recebo o seguinte erro: ld: library not found for -lgomp clang: error: linker command failed with exit code 1 (use -v to see invocation) O comando que estou executando é: gcc myProgram.cpp -fopenmp […]

como imprimir __uint128_t usando o gcc?

Existe PRIu128 que se comporta semelhante ao PRIu64 de : printf(“%” PRIu64 “\n”, some_uint64_value); Ou convertendo manualmente dígito por dígito: int print_uint128(uint128_t n) { if (n == 0) return printf(“0\n”); char str[40] = {0}; // log10(1 << 128) + '\0' char *s = str + sizeof(str) – 1; // start at the end while (n […]

Compilação falha com “relocação R_X86_64_32 contra` .rodata.str1.8 ‘não pode ser usada ao fazer um object compartilhado ”

Eu estou tentando compilar este código-fonte do makefile em um VPS, mas não está funcionando. O VPS é um 64 Cent OS Aqui está o erro completo # make gcc -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/amx/*.c g++ -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/*.cpp g++ -c -O3 -w -DLINUX -I../SDK/amx/ *.cpp g++ -O2 -fshort-wchar -shared -o […]

Diferença no desempenho entre o MSVC e o GCC para um código de multiplicação de matriz altamente otimizado

Estou vendo uma grande diferença no desempenho entre o código compilado no MSVC (no Windows) e no GCC (no Linux) para um sistema Ivy Bridge. O código faz multiplicação de matriz densa. Estou obtendo 70% dos flops de pico com GCC e apenas 50% com MSVC. Acho que posso ter isolado a diferença de como […]