Suspicion of a compiler bug in clang: using ternary operator in ereport()
| От | Christian Kruse |
|---|---|
| Тема | Suspicion of a compiler bug in clang: using ternary operator in ereport() |
| Дата | |
| Msg-id | 20140128154307.GC24091@defunct.ch обсуждение исходный текст |
| Ответы |
Re: Suspicion of a compiler bug in clang: using ternary
operator in ereport()
Re: Suspicion of a compiler bug in clang: using ternary operator in ereport() Re: Suspicion of a compiler bug in clang: using ternary operator in ereport() |
| Список | pgsql-hackers |
Hi,
just a word of warning: it seems as if there is compiler bug in clang
regarding the ternary operator when used in ereport(). While working
on a patch I found that this code:
ereport(FATAL, (errmsg("could not map anonymous shared memory: %m"), (errno == ENOMEM) ?
errhint("This error usually means that PostgreSQL's request " "for a shared memory segment
exceededavailable memory " "or swap space. To reduce the request size (currently "
"%zu bytes), reduce PostgreSQL's shared memory usage, " "perhaps by reducing shared_buffers or "
"max_connections.", *size) : 0));
did not emit a errhint when using clang, although errno == ENOMEM was
true. The same code works with gcc. I used the same data dir, so
config was exactly the same, too.
I reported this bug at clang.org:
<http://llvm.org/bugs/show_bug.cgi?id=18644>
Best regards,
-- Christian Kruse http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: