On May 13, 2:04=A0am, Lionel B <m...@[EMAIL PROTECTED]
> wrote:
> On Tue, 13 May 2008 08:55:23 +0000, Lionel B wrote:
> > On Mon, 12 May 2008 16:02:54 -0700, Greg Herlihy wrote:
>
> >> On May 12, 3:08=A0pm, Lionel B <m...@[EMAIL PROTECTED]
> wrote:
>
> >>> On my system (compiler GCC 4.1.2) with
>
> >>> =A0 float f =3D 139.4;
>
> >>> and compiled with:
>
> >>> =A0 g++ -std=3Dc++98 -pedantic -Wall -Wextra
>
> >>> I get no warnings and the output is 'Expected result'. Should the
> >>> compiler warn if there's an implicit conversion? Or only if it
results=
> >>> in loss of precision?
>
> >> The g++ compiler can issue a warning if you want one:
>
> >> =A0 =A0g++ -Wshorten-64-to-32
>
> > cc1plus: error: unrecognized command line option "-Wshorten-64-to-32"
>
> > GCC 4.3.0 on x86_64
>
> > Anyway, that doesn't sound like a floating-point warning...
>
> This does it: -Wconversion. With
>
> =A0 float f =3D 139.4;
>
> warning: conversion to =91float=92 alters =91double=92 constant value
On my machine, using gcc (version 4.2.1 (Apple Inc. build 5559)) -
Wconversion re****ts nothing.
Whereas -Wshorten-64-to-32 re****ts:
warning: implicit conversion shortens 64-bit value into a 32-bit
value
Greg


|