Compilation warnings

Bug #1010950 reported by Michael
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Invalid
Low
Unassigned
5.5
Invalid
Low
Unassigned

Bug Description

I used default C and C++ flags.

I checked warnings for MySQL 5.5.25 (i did no find MySQL 5.5.24? sorry). This is Percona Server-specific warnings:

/home/testuser/Percona-Server-5.5.24-rel26.0/sql/sql_select.cc:17561: warning: dereferencing type-punned pointer will break strict-aliasing rules
/home/testuser/Percona-Server-5.5.24-rel26.0/sql/sql_select.cc:17570: warning: dereferencing type-punned pointer will break strict-aliasing rules

all ather warnings is the same in MySQL 5.5.25 and Percona-Server-5.5.24-rel26.0 .

Revision history for this message
Alexey Kopytov (akopytov) wrote :

The code on specified lines is not Percona (AFAIK we don't have modifications to sql_select.cc at all). So they cannot be specific to Percona:

17561 having->compile(&Item::cache_const_expr_analyzer, (uchar **)&analyzer_arg,
17562 &Item::cache_const_expr_transformer, (uchar *)&cache_flag);
17563
17564 for (JOIN_TAB *tab= join_tab + const_tables; tab < join_tab + tables ; tab++)
17565 {
17566 if (*tab->on_expr_ref)
17567 {
17568 cache_flag= FALSE;
17569 (*tab->on_expr_ref)->compile(&Item::cache_const_expr_analyzer,
17570 (uchar **)&analyzer_arg,
17571 &Item::cache_const_expr_transformer,
17572 (uchar *)&cache_flag);

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

With reference to http://forum.percona.com/index.php?t=msg&goto=9326&#msg_9326, I just tested with following: (PS 5.5.27-28.0)

export CFLAGS="-Wall -O1 -g -static-libgcc -fno-omit-frame-pointer -Wstrict-aliasing=1 -Werror=strict-aliasing -fstrict-aliasing"
export CXXFLAGS="-O1 -fno-omit-frame-pointer -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fno-exceptions -Wstrict-aliasing=1 -Werror=strict-aliasing -fstrict-aliasing"

and it built fine. -Wstrict-aliasing=1 enforces strictest aliasing rules.

On a related note, a blanket -Wall -Werror won't build. There is also a certain
CMake 'issue' which may be responsible for this. During feature testing, cmake
passes the Werror flag which causes test to fail and some cmake detection to
fail. http://sprunge.us/HcgK?diff -- the right one is where Werror was passed
and many failed. The CMake 'issue' http://cmake.org/Bug/view.php?id=8246 is
mentioned here but they haven't fixed it, instead they recommend to use
CHECK_SYMBOL_EXISTS which again is not equivalent.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

For -Werror we should just rely on MYSQL_MAINTAINER_MODE to turn it on.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-1921

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.