Articles of clang

Poniendo a cero las referencias débiles en ARC

Si mi lectura de la reseña de “Reducir a cero las referencias débiles” de Mike Ash es correcta, las referencias débiles son como assign referencias sin ARC. Sin embargo, si el objeto al que se hace referencia es desasignado, en lugar de obtener un “puntero colgante” (es decir, un puntero que apunta a un objeto […]

¿Cómo le digo a CMake que use Clang en Windows?

Tengo un proyecto de C ++ que se crea con CMake. Normalmente construyo sobre OSX pero ahora estoy tratando de hacer que funcione una versión de Windows. Me gustaría usar Clang en Windows por razones de compatibilidad. Instalé el binario Clang 3.8 precomstackdo de LLVM: C:\Program Files\LLVM\bin\clang.exe C:\Program Files\LLVM\bin\clang++.exe También está instalado en mi PATH: […]

¿Dónde se define PATH_MAX en Linux?

¿Qué archivo de encabezado debo invocar con #include para poder usar PATH_MAX como int para dimensionar una cadena? Quiero poder declarar: char *current_path[PATH_MAX]; Pero cuando lo hago, mi comstackdor (Clang / LLVM en Linux) emite el siguiente error: recursive_find6.c:29:20: error: use of undeclared identifier ‘PATH_MAX’ char *current_path[PATH_MAX]; ^ Intenté hacer una búsqueda en Google, pero […]

¿Pueden los nuevos literales de Clang Objective-C redirigirse a clases personalizadas?

Aunque la sobrecarga de @ comienza a pisar territorio peligroso, me encanta la adición de los nuevos literales de Objective-C en Clang 3.1. Lamentablemente, los nuevos literales son de uso limitado para mí. Excepto en los casos en los que el código necesita interactuar con AppKit, he descartado el uso de las clases Foundation a […]

¿Cuál es el significado de clang’s -Wweak-vtables?

Básicamente no entiendo clang‘s -Wweak-vtables . Esto es lo que observé hasta ahora: Primer caso: (desencadena la advertencia) class A { public: virtual ~A(){} }; class B : public A { public: virtual ~B(){} }; int main(){} Caso dos: (No desencadena advertencia) class A { public: virtual ~A(){} }; int main(){} Caso tres: (No desencadena […]

Comstackndo problemas: no se puede encontrar crt1.o

Tengo un sistema Debian virtual que utilizo para desarrollar. Hoy quería probar llvm / clang. Después de instalar clang, no puedo comstackr mis viejos c-projects (con gcc). Este es el error: … /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: ld returned 1 exit […]

Cuda Clang y OS X Mavericks

Actualmente estoy intentando construir un proyecto Cuda con Cmake en MacOS 10.9. Mi comstackdor C y C ++ son gcc, pero parece que desde Mavericks gcc y g ++ se vinculan a clang, que no es compatible con CUDA. ¿Alguien ha encontrado una buena solución para usar el gcc real, o para hacer clang sin […]

Tipos de punteros incompatibles que pasan en _Generic macro

El siguiente código genera 2 advertencias que se describen en el título de la pregunta. #include static void _print_f(float *f){printf(“float : %f\n”, *f);} static void _print_i(int *i) {printf(“int : %d\n”, *i);} #define print(num) _Generic((num), \ int* : _print_i(num), \ float* : _print_f(num)) int main(void) { print((&(int){10})); print((&(float){10.f})); return 0; } SALIDA: int : 10 float […]

vincular con clang ++ en OS X genera muchos errores de símbolos no encontrados

Estoy intentando comstackr algún código de C ++ (incluidas las características de C ++ 11) en OS X 10.8 utilizando el comstackdor de clang ++. Tengo un archivo MAKE que genera los archivos del objeto OK, luego en el comando: clang++ -o Analysis.so -shared DataFile.o CR39DataFile.o Me llegan toneladas de errores sobre los símbolos que […]

Lambdas sobrecargado en C ++ y diferencias entre clang y gcc

Estoy jugando con un truco para sobrecargar lambdas en C ++. Específicamente: // For std::function #include // For std::string #include // For std::cout #include template struct overload : F… { overload(F… f) : F(f)… {} }; template auto make_overload(F… f) { return overload(f…); } int main() { std::function f = [](int x,int y) { return […]