https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111842
--- Comment #7 from n.deshmukh at samsung dot com <n.deshmukh at samsung dot com> --- How about the following code: int f(double a) { float b = a; return 0; } int g(double a) { _Float16 b = a; return 0; } It generates the following errors: <source>: In function 'int f(double)': <source>:2:15: warning: conversion from 'double' to 'float' may change value [-Wfloat-conversion] 2 | float b = a; | ^ <source>: In function 'int g(double)': <source>:7:18: warning: converting to '_Float16' from 'double' with greater conversion rank 7 | _Float16 b = a; | ^ Compiler returned: 0 Is there a reason why the second error is not categorized under -Wfloat-conversion diagnostic?