liurenhua / google-breakpad

Automatically exported from code.google.com/p/google-breakpad
0 stars 0 forks source link

support C++11 #586

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Include breakpad header in any c++11 project

What is the expected output? What do you see instead?
It should compile, instead it fail to build:

breakpad/src/client/linux/minidump_writer/linux_dumper.h:53:15: error: ISO C++ 
forbids declaration of ‘typeof’ with no type [-fpermissive]
 typedef typeof(((struct user*) 0)->u_debugreg[0]) debugreg_t;
               ^
breakpad/src/client/linux/minidump_writer/linux_dumper.h:53:15: error: typedef 
‘google_breakpad::typeof’ is initialized (use decltype instead)
breakpad/src/client/linux/minidump_writer/linux_dumper.h:63:15: error: ISO C++ 
forbids declaration of ‘typeof’ with no type [-fpermissive]
 typedef typeof(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
               ^
breakpad/src/client/linux/minidump_writer/linux_dumper.h:63:15: error: typedef 
‘google_breakpad::typeof’ is initialized (use decltype instead)
breakpad/src/client/linux/minidump_writer/linux_dumper.h:82:3: error: 
‘debugreg_t’ does not name a type
   debugreg_t dregs[8];
   ^
breakpad/src/client/linux/minidump_writer/linux_dumper.h:133:25: error: 
‘elf_aux_val_t’ was not declared in this scope
   const wasteful_vector<elf_aux_val_t>& auxv() { return auxv_; }
                         ^
breakpad/src/client/linux/minidump_writer/linux_dumper.h:133:38: error: 
template argument 1 is invalid
   const wasteful_vector<elf_aux_val_t>& auxv() { return auxv_; }
                                      ^
breakpad/src/client/linux/minidump_writer/linux_dumper.h:211:19: error: 
‘elf_aux_val_t’ was not declared in this scope
   wasteful_vector<elf_aux_val_t> auxv_;
                   ^
breakpad/src/client/linux/minidump_writer/linux_dumper.h:211:32: error: 
template argument 1 is invalid
   wasteful_vector<elf_aux_val_t> auxv_;
                                ^
make: *** [main.o] Error 1

Original issue reported on code.google.com by benapetr@gmail.com on 5 May 2014 at 6:47

GoogleCodeExporter commented 9 years ago
breakpad/src/third_party/lss/linux_syscall_support.h:1488:20: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                    ".globl "SYS_SYSCALL_ENTRYPOINT"\n"
                    ^
breakpad/src/third_party/lss/linux_syscall_support.h:1489:20: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                    ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n"
                    ^
breakpad/src/third_party/lss/linux_syscall_support.h:1495:20: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                    "mov  "SYS_SYSCALL_ENTRYPOINT"@GOT(%0), %0\n"
                    ^
breakpad/src/third_party/lss/linux_syscall_support.h:1502:28: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                            ".globl "SYS_SYSCALL_ENTRYPOINT"\n"                \
                            ^
breakpad/src/third_party/lss/linux_syscall_support.h:1503:28: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                            ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n"           \
                            ^
breakpad/src/third_party/lss/linux_syscall_support.h:1510:28: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                            "mov  "SYS_SYSCALL_ENTRYPOINT"@GOT(%%eax), %%eax\n"\
                            ^
breakpad/src/third_party/lss/linux_syscall_support.h:1782:20: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                    ".globl "SYS_SYSCALL_ENTRYPOINT"\n"
                    ^
breakpad/src/third_party/lss/linux_syscall_support.h:1783:20: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                    ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n"
                    ^
breakpad/src/third_party/lss/linux_syscall_support.h:1785:20: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
                    "mov "SYS_SYSCALL_ENTRYPOINT"@GOTPCREL(%%rip), %0\n"
                    ^
breakpad/src/third_party/lss/linux_syscall_support.h:1793:15: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
               ".globl "SYS_SYSCALL_ENTRYPOINT"\n"                             \
               ^
breakpad/src/third_party/lss/linux_syscall_support.h:1794:15: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
               ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n"                        \
               ^
breakpad/src/third_party/lss/linux_syscall_support.h:1796:15: warning: invalid 
suffix on literal; C++11 requires a space between literal and identifier 
[-Wliteral-suffix]
               "mov "SYS_SYSCALL_ENTRYPOINT"@GOTPCREL(%%rip), %%rcx\n"         \
               ^

Original comment by benapetr@gmail.com on 5 May 2014 at 6:49

GoogleCodeExporter commented 9 years ago
This has been broken for some time.

Original comment by ted.mielczarek on 5 May 2014 at 7:00