<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/88396>88396</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
elvis operator (?:) type conversion
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
bsbernd
</td>
</tr>
</table>
<pre>
I know that the `?:` is not standard, but llvm/clang supports it, afaik. But somehow it seems to convert the type
```
bschubert2@imesrv6 test>cat elvis.cpp
enum my_status_t {
MY_SUCCESS = 0,
MY_FAIL1 = 1,
MY_FAIL2 = 2,
};
my_status_t func1()
{
return MY_SUCCESS;
}
my_status_t func2()
{
return MY_FAIL1;
}
int main(int argc, char **argv)
{
(void)argc;
(void)argv;
my_status_t status = func2() ?: func1();
return (status == MY_SUCCESS) ? 0 : -1;
}
```
```
bschubert2@imesrv6 test>g++ -g -W -Wall -Werror -o elvis elvis.cpp
bschubert2@imesrv6 test>echo $?
0
```
```
bschubert2@imesrv6 test>clang++ -g -W -Wall -Werror -o elvis elvis.cpp
elvis.cpp:24:17: error: cannot initialize a variable of type 'my_status_t' with an rvalue of type 'int'
my_status_t status = func2() ?: func1();
^ ~~~~~~~~~~~~~~~~~~
1 error generated.
```
Why is it converting from my_status_t to int?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVU1v4zYQ_TXjy8AGRcn6OOhgxzGwQHsKiqCnYCTRErsyaZAjBemhv72g5NRyNl30YwXDoPCGj_MeRzPkvW6NUiVs97A9rGjgzrqy8pVypllVtnkrv-BXY1-RO2LkTiGkAuIjxDtIBWqPxjJ6JtOQa0A-YDUw9v14BnmsezIt-uFysY49ag44nUh_3eB-YPT2rDr7iprRK3X2yBZra0bl5qP47aJAHEDsrv-puP6m18rX3VApxxISoc_KuzFFVp4hfqyJUfWj9pv6cpnDlRnOeH578Uw8-BdGyPYzgoj4868vT788PDw-PSHEBxQgH-7A4-7LT9EERZ9BcoLkDbpmnB0g3i81LBM4DaaOQOYgi_fwRUZO8eDMIrEbU3a4s-VTYvkPiCdRf0erDeOZtAGZhyW5tg73V3fkEOQO5I5cO4Is_tK6x3fxMh-tbkAW0654cfgdNH4wJwQsdcyLydqFJJzr786-b3muKkHmN5ZAtPBzpkKBgW39mRH3Bfevq7AFuQe5x3WL62dcP1Pf4_pZOWcdru1coB_L9Ht8qu4sgkyCAVOw-DF5Th_qf8j19hrvQla7KAtWTpvCoiYT2oM2mjX1-neFhCM5TVWv0J6mDxxBZos7B5nhq-YOyaAbqR_uArUJAddL_n-Vgh8e2D7iH988c2w0S8JWGeWIVbP5ju_P3Vvoi5rfe5k2LZ6cvW8-bDGIiY-rpoybIi5opcooi2Se5KLIV11JlGTFloq0rmWUFyLdprEQpKIqU3RKxEqXUshEJFEUbUUexZs6r090ivNCNOkpJgGJUGfS_Sb044117Up7P6gyz-MiXfVUqd5PrV9Ko15xAkHKMAlcGfasq6H1kIhee_Y3Ftbcq3KuCHsJjtjQEvLrXJDFfF-zfK-tWQ2uLzvmi5_wI8hjq7kbqk1tw6C4zovpyIuzv6maQR6nfDzI45TvnwEAAP__ZRzx8g">