[Bug c++/15485] [tree-ssa] The C++ front-end generates a lot of (void) casts for statements (NVR)
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jan 13 04:34:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15485
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P2 |P4
CC| |msebor at gcc dot gnu.org
Known to fail| |4.0.0, 4.8.3, 4.9.3, 5.3.0,
| |6.3.0, 7.0
--- Comment #12 from Martin Sebor <msebor at gcc dot gnu.org> ---
I have no idea how serious this is but with GCC 7.0 I still see some (void)
casts in the original dump for the test case from comment #1. I'll lower the
Importance to P4 though due to the lack of activity or feedback.
$ cat t.C && gcc -S -Wformat -fdump-tree-original=/dev/stdout t.C
struct _Refcount_Base
{
volatile int _M_ref_count;
void *_M_ref_count_lock;
_Refcount_Base(int);
};
_Refcount_Base::_Refcount_Base (int __n): _M_ref_count(__n)
{
void *__tmp = 0;
_M_ref_count_lock = __tmp;
}
;; Function _Refcount_Base::_Refcount_Base(int) (null)
;; enabled by -tree-original
<<cleanup_point <<< Unknown tree: expr_stmt
*(struct
{
volatile int _M_ref_count;
void * _M_ref_count_lock;
} &) this = {CLOBBER} >>>>>;
{
<<cleanup_point <<< Unknown tree: expr_stmt
(void) (((struct _Refcount_Base *) this)->_M_ref_count = __n) >>>>>;
{
void * __tmp = 0B;
<<cleanup_point void * __tmp = 0B;>>;
<<cleanup_point <<< Unknown tree: expr_stmt
(void) (((struct _Refcount_Base *) this)->_M_ref_count_lock = __tmp) >>>>>;
}
}
More information about the Gcc-bugs
mailing list