support C++11
Closed this issue · 2 comments
GoogleCodeExporter commented
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
- Merged into: #481
GoogleCodeExporter commented
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
This has been broken for some time.
Original comment by ted.mielczarek
on 5 May 2014 at 7:00
- Changed state: Duplicate