Bug #66803 Allow compilation using Clang in C++11 mode

Submitted: 13 Sep 2012 11:28 Modified: 2 Dec 2013 17:56
Reporter: Michael Gmelin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.5.27 OS:Any
Assigned to: CPU Architecture:Any
Tags: C++11, Clang, Contribution, libc++

[13 Sep 2012 11:28] Michael Gmelin
Description:
Those patches add static_cast<int>(...) in various places, since the
implicit type conversation from size_t (return value of my_offsetof)
to int (member offset of struct File_option) is not allowed anymore
when using clang++ -std=c++11.

See also:
http://www.freebsd.org/cgi/query-pr.cgi?pr=171546

How to repeat:
Compile mysql server using "clang++ -std=c++11" or "clang++ -std=c++11 -stdlib=libc++". Gcc is a little bit more forgiving, so compiling using "gcc47 -std=c++11" will work, but emit a couple of ugly warnings.

Suggested fix:
Apply the patches that will allow compilation but adding static_casts like described above.
[13 Sep 2012 11:33] Michael Gmelin
Patch to allow compilation with clang in C++11 mode

Attachment: mysql_server_clang.patch (application/octet-stream, text), 4.43 KiB.

[14 Sep 2012 22:19] Sveta Smirnova
Thank you for the report.

Verified as described.
[2 Dec 2013 17:56] Paul DuBois
Noted in 5.7.4 changelog.

Compilation problems were fixed for errors reported by Clang and gcc
when compiling in C++11 mode.
[31 Mar 2014 14:02] Paul DuBois
Noted in 5.6.18 changelog.
[2 Jun 2014 14:00] Laurynas Biveinis
$ bzr log -r 5874
------------------------------------------------------------
revno: 5874
committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
branch nick: mysql-5.6-test
timestamp: Mon 2014-03-31 15:09:59 +0200
message:
  Backport from mysql-trunk to mysql-5.6 of:
  ------------------------------------------------------------
  revno: 7033
  committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
  branch nick: mysql-trunk-c11
  timestamp: Wed 2013-11-27 13:54:59 +0100
  message:
    Bug#14631159: ALLOW COMPILATION USING CLANG IN C++11 MODE
    
    This patch fixes the new compilation errors that are reported by Clang and GCC
    when compiling in C++11 mode. 
    
    The patch is not based on the contribution in the bug report.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.057 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.