[llvm-bugs] [Bug 40248] New: _Atomic not removed from rvalue in controlling expression of _Generic.

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Jan 7 13:57:25 PST 2019


            Bug ID: 40248
           Summary: _Atomic not removed from rvalue in controlling
                    expression of _Generic.
           Product: clang
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: anders.granlund.0 at gmail.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
                    neeilans at live.com, richard-llvm at metafoo.co.uk

Test case (prog.c):

  _Atomic int f();

  int main()
    _Generic(f(), int: 0);

Compilation command line:

  clang prog.c -Wall -Wextra -std=c11 -pedantic-errors

Observed behaviour:

  The following error message was outputed:

     error: controlling expression type '_Atomic(int)' not compatible with any
            generic association type

Expected behaviour:

  No error message.

  The program is well-formed.


  "The type of the controlling expression is the type of the expression as if
  had undergone an lvalue conversion, array to pointer conversion, or function
  to pointer conversion"

  and 6.3.2/2:

  "If the lvalue has qualified type, the value has the unqualified version
   of the type of the lvalue; additionally, if the lvalue has atomic type, the
  value has the non-atomic version of the type of the lvalue; otherwise, the
  value has the type of the lvalue."


  GCC accepts the program without outputing any error message.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190107/f4d22a49/attachment.html>

More information about the llvm-bugs mailing list