This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] gdb: Use std::max and std::min throughout


On 16-09-15 12:52 PM, Pedro Alves wrote:
> Otherwise including <string> or some other C++ header is broken.
> E.g.:
> 
>   In file included from /opt/gcc/include/c++/7.0.0/bits/char_traits.h:39:0,
> 		   from /opt/gcc/include/c++/7.0.0/string:40,
> 		   from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/infrun.c:68:
>   /opt/gcc/include/c++/7.0.0/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2
>        min(const _Tp& __a, const _Tp& __b, _Compare __comp)
> 							  ^
>   /opt/gcc/include/c++/7.0.0/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2
>        max(const _Tp& __a, const _Tp& __b, _Compare __comp)
> 							  ^
>   In file included from .../src/gdb/infrun.c:21:0:
> 
> To the best of my grepping abilities, I believe I adjusted all min/max
> calls.

If you missed one in the code you compile, it would show up as a compilation error.
For the rest (native files?), if you missed one it will be an easy fix.

There are a few places where it makes the lines too long.  I personally don't mind,
since I finally upgraded to a terminal wider than 80 characters, but it shouldn't be
too long to fix.  If you don't have your own already, may I suggest using this command
line to find long lines?

$ git show | sed "s|\t|        |g" | sed -r 's|^\+(.{81,1000})|+\1 TOO LONG|g' | less

It displays "TOO LONG" at the end of the line when an added line overflows 80 chars.

> gdb/ChangeLog:
> 2016-09-15  Pedro Alves  <palves@redhat.com>
> 
> 	* defs.h (min, max): Delete.
> 	* aarch64-tdep.c: Include <algorigthm> and use std::min and

algorigthm -> algorithm.

> 	std::max throughout.
> 	* aarch64-tdep.c: Likewise.
> 	* alpha-tdep.c: Likewise.
> 	* amd64-tdep.c: Likewise.
> 	* amd64-windows-tdep.c: Likewise.
> 	* arm-tdep.c: Likewise.
> 	* avr-tdep.c: Likewise.
> 	* breakpoint.c: Likewise.
> 	* btrace.c: Likewise.
> 	* ctf.c: Likewise.
> 	* disasm.c: Likewise.
> 	* doublest.c: Likewise.
> 	* dwarf2loc.c: Likewise.
> 	* dwarf2read.c: Likewise.
> 	* environ.c: Likewise.
> 	* exec.c: Likewise.
> 	* f-exp.y: Likewise.
> 	* findcmd.c: Likewise.
> 	* ft32-tdep.c: Likewise.
> 	* gcore.c: Likewise.
> 	* hppa-tdep.c: Likewise.
> 	* i386-darwin-tdep.c: Likewise.
> 	* i386-tdep.c: Likewise.
> 	* linux-thread-db.c: Likewise.
> 	* lm32-tdep.c: Likewise.
> 	* m32r-tdep.c: Likewise.
> 	* m88k-tdep.c: Likewise.
> 	* memrange.c: Likewise.
> 	* minidebug.c: Likewise.
> 	* mips-tdep.c: Likewise.
> 	* moxie-tdep.c: Likewise.
> 	* nds32-tdep.c: Likewise.
> 	* nios2-tdep.c: Likewise.
> 	* nto-procfs.c: Likewise.
> 	* parse.c: Likewise.
> 	* ppc-sysv-tdep.c: Likewise.
> 	* probe.c: Likewise.
> 	* record-btrace.c: Likewise.
> 	* remote.c: Likewise.
> 	* rs6000-tdep.c: Likewise.
> 	* rx-tdep.c: Likewise.
> 	* s390-linux-nat.c: Likewise.
> 	* s390-linux-tdep.c: Likewise.
> 	* ser-tcp.c: Likewise.
> 	* sh-tdep.c: Likewise.
> 	* sh64-tdep.c: Likewise.
> 	* source.c: Likewise.
> 	* sparc-tdep.c: Likewise.
> 	* symfile.c: Likewise.
> 	* target-memory.c: Likewise.
> 	* target.c: Likewise.
> 	* tic6x-tdep.c: Likewise.
> 	* tilegx-tdep.c: Likewise.
> 	* tracefile-tfile.c: Likewise.
> 	* tracepoint.c: Likewise.
> 	* valprint.c: Likewise.
> 	* value.c: Likewise.
> 	* xtensa-tdep.c: Likewise.
> 	* cli/cli-cmds.c: Likewise.
> 	* compile/compile-object-load.c: Likewise.

I noticed that you didn't list all affected functions in your ChangeLog,
only the files.  I think it makes sense for those across-the-board changes,
I'll probably do the same some day :).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]