PATCH: PR preprocessor/36479: Short buffer in libcpp
H.J. Lu
hjl.tools@gmail.com
Mon Jun 9 21:11:00 GMT 2008
Hi Kris,
You added width to cset_converter. But you didn't set it in
all places where fields in cset_converter are changed. Can
you take a look at my patch:
http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00523.html
to see if it is correct?
Thanks.
H.J.
On Mon, Jun 9, 2008 at 2:04 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> Hi,
>
> narrow_cset_desc.width is initialized in cpp_init_iconv
> only when charset conversion is requested.
> cpp_interpret_string_notranslate doesn't set
> narrow_cset_desc.width when it initializes
> narrow_cset_desc. This patch also seems to work
> for me.
>
>
> H.J.
> ---
> 2008-06-09 H.J. Lu <hongjiu.lu@intel.com>
>
> PR preprocessor/36479
> * charset.c (cpp_interpret_string_notranslate): Also set
> narrow_cset_desc.width.
>
> On Mon, Jun 9, 2008 at 1:19 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> cvt is return from
>>
>> (gdb) step
>> converter_for_type (pfile=0x1059480, type=CPP_STRING)
>> at /net/gnu-13/export/gnu/src/gcc/gcc/libcpp/charset.c:1329
>> 1329 switch (type)
>>
>> static struct cset_converter
>> converter_for_type (cpp_reader *pfile, enum cpp_ttype type)
>> {
>> switch (type)
>> {
>> default:
>> return pfile->narrow_cset_desc;
>> case CPP_CHAR16:
>> case CPP_STRING16:
>> return pfile->char16_cset_desc;
>> case CPP_CHAR32:
>> case CPP_STRING32:
>> return pfile->char32_cset_desc;
>> case CPP_WCHAR:
>> case CPP_WSTRING:
>> return pfile->wide_cset_desc;
>> }
>> }
>>
>> It is set from
>>
>> pfile->narrow_cset_desc = init_iconv_desc (pfile, ncset, SOURCE_CHARSET);
>> pfile->narrow_cset_desc.width = CPP_OPTION (pfile, char_precision);
>>
>> It may be related to
>>
>> http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01235.html
>>
>> H.J.
>> --
>> On Mon, Jun 9, 2008 at 12:36 PM, Tom Tromey <tromey@redhat.com> wrote:
>>>>>>>> "H.J." == H J Lu <hjl.tools@gmail.com> writes:
>>>
>>> H.J.> PR preprocessor/36479
>>> H.J.> * charset.c (emit_numeric_escape): Handle 0 width.
>>>
>>> When can width be 0?
>>>
>>> This looks like PR 36379 now.
>>>
>>> I suspect perhaps some fallout from the recent patch for cpp-ization
>>> of gfortran. Though, that is just a guess.
>>>
>>> Tom
>>>
>>
>
--
H.J.
More information about the Gcc-patches
mailing list