From mboxrd@z Thu Jan 1 00:00:00 1970 From: tkarkanis@aw.sgi.com To: gcc-gnats@gcc.gnu.org Subject: c++/3974: GCC 3.0 - ternary operator and "const char *" Date: Thu, 09 Aug 2001 07:46:00 -0000 Message-id: <20010809144033.22259.qmail@sourceware.cygnus.com> X-SW-Source: 2001-08/msg00139.html List-Id: >Number: 3974 >Category: c++ >Synopsis: GCC 3.0 - ternary operator and "const char *" >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Aug 09 07:46:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Tasso Karkanis >Release: gcc version 3.0 >Organization: >Environment: GNU/Linux (Red Hat 6.2 i386) >Description: When compiling the attached file with "g++ -c const.cpp", the compiler emits for line 6 (with the ternary operator) but not for line 5. Somehow, when a string literal is evaluated by the ternary operator, the type comes out as "const char *", but otherwise, they are silently converted to "char *". >How-To-Repeat: Compile the attached file with any options you want. >Fix: Rewrite the ternary operator with an if-statement and a temporary variable of type "char *". >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="const.cpp" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="const.cpp" ZXh0ZXJuIHZvaWQgZ29vKCBjaGFyICogKTsKCnZvaWQgbW9vKCBib29sIGIgKQp7CiAgICBnb28o ICJhIiApOwogICAgZ29vKCBiID8gImEiIDogImIiICk7Cn0K