Skip to content
  • Daniel Sanders's avatar
    4788179a
    [libcxx] Fix definition of regex_traits::__regex_word on big-endian glibc systems · 4788179a
    Daniel Sanders authored
    Summary:
    On glibc, the bits used for the various character classes is endian dependant
    (see _ISbit() in ctypes.h) but __regex_word does not account for this and uses
    a spare bit that isn't spare on big-endian. On big-endian, it overlaps with the
    bit for graphic characters which causes '-', '@', etc. to be considered a word
    character.
    
    Fixed this by defining the value using _ISbit(15) on MIPS glibc systems. We've
    restricted this to MIPS for now to avoid the risk of introducing failures in
    other targets.
    
    Fixes PR26476.
    
    Reviewers: hans, mclow.lists
    
    Subscribers: dsanders, cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D17132
    
    llvm-svn: 261088
    4788179a
    [libcxx] Fix definition of regex_traits::__regex_word on big-endian glibc systems
    Daniel Sanders authored
    Summary:
    On glibc, the bits used for the various character classes is endian dependant
    (see _ISbit() in ctypes.h) but __regex_word does not account for this and uses
    a spare bit that isn't spare on big-endian. On big-endian, it overlaps with the
    bit for graphic characters which causes '-', '@', etc. to be considered a word
    character.
    
    Fixed this by defining the value using _ISbit(15) on MIPS glibc systems. We've
    restricted this to MIPS for now to avoid the risk of introducing failures in
    other targets.
    
    Fixes PR26476.
    
    Reviewers: hans, mclow.lists
    
    Subscribers: dsanders, cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D17132
    
    llvm-svn: 261088
Loading