Articles of avertissements

Avertissement de suppression de l’atsortingbut gcc init_priority

G ++ me donne des avertissements concernant l’atsortingbut init_priority: g++ -c -o src/core/ModuleManager.o -Wall -fPIC -imacros ./src/configs/config.hpp -O2 -I./src/include src/core/ModuleManager.cpp src/core/ModuleManager.cpp:27:29: warning: requested init_priority is reserved for internal use Existe-t-il un moyen de supprimer cet avertissement spécifique?

Comment supprimer les avertissements LNK4217 et LNK4049

J’ai des avertissements sur l’étape du lien. Ces avertissements apparaissent uniquement en mode de libération. Mon programme est composé de deux parties: une bibliothèque qui génère une .lib et un exécutable qui utilise cette bibliothèque. Lorsque je construis la bibliothèque, je n’ai aucun avertissement. Mais lorsque je construis mon exécutable, sur le lien, j’ai les […]

init_seg et avertissement C4073 du code de la bibliothèque?

Nous avons une bibliothèque C ++. Il comporte quatre objects statiques sensibles à l’ordre d’initialisation (deux d’entre eux sont des chaînes de la bibliothèque standard). Nous utilisons init_seg(lib) pour contrôler l’ordre d’initialisation des objects statiques C ++ dans la bibliothèque. Le fichier source qui l’utilise est compilé et utilisé dans une bibliothèque de liens dynamics […]

Atsortingbut warn_unused_result et retour d’object de classe

Veuillez considérer le code suivant: class cls { }; __atsortingbute__((warn_unused_result)) cls fn1() { return cls(); } __atsortingbute__ ((warn_unused_result)) int fn2() { return 1; } int main() { auto x = fn1(); (void)x; auto y = fn2(); (void)y; return 0; } Lorsque je comstack ceci avec -Wall -Wextra avec gcc 5.4.0, un avertissement -Wall -Wextra : […]

Avertissement lorsque la variable déclarée par rvalue sort de la scope et qu’elle n’est pas déplacée

Existe-t-il un moyen de faire un compilateur ( clang ++ ou g ++ ) pour l’informer des prochaines situations static_assert(!std::is_lvalue_reference::value); void g(T); void f(T x) { T y = x; #if 0 // turns warning off g(std::move(x)); #endif } // warning here: x goes out of scope, but not moved from ou static_assert(!std::is_reference::value); T f() […]

Source d’avertissement inconnue: «Impossible de trouver le symbole de l’éditeur de liens pour la table virtuelle pour…»

Depuis quelques jours, je reçois un message d’avertissement lors du débogage. Je ne trouve pas d’où ça vient. J’étais déjà sur Google et j’ai trouvé des choses du genre parce que j’ai une variable statique. Mais le sortir ne change rien. C’est la méthode main : int main(int argc, char* argv[]) { if (argc != […]

Pourquoi n’y a-t-il pas d’avertissement sur une déclaration sans initialisation dans une boucle for?

J’ai essayé de comstackr le code suivant avec g ++ (version 4.8.2 de gcc (Debian 4.8.2-1)), avec l’indicateur -Wextra (l’ajout de l’indicateur -Wextra ne change rien pour moi). #include using namespace std ; int main() { int i ; cout << i << endl ; } Il a donné cet avertissement: test.cpp: In function ‘int […]

memset utilisé avec le paramètre longueur zéro: ignorer ou surveiller?

Je ne parviens pas à trouver des informations concernant l’avertissement suivant lors de la liaison d’une bibliothèque dynamic: In function `MyClass::myfunc()’: MyClass.cpp:(.text+0x14e4): warning: memset used with constant zero length parameter; this could be due to transposed parameters Voici un extrait de myfunc : void MyClass::myfunc() { vector::const_iterator it; for (it = m_vars.begin(); it != m_vars.end(); […]

cppcheck pense que j’ai “Code redondant: j’ai trouvé une instruction commençant par une constante numérique”

Cppcheck (version 1.46.1) donne l’avertissement suivant pour une énumération semblable à celle-ci: enum DATABASE_TYPE { DATABASE_TYPE_UNKNOWN = -1, // <- line of warning DATABASE_TYPE_ORACLE, DATABASE_TYPE_MSACCESS }; Code redondant: trouvé une instruction commençant par une constante numérique Je ne pense pas que ce soit redondant. C’est assez important de pouvoir faire des choses comme ça. Est-ce […]

Quel type dois-je utiliser pour la différence d’iterator afin d’éliminer les avertissements de «perte possible de données»?

J’ai besoin d’une règle commune pour les avertissements en mode x64. Quel est le meilleur chemin? Considérons les lignes suivantes de certains codes const int N = std::max_element(cont.begin(), cont.end()) – cont.begin(); ou const int ARR_SIZE = 1024; char arr[ARR_SIZE]; //… const int N = std::max_element(arr, arr + ARR_SIZE) – arr; C’est mon code habituel. Je […]