[llvm-commits] [llvm] r163247 - in /llvm/trunk/lib/Target/X86/Disassembler: X86Disassembler.cpp X86DisassemblerDecoder.c X86DisassemblerDecoder.h

Chandler Carruth chandlerc at google.com
Wed Sep 5 14:22:34 PDT 2012


My question here is similar to the question on other commits here:

What is the warning or error that detects this? Is it correct?

If so, could you file bugs to add this to Clang? We shouldn't have this
type of divergent syntaxes between GCC and Clang...


On Wed, Sep 5, 2012 at 5:17 PM, Roman Divacky <rdivacky at freebsd.org> wrote:

> Author: rdivacky
> Date: Wed Sep  5 16:17:34 2012
> New Revision: 163247
>
> URL: http://llvm.org/viewvc/llvm-project?rev=163247&view=rev
> Log:
> Use const properly so that we dont remove const qualifier from region and
> MII
> by casting. Found with gcc48.
>
> Modified:
>     llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp
>     llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
>     llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
>
> Modified: llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp?rev=163247&r1=163246&r2=163247&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp (original)
> +++ llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp Wed Sep  5
> 16:17:34 2012
> @@ -44,7 +44,7 @@
>    dbgs() << file << ":" << line << ": " << s;
>  }
>
> -const char *x86DisassemblerGetInstrName(unsigned Opcode, void *mii) {
> +const char *x86DisassemblerGetInstrName(unsigned Opcode, const void *mii)
> {
>    const MCInstrInfo *MII = static_cast<const MCInstrInfo *>(mii);
>    return MII->getName(Opcode);
>  }
> @@ -95,8 +95,8 @@
>  ///                   be a pointer to a MemoryObject.
>  /// @param byte     - A pointer to the byte to be read.
>  /// @param address  - The address to be read.
> -static int regionReader(void* arg, uint8_t* byte, uint64_t address) {
> -  MemoryObject* region = static_cast<MemoryObject*>(arg);
> +static int regionReader(const void* arg, uint8_t* byte, uint64_t address)
> {
> +  const MemoryObject* region = static_cast<const MemoryObject*>(arg);
>    return region->readByte(address, byte);
>  }
>
> @@ -135,10 +135,10 @@
>
>    int ret = decodeInstruction(&internalInstr,
>                                regionReader,
> -                              (void*)&region,
> +                              (const void*)&region,
>                                loggerFn,
>                                (void*)&vStream,
> -                              (void*)MII,
> +                              (const void*)MII,
>                                address,
>                                fMode);
>
>
> Modified: llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c?rev=163247&r1=163246&r2=163247&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
> (original)
> +++ llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c Wed
> Sep  5 16:17:34 2012
> @@ -719,7 +719,7 @@
>   * @return      - 0 if the ModR/M could be read when needed or was not
> needed;
>   *                nonzero otherwise.
>   */
> -static int getID(struct InternalInstruction* insn, void *miiArg) {
> +static int getID(struct InternalInstruction* insn, const void *miiArg) {
>    uint8_t attrMask;
>    uint16_t instructionID;
>
> @@ -1621,10 +1621,10 @@
>   */
>  int decodeInstruction(struct InternalInstruction* insn,
>                        byteReader_t reader,
> -                      void* readerArg,
> +                      const void* readerArg,
>                        dlog_t logger,
>                        void* loggerArg,
> -                      void* miiArg,
> +                      const void* miiArg,
>                        uint64_t startLoc,
>                        DisassemblerMode mode) {
>    memset(insn, 0, sizeof(struct InternalInstruction));
>
> Modified: llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h?rev=163247&r1=163246&r2=163247&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
> (original)
> +++ llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h Wed
> Sep  5 16:17:34 2012
> @@ -403,7 +403,7 @@
>   *                  be read from.
>   * @return        - -1 if the byte cannot be read for any reason; 0
> otherwise.
>   */
> -typedef int (*byteReader_t)(void* arg, uint8_t* byte, uint64_t address);
> +typedef int (*byteReader_t)(const void* arg, uint8_t* byte, uint64_t
> address);
>
>  /*
>   * dlog_t - Type for the logging function that the consumer can provide to
> @@ -422,7 +422,7 @@
>    /* Reader interface (C) */
>    byteReader_t reader;
>    /* Opaque value passed to the reader */
> -  void* readerArg;
> +  const void* readerArg;
>    /* The address of the next byte to read via the reader */
>    uint64_t readerCursor;
>
> @@ -561,10 +561,10 @@
>   */
>  int decodeInstruction(struct InternalInstruction* insn,
>                        byteReader_t reader,
> -                      void* readerArg,
> +                      const void* readerArg,
>                        dlog_t logger,
>                        void* loggerArg,
> -                      void* miiArg,
> +                      const void* miiArg,
>                        uint64_t startLoc,
>                        DisassemblerMode mode);
>
> @@ -579,7 +579,7 @@
>                            unsigned line,
>                            const char *s);
>
> -const char *x86DisassemblerGetInstrName(unsigned Opcode, void *mii);
> +const char *x86DisassemblerGetInstrName(unsigned Opcode, const void *mii);
>
>  #ifdef __cplusplus
>  }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120905/1f16f66a/attachment.html>


More information about the llvm-commits mailing list