June 07, 2017
https://bugzilla.gdcproject.org/show_bug.cgi?id=260

            Bug ID: 260
           Summary: Underlying D string types should match correct
                    lengths.
           Product: GDC
           Version: development
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gdc
          Assignee: ibuclaw@gdcproject.org
          Reporter: ibuclaw@gdcproject.org

---

import gcc.builtins;

char *foo(char *buffer)
{
  return __builtin_strcat (&buffer[0], "Li");
}

---

$ gdc test.d -Werror
test.d: In function ‘foo’:
test.d:5:3: error: ‘__builtin_memcpy’ reading 3 bytes from a region of size 2
[-Werror=stringop-overflow=]
   return __builtin_strcat (&buffer[0], "Li");
   ^
cc1d: all warnings being treated as errors

---

This happens because although "Li" is a null terminated string, we give it the type char[2]*.

-- 
You are receiving this mail because:
You are watching all bug changes.