gcc警告選項


--all-warnings 此開關缺少可用文檔

--extra-warnings 此開關缺少可用文檔

-W 不建議使用此開關;請改用 -Wextra

-Wabi 當結果與 ABI

相容的編譯器的編譯結果不同時給出警告 

-Waddress 使用可疑的內存地址時給出警告

-Waggregate-return 當返回結構、聯合或數組時給出警告

-Waliasing 為可能的虛參重疊給出警告

-Walign-commons 對 COMMON 塊對齊的警告

-Wall 啟用大部分警告信息

-Wampersand 若延續字符常量中缺少 & 則給出警告

-Warray-bounds 當數組訪問越界時給出警告

-Warray-temporaries 創建臨時數組時給出警告

-Wassign-intercept 當 Objective-C

 賦值可能為垃圾回收所介入時給出警告 

-Wattributes 當對屬性的使用不合適時給出警告

-Wbad-function-cast 當把函數轉換為不兼容類型時給出警告

-Wbuiltin-macro-redefined 當內建預處理宏未定義或重定義時給出警告

-Wc++-compat 當在 C 語言中使用了 C 與 C++

 交集以外的構造時給出警告 

-Wc++x-compat 當 C++ 構造的意義在 ISO C++ 和 ISO

 C++ x 中不同時給出警告 

-Wcast-align 當轉換指針類型導致對齊邊界增長時給出警告

-Wcast-qual 當類型轉換丟失限定信息時給出警告

-Wchar-subscripts 當下標類型為“char”時給出警告

-Wcharacter-truncation 對被截斷的字符表達式給出警告

-Wclobbered 對能為"longjmp"或"vfork"所篡改的變量給出警告

-Wcomment 對可能嵌套的注釋和長度超過一個物理行長的

 C++ 注釋給出警告 

-Wcomments -Wcomment 的同義詞

-Wconversion 當隱式類型轉換可能改變值時給出警告

-Wconversion-extra 對大多數隱式類型轉換給出警告

-Wconversion-null 將 NULL 轉換為非指針類型時給出警告

-Wcoverage-mismatch Warn in case profiles in -fprofile-use do not

 match 

-Wcpp Warn when a #warning directive is encountered

-Wctor-dtor-privacy 當所有構造函數和析構函數都是私有時給出警告

-Wdeclaration-after-statement 當聲明出現在語句后時給出警告

-Wdeprecated 使用不建議的編譯器特性、類、方法或字段時給出警告

-Wdeprecated-declarations 對 attribute((deprecated)) 聲明給出警告

-Wdisabled-optimization 當某趟優化被禁用時給出警告

-Wdiv-by-zero 對編譯時發現的零除給出警告

-Wdouble-promotion 對從“float”到“double”的隱式轉換給出警告

-Weffc++ 對不遵循《Effetive

 C++》的風格給出警告 

-Wempty-body 當 if 或 else 語句體為空時給出警告

-Wendif-labels 當 #elif 和 #endif

 后面跟有其他標識符時給出警告 

-Wenum-compare 對不同枚舉類型之間的比較給出警告

-Werror-implicit-function-declaration 不建議使用此開關;請改用

 -Werror=implicit-function-declaration 

-Wextra 打印額外(可能您並不想要)的警告信息

-Wfloat-equal 當比較浮點數是否相等時給出警告

-Wformat 對 printf/scanf/strftime/strfmon

 中的格式字符串異常給出警告 

-Wformat-contains-nul 當格式字符串包含 NUL 字節時給出警告

-Wformat-extra-args 當傳遞給格式字符串的參數太多時給出警告

-Wformat-nonliteral 當格式字符串不是字面值時給出警告

-Wformat-security 當使用格式字符串的函數可能導致安全問題時給出警告

-Wformat-yk 當 strftime 格式給出

 位記年時給出警告 

-Wformat-zero-length 對長度為 的格式字符串給出警告

-Wformat= 此開關缺少可用文檔

-Wignored-qualifiers 當類型限定符被忽略時給出警告。

-Wimplicit 對隱式函數聲明給出警告

-Wimplicit-function-declaration 對隱式函數聲明給出警告

-Wimplicit-int 當聲明未指定類型時給出警告

-Wimplicit-interface 對帶有隱式接口的調用給出警告

-Wimplicit-procedure 對沒有隱式聲明的過程調用給出警告

-Winit-self 對初始化為自身的變量給出警告。

-Winline 當內聯函數無法被內聯時給出警告

-Wint-to-pointer-cast 當將一個大小不同的整數轉換為指針時給出警告

-Wintrinsic-shadow 如果用戶過程有與內建過程相同的名字則警告

-Wintrinsics-std 當內建函數不是所選標准的一部分時給出警告

-Winvalid-offsetof 對“offsetof”宏無效的使用給出警告

-Winvalid-pch 在找到了 PCH

 文件但未使用的情況給出警告 

-Wjump-misses-init 當跳轉略過變量初始化時給出警告

-Wlarger-than- 此開關缺少可用文檔

-Wlarger-than= 當目標文件大於 N 字節時給出警告

-Wline-truncation 對被截斷的源文件行給出警告

-Wlogical-op 當邏輯操作結果似乎總為真或假時給出警告

-Wlong-long 當使用 -pedantic 時不對“long

 long”給出警告 

-Wmain 對可疑的“main”聲明給出警告

-Wmissing-braces 若初始值設定項中可能缺少花括號則給出警告

-Wmissing-declarations 當全局函數沒有前向聲明時給出警告

-Wmissing-field-initializers 若結構初始值設定項中缺少字段則給出警告

-Wmissing-format-attribute 當函數可能是 format

 屬性的備選時給出警告 

-Wmissing-include-dirs 當用戶給定的包含目錄不存在時給出警告

-Wmissing-noreturn 當函數可能是 attribute((noreturn))

 的備選時給出警告 

-Wmissing-parameter-type K&R

 風格函數參數聲明中未指定類型限定符時給出警告 

-Wmissing-prototypes 全局函數沒有原型時給出警告

-Wmudflap 當構造未被 -fmudflap 處理時給出警告

-Wmultichar 使用多字節字符集的字符常量時給出警告

-Wnested-externs 當“extern”聲明不在文件作用域時給出警告

-Wnoexcept Warn when a noexcept expression evaluates to

 false even though the expression can't actually 

 throw 

-Wnon-template-friend 在模板內聲明未模板化的友元函數時給出警告

-Wnon-virtual-dtor 當析構函數不是虛函數時給出警告

-Wnonnull 當將 NULL 傳遞給需要非 NULL

 的參數的函數時給出警告 

-Wnormalized=<id|nfc|nfkc> 對未歸一化的 Unicode 字符串給出警告

-Wold-style-cast 程序使用 C

 風格的類型轉換時給出警告 

-Wold-style-declaration 對聲明中的過時用法給出警告

-Wold-style-definition 使用舊式形參定義時給出警告

-Woverflow 算術表示式溢出時給出警告

-Woverlength-strings 當字符串長度超過標准規定的可移植的最大長度時給出警告

-Woverloaded-virtual 重載虛函數名時給出警告

-Woverride-init 覆蓋無副作用的初始值設定時給出警告

-Wpacked 當 packed

 屬性對結構布局不起作用時給出警告 

-Wpacked-bitfield-compat 當緊實位段的偏移量因 GCC .

 而改變時給出警告 

-Wpadded 當需要填補才能對齊結構成員時給出警告

-Wparentheses 可能缺少括號的情況下給出警告

-Wpmf-conversions 當改變成員函數指針的類型時給出警告

-Wpointer-arith 當在算術表達式中使用函數指針時給出警告

-Wpointer-sign 賦值時如指針符號不一致則給出警告

-Wpointer-to-int-cast 將一個指針轉換為大小不同的整數時給出警告

-Wpragmas 對錯誤使用的 pragma 加以警告

-Wproperty-assign-default Warn if a property for an Objective-C object has

 no assign semantics specified 

-Wprotocol 當繼承來的方法未被實現時給出警告

-Wreal-q-constant Warn about real-literal-constants with 'q'

 exponent-letter 

-Wredundant-decls 對同一個對象多次聲明時給出警告

-Wreorder 編譯器將代碼重新排序時給出警告

-Wreturn-type 當 C

 函數的返回值默認為“int”,或者 C++ 

 函數的返回類型不一致時給出警告 

-Wselector 當選擇子有多個方法時給出警告

-Wsequence-point 當可能違反定序點規則時給出警告

-Wshadow 當一個局部變量掩蓋了另一個局部變量時給出警告

-Wsign-compare 在有符號和無符號數間進行比較時給出警告

-Wsign-promo 當重載將無符號數提升為有符號數時給出警告

-Wstack-protector 當因為某種原因堆棧保護失效時給出警告

-Wstrict-aliasing 當代碼可能破壞強重疊規則時給出警告

-Wstrict-aliasing= 當代碼可能破壞強重疊規則時給出警告

-Wstrict-null-sentinel 將未作轉換的 NULL

 用作哨兵時給出警告 

-Wstrict-overflow 禁用假定有符號數溢出行為未被定義的優化

-Wstrict-overflow= 禁用假定有符號數溢出行為未被定義的優化

-Wstrict-prototypes 使用了非原型的函數聲明時給出警告

-Wstrict-selector-match 當備選方法的類型簽字不完全匹配時給出警告

-Wsuggest-attribute=const Warn about functions which might be candidates

 for __attribute__((const)) 

-Wsuggest-attribute=noreturn 當函數可能是 attribute((noreturn))

 的備選時給出警告 

-Wsuggest-attribute=pure Warn about functions which might be candidates

 for __attribute__((pure)) 

-Wsurprising 對“可疑”的構造給出警告

-Wswitch 當使用枚舉類型作為開關變量,沒有提供

 default 分支,但又缺少某個 case 

 時給出警告 

-Wswitch-default 當使用枚舉類型作為開關變量,但沒有提供“default”分支時給出警告

-Wswitch-enum 當使用枚舉類型作為開關變量但又缺少某個

 case 時給出警告 

-Wsync-nand 當 __sync_fetch_and_nand 和

 __sync_nand_and_fetch 

 內建函數被使用時給出警告 

-Wsynth 不建議使用。此開關不起作用。

-Wsystem-headers 不抑制系統頭文件中的警告

-Wtabs 允許使用不符合規范的制表符

-Wtraditional 使用了傳統 C

 不支持的特性時給出警告 

-Wtraditional-conversion 原型導致的類型轉換與無原型時的類型轉換不同時給出警告

-Wtrampolines Warn whenever a trampoline is generated

-Wtrigraphs 當三字母序列可能影響程序意義時給出警告

-Wtype-limits 當由於數據類型范圍限制比較結果永遠為真或假時給出警告

-Wundeclared-selector 當使用 @selector()

 卻不作事先聲明時給出警告 

-Wundef 當 #if

 指令中用到未定義的宏時給出警告 

-Wunderflow 數字常量表達式下溢時警告

-Wuninitialized 自動變量未初始化時警告

-Wunknown-pragmas 對無法識別的 pragma 加以警告

-Wunsafe-loop-optimizations 當循環因為不平凡的假定而不能被優化時給出警告

-Wunsuffixed-float-constants 對不帶后綴的浮點常量給出警告

-Wunused 啟用所有關於“XX未使用”的警告

-Wunused-but-set-parameter Warn when a function parameter is only set,

 otherwise unused 

-Wunused-but-set-variable Warn when a variable is only set, otherwise unused

-Wunused-dummy-argument 對未使用的啞元給出警告。

-Wunused-function 有未使用的函數時警告

-Wunused-label 有未使用的標號時警告

-Wunused-macros 當定義在主文件中的宏未被使用時給出警告

-Wunused-parameter 發現未使用的函數指針時給出警告

-Wunused-result 當一個帶有 warn_unused_result

 屬性的函數的調用者未使用前者的返回值時給出警告 

-Wunused-value 當一個表達式的值未被使用時給出警告

-Wunused-variable 有未使用的變量時警告

-Wvariadic-macros 指定 -pedantic

 時不為可變參數宏給出警告 

-Wvla 使用變長數組時警告

-Wvolatile-register-var 當一個寄存器變量被聲明為 volatile

 時給出警告 

-Wwrite-strings 在 C++中,非零值表示將字面字符串轉換為‘char

 *’時給出警告。在 C 

 中,給出相似的警告,但這種類型轉換是符合 

 ISO C 標准的。 

-frequire-return-statement Functions which return values must end with

  return statements


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM