r213657 - Provide extra information in the "integer constant is too large" diagnostic. This will be used to improve other diagnostics.

Aaron Ballman aaron at aaronballman.com
Tue Jul 22 15:40:20 PDT 2014


On Tue, Jul 22, 2014 at 6:39 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>  def ext_integer_too_large_for_signed : ExtWarn<
> -  "integer constant is larger than the largest %0-bit signed integer
> type">,
> -  InGroup<DiagGroup<"implicitly-unsigned-literal">>;
> +  "integer constant evaluates to value %0 that cannot be represented as a "
> +  "%1-bit signed integer">,
> InGroup<DiagGroup<"implicitly-unsigned-literal">>;
>
> This should probably go on to say that we're interpreting the value as
> unsigned.
>
> I also think we should have separate diagnostics for the case where we
> evaluate a constant expression (which should include the 'evaluates to value
> %0' part) and the case where it's a literal (where we shouldn't). We don't
> need to repeat things that are literally present in the source code. (Sorry
> for suggesting the unconditional change here, I hadn't really looked at the
> use cases other than the one in SemaDeclAttr.cpp)

No problem! I can make those changes easily.

~Aaron



More information about the cfe-commits mailing list