diff options
author | John McCall <rjmccall@apple.com> | 2009-11-07 03:30:10 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2009-11-07 03:30:10 +0000 |
commit | 680523a91dd3351389667c8de17121ba7ae82673 (patch) | |
tree | 527a48bc13e3c747dc444e521e38a10a00a9fee1 /include/clang/Basic | |
parent | c4df6d2c05c647a6a5770ba0c749782b6c023a3a (diff) |
Implement -Wconversion. Off by default, in the non-gcc group. There's
significant work left to be done to reduce the false-positive rate here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86326 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic')
-rw-r--r-- | include/clang/Basic/DiagnosticGroups.td | 4 | ||||
-rw-r--r-- | include/clang/Basic/DiagnosticSemaKinds.td | 16 |
2 files changed, 18 insertions, 2 deletions
diff --git a/include/clang/Basic/DiagnosticGroups.td b/include/clang/Basic/DiagnosticGroups.td index 4146e2d5c4..76147ffed8 100644 --- a/include/clang/Basic/DiagnosticGroups.td +++ b/include/clang/Basic/DiagnosticGroups.td @@ -28,7 +28,7 @@ def : DiagGroup<"cast-align">; def : DiagGroup<"cast-qual">; def : DiagGroup<"char-align">; def Comment : DiagGroup<"comment">; -def : DiagGroup<"conversion">; +def Conversion : DiagGroup<"conversion">; def : DiagGroup<"declaration-after-statement">; def : DiagGroup<"disabled-optimization">; def : DiagGroup<"discard-qual">; @@ -162,4 +162,4 @@ def : DiagGroup<"endif-labels", [ExtraTokens]>; // endif-labels = endif-tokens // A warning group for warnings that we want to have on by default in clang, // but which aren't on by default in GCC. def NonGCC : DiagGroup<"non-gcc", - [SignCompare]>; + [SignCompare, Conversion]>; diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index a3cce6c163..e1cbab692e 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -632,6 +632,22 @@ def err_cconv_knr : Error< def err_cconv_varargs : Error< "variadic function cannot use '%0' calling convention">; +def warn_impcast_vector_scalar : Warning< + "implicit cast turns vector to scalar: %0 to %1">, + InGroup<DiagGroup<"conversion">>, DefaultIgnore; +def warn_impcast_complex_scalar : Warning< + "implicit cast discards imaginary component: %0 to %1">, + InGroup<DiagGroup<"conversion">>, DefaultIgnore; +def warn_impcast_float_precision : Warning< + "implicit cast loses floating-point precision: %0 to %1">, + InGroup<DiagGroup<"conversion">>, DefaultIgnore; +def warn_impcast_float_integer : Warning< + "implicit cast turns floating-point number into integer: %0 to %1">, + InGroup<DiagGroup<"conversion">>, DefaultIgnore; +def warn_impcast_integer_precision : Warning< + "implicit cast loses integer precision: %0 to %1">, + InGroup<DiagGroup<"conversion">>, DefaultIgnore; + def warn_attribute_ignored_for_field_of_type : Warning< "%0 attribute ignored for field of type %1">; def warn_transparent_union_attribute_field_size_align : Warning< |