base: Make BaseGdbRegCache::data() non constant (#1734)

The method is defined as const but the caller will actually modify the
content of the structure directly with the pointer in
BaseRemoteGDB::cmdRegW. The member access in the const method are
actually treated as const and will cause error if we use
reinterpret_cast instead.

Remove the const tag to align the expectation of the virtual method.
This commit is contained in:
ylldummy
2024-11-06 02:43:41 +08:00
committed by GitHub
parent 3e628dd1c0
commit 940f49b63b
7 changed files with 12 additions and 12 deletions

View File

@@ -77,7 +77,7 @@ class RemoteGDB : public BaseRemoteGDB
uint32_t fpscr;
} r;
public:
char *data() const override { return (char *)&r; }
char *data() override { return (char *)&r; }
size_t size() const override { return sizeof(r); }
void getRegs(ThreadContext*) override;
void setRegs(ThreadContext*) const override;
@@ -103,7 +103,7 @@ class RemoteGDB : public BaseRemoteGDB
uint32_t fpcr;
} r;
public:
char *data() const override { return (char *)&r; }
char *data() override { return (char *)&r; }
size_t size() const override { return sizeof(r); }
void getRegs(ThreadContext*) override;
void setRegs(ThreadContext*) const override;

View File

@@ -66,7 +66,7 @@ class RemoteGDB : public BaseRemoteGDB
uint32_t fir;
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;

View File

@@ -68,7 +68,7 @@ class RemoteGDB : public BaseRemoteGDB
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;
@@ -97,7 +97,7 @@ class RemoteGDB : public BaseRemoteGDB
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;

View File

@@ -137,7 +137,7 @@ class RemoteGDB : public BaseRemoteGDB
uint32_t hip;
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;
@@ -220,7 +220,7 @@ class RemoteGDB : public BaseRemoteGDB
uint64_t hip;
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;

View File

@@ -66,7 +66,7 @@ class RemoteGDB : public BaseRemoteGDB
uint32_t csr;
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;
@@ -93,7 +93,7 @@ class RemoteGDB : public BaseRemoteGDB
uint64_t y;
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;

View File

@@ -83,7 +83,7 @@ class RemoteGDB : public BaseRemoteGDB
uint32_t gs;
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;
@@ -131,7 +131,7 @@ class RemoteGDB : public BaseRemoteGDB
*/
} r;
public:
char *data() const { return (char *)&r; }
char *data() { return (char *)&r; }
size_t size() const { return sizeof(r); }
void getRegs(ThreadContext*);
void setRegs(ThreadContext*) const;

View File

@@ -93,7 +93,7 @@ class BaseGdbRegCache
*
* @ingroup api_remote_gdb
*/
virtual char *data() const = 0;
virtual char *data() = 0;
/**
* Return the size of the raw buffer, in bytes