Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22197

Make gcc warn on conversion within if

$
0
0

Is there any way to have gcc or g++ emit a warning when an implicit conversion within an if, something like if(25.0), is used?

This question is inspired by a bug I recently observed where a parenthesis was mis-placed, and the if statement has the unexpected behavior illustrated in the example below.I understand from this discussion on the comma operator that this is valid (although ugly) code, but I would like to get a warning.I tried -Wconversion -Wall -pedantic with g++ (GCC) 4.1.2 and g++ (GCC) 4.6.3 without any luck.

#include <cstdio>bool passMin(float val, float minval=10.) {return minval<val;}int main () {  float val(20.0), minval(25.0);  if(passMin(val), minval) printf(" pass (p( ), )"); else printf(" fail (p( ), )");  printf("\n");  if(passMin(val, minval)) printf(" pass (p( , ))"); else printf(" fail (p( , ))");  printf("\n");}

This produces:

 pass (p( ), ) fail (p( , ))

Viewing all articles
Browse latest Browse all 22197

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>