[Bug c++/90910] New: Missed namespace searching when operating on packed fields

2019-06-18 Thread gcc at brej dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90910

Bug ID: 90910
   Summary: Missed namespace searching when operating on packed
fields
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gcc at brej dot org
  Target Milestone: ---

Created attachment 46496
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46496&action=edit
Overloading operators on a packed member reproducer

When overloading operators on a packed member, if the packing size is different
than the default size of the member, the namespace of the member is not
searched for the overloaded operator.

See attached example

Within a namespace NAMESPACE, a class CLASS formed with a packed enum ENUM.
When we apply an overloaded operator (in this case "<<"), the namespace of the
ENUM os not searched for the overloaded implementation. Instead the enum is
cast into an int and the int operator is used.
It is searched correctly is the class member is not packed, or if it is packed
to 32bits (cases a and c) as it does when using clang.

[Bug c++/90910] Missed namespace searching when operating on packed fields

2019-06-18 Thread gcc at brej dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90910

--- Comment #1 from Charlie Brej  ---
Tested on 4.9.2 and 8.2.0. Fails on both.