[cfe-commits] r62725 - in /cfe/trunk: lib/Lex/PTHLexer.cpp test/SemaObjC/cocoa.m
Daniel Dunbar
daniel at zuster.org
Wed Jan 21 15:03:54 PST 2009
Couldn't code like this be wrapped in a simple class which would
centralize the format (even if the actual reading is still distributed
throughout the code)?
That is,
--
const unsigned char *OffsetPtr = CurPtr + (1 + 1 + 3);
const unsigned char *OffsetPtr = CurPtr + (DISK_TOKEN_SIZE - 4);
uint32_t Offset = Read32(OffsetPtr);
--
could be
--
uint32_t Offset = DiskTokenPtr(CurPtr).Read32();
--
and somewhere else there would be
--
class DiskTokenPtr {
const unsigned char *Ptr;
public:
DiskTokenPtr(const unsigned char *_Ptr) : Ptr(_Ptr) {}
uint32_t ReadIdentifier() { return Read32(Ptr + ...); }
uint32_t ReadOffset() { return Read32(Ptr + ...); }
}
--
Etc.
- Daniel
On Wed, Jan 21, 2009 at 2:41 PM, Ted Kremenek <kremenek at apple.com> wrote:
> Author: kremenek
> Date: Wed Jan 21 16:41:38 2009
> New Revision: 62725
>
> URL: http://llvm.org/viewvc/llvm-project?rev=62725&view=rev
> Log:
> Fix <rdar://problem/6512717> by correctly reading the right offset in the token data in PTHLexer::getSourceLocation().
>
> Modified:
> cfe/trunk/lib/Lex/PTHLexer.cpp
> cfe/trunk/test/SemaObjC/cocoa.m
>
> Modified: cfe/trunk/lib/Lex/PTHLexer.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PTHLexer.cpp?rev=62725&r1=62724&r2=62725&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Lex/PTHLexer.cpp (original)
> +++ cfe/trunk/lib/Lex/PTHLexer.cpp Wed Jan 21 16:41:38 2009
> @@ -324,7 +324,7 @@
> // handling a #included file. Just read the necessary data from the token
> // data buffer to construct the SourceLocation object.
> // NOTE: This is a virtual function; hence it is defined out-of-line.
> - const unsigned char *OffsetPtr = CurPtr + (1 + 1 + 3);
> + const unsigned char *OffsetPtr = CurPtr + (DISK_TOKEN_SIZE - 4);
> uint32_t Offset = Read32(OffsetPtr);
> return FileStartLoc.getFileLocWithOffset(Offset);
> }
>
> Modified: cfe/trunk/test/SemaObjC/cocoa.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/cocoa.m?rev=62725&r1=62724&r2=62725&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/cocoa.m (original)
> +++ cfe/trunk/test/SemaObjC/cocoa.m Wed Jan 21 16:41:38 2009
> @@ -1,5 +1,6 @@
> // RUN: clang %s -print-stats &&
> -// RUN: clang -x objective-c-header -o %t %s && clang -token-cache %t %s
> +// RUN: clang -x objective-c-header -o %t %s && clang -token-cache %t %s &&
> +// RUN: clang -x objective-c-header -o %t %s && clang -token-cache %t %s -E %s -o /dev/null
> #ifdef __APPLE__
> #include <Cocoa/Cocoa.h>
> #endif
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list