[PATCH, C++] Fix pr43779

Shujing Zhao pearly.zhao@oracle.com
Fri Apr 30 05:25:00 GMT 2010


On 04/29/2010 06:22 PM, Gabriel Dos Reis wrote:
> On Thu, Apr 29, 2010 at 2:54 AM, Shujing Zhao <pearly.zhao@oracle.com> wrote:
>> On 04/28/2010 06:49 PM, Manuel López-Ibáńez wrote:
>>> On 28 April 2010 12:48, Manuel López-Ibáńez <lopezibanez@gmail.com> wrote:
>>>> On 28 April 2010 12:01, Shujing Zhao <pearly.zhao@oracle.com> wrote:
>>>>> Hi,
>>>>>
>>>>> This patch fixed pr43779 that emits the diagnostic for easy translation.
>>>>> Tested on i686-pc-linux-gnu with no regression. OK for trunk?
>>>>> Since it is reported for 4.5.0, should gcc-4_5-branch be fixed too?
>>>> Being picky, a static function that abstracts out this code with a
>>>> boolean for fewer/too many will be shorter (check the boolean last to
>>>> choose the appropriate string), and make the original function shorter
>>>> as well.
>>> In fact, that the function takes a location parameter would be even
>>> better, so when we get the correct location, only the calls need to be
>>> updated.
>>>
>>>  error_at (loc,
>>>             (too_many_p)
>>>             ? _("too many arguments to constructor %q#D")
>>>             : _("too few arguments to constructor %q#D"),
>>>           fndecl);
>>>
>> Manuel, thanks for the reply.
>> The updated patch is add a static function warn_args_num to print the
>> diagnostics. Tested on i686-pc-linux-gnu and no regression.
>>
>> Is it ok?
> 
> Make sure you follow the GCC coding standard for the ternary operator
> " ? : " when the arguments spans multiple lines.  OK.
Ok. Fix the problems and Retested.
Change

+           error_at (loc, too_many_p
+                     ? G_("too many arguments to constructor %q#D")
+                     : G_("too few arguments to constructor %q#D"),

to

+           error_at (loc,
+                     too_many_p
+                     ? G_("too many arguments to constructor %q#D")
+                     : G_("too few arguments to constructor %q#D"),

Change
+           warn_args_num (input_location, fndecl, true /* too_manay_p */);
to
+           warn_args_num (input_location, fndecl, /*too_many_p=*/true);

Change
+    error (too_many_p ? G_("too many arguments to function")
to
+    error_at (loc, too_many_p ? G_("too many arguments to function")

Is it ok?

Thanks
Pearly


-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr43779-3.patch
Type: text/x-patch
Size: 3697 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100430/fb7b8ab8/attachment.bin>


More information about the Gcc-patches mailing list