Issue 42002: Breakpad DWARF parser: avoid using <stdint.h> type
It seems that a use of the <stdint.h> type uintptr_t has crept into the DWARF parser. This defines a workaround for the GNU compilers (tested on both Mac and Linux) which will raise an error if it doesn't work. My personal preference would be just to assume that the <stdint.h> header is available and use the standard types everywhere, but 1) that would be a large change, likely to make merges with the other branches of the DWARF parser more difficult, and 2) it would make it quite difficult to build under Microsoft Visual Studio, which doesn't have the <stdint.h> header; Microsoft has said they have no plans to provide it, as they would rather "focus their efforts" on C++ and .NET. a=jimblandy, r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@448 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
07466260e2
commit
bdd7ca54cd
3 changed files with 11 additions and 3 deletions
|
@ -605,7 +605,7 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader,
|
|||
const char* start,
|
||||
struct LineStateMachine* lsm,
|
||||
size_t* len,
|
||||
uintptr_t pc,
|
||||
uintptr pc,
|
||||
bool *lsm_passes_pc) {
|
||||
size_t oplen = 0;
|
||||
size_t templen;
|
||||
|
@ -806,7 +806,8 @@ void LineInfo::ReadLines() {
|
|||
while (!lsm.end_sequence) {
|
||||
size_t oplength;
|
||||
bool add_line = ProcessOneOpcode(reader_, handler_, header_,
|
||||
lineptr, &lsm, &oplength, (uintptr_t)-1, NULL);
|
||||
lineptr, &lsm, &oplength, (uintptr)-1,
|
||||
NULL);
|
||||
if (add_line)
|
||||
handler_->AddLine(lsm.address, lsm.file_num, lsm.line_num,
|
||||
lsm.column_num);
|
||||
|
|
|
@ -110,7 +110,7 @@ class LineInfo {
|
|||
const char* start,
|
||||
struct LineStateMachine* lsm,
|
||||
size_t* len,
|
||||
uintptr_t pc,
|
||||
uintptr pc,
|
||||
bool *lsm_passes_pc);
|
||||
|
||||
private:
|
||||
|
|
|
@ -43,4 +43,11 @@ typedef unsigned short uint16;
|
|||
typedef unsigned int uint32;
|
||||
typedef unsigned long long uint64;
|
||||
|
||||
#ifdef __PTRDIFF_TYPE__
|
||||
typedef __PTRDIFF_TYPE__ intptr;
|
||||
typedef unsigned __PTRDIFF_TYPE__ uintptr;
|
||||
#else
|
||||
#error "Can't find pointer-sized integral types."
|
||||
#endif
|
||||
|
||||
#endif // _COMMON_DWARF_TYPES_H__
|
||||
|
|
Loading…
Reference in a new issue