[LLVMbugs] [Bug 16340] New: _Generic selection fails to select a compatible type

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Jun 15 21:21:32 PDT 2013


            Bug ID: 16340
           Summary: _Generic  selection  fails to select a compatible type
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: johnhuela at yahoo.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 10684
  --> http://llvm.org/bugs/attachment.cgi?id=10684&action=edit
test case

_Generic selector fails to select any compatible type when a conversion from
array to pointer is needed although the standard clearly states:

$ Generic selection

The controlling expression of a generic selection is not evaluated. If a
generic selection has a generic association with a type name that is compatible
with the type of the controlling expression, then the result expression of the
generic selection is the expression in that generic association. Otherwise, the
result expression of the generic selection is the expression in the default
generic association. None of the expressions from any other generic association
of the generic selection is evaluated.

In the case of:

_Generic("test", char *: 123)

The type of the controlling expression "test" is char[5], which is clearly
compatible with the type-name char* in the generic selection which should
return the int value 123.

Currently clang reports:

test.c:5:29: error: controlling expression type 'char [5]' not compatible with
any generic association type
    printf("%d\n", _Generic("test", char *: 123));

Which is wrong.

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/20130616/a0dc3370/attachment.html>

More information about the llvm-bugs mailing list