From patchwork Mon Jun 13 08:08:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Sivanupandi, Pitchumani" X-Patchwork-Id: 634437 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3rSlm30WpRz9snl for ; Mon, 13 Jun 2016 18:08:50 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=aa7mEsCq; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:to:cc:date:in-reply-to:references :content-type:mime-version; q=dns; s=default; b=IpPR34d6VY950kzO vI6JVIwxJE11YpT10ECdudIpLufui24bVS75m5x3Fv4IGdcniUhua1Wppq7Ek0pM AmjNgV1ixN6fpaVQbKYRdskfba0JA+pKb5/Km9QCLW1Hvde0flJ32II+Zw1IDBOJ iIOKaXK4gBQguUoM9pTKA0IT+sA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:to:cc:date:in-reply-to:references :content-type:mime-version; s=default; bh=oRFyQgHRTwoYsmoQiesfK4 vCTMw=; b=aa7mEsCqxRn0KGXi2c9dSFWTkiUWrH5CsRCYl0jQhqzpUoBmLEX3Vy X35v+2Uqfm8dOjteiYl/gJdnhDKlF2W3BR7Gtd5cklCMiW25lf7O28/g3GX+/cxO Zew1a3BEctG7co56TeS/IInqNwwiK2UOmQ+tUH0G2xVNiaIiRYNbo= Received: (qmail 113352 invoked by alias); 13 Jun 2016 08:08:42 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 113336 invoked by uid 89); 13 Jun 2016 08:08:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=Than, gol, Flash, 6408 X-HELO: eusmtp01.atmel.com Received: from eusmtp01.atmel.com (HELO eusmtp01.atmel.com) (212.144.249.242) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 13 Jun 2016 08:08:31 +0000 Received: from HNOCHT02.corp.atmel.com (10.161.30.162) by eusmtp01.atmel.com (10.161.101.30) with Microsoft SMTP Server (TLS) id 14.3.235.1; Mon, 13 Jun 2016 10:08:26 +0200 Received: from chelt0368.corp.atmel.com (10.161.30.18) by HNOCHT02.corp.atmel.com (10.161.30.162) with Microsoft SMTP Server id 14.3.235.1; Mon, 13 Jun 2016 10:08:25 +0200 Message-ID: <1465805299.2472.8.camel@atmel.com> Subject: Re: [patch, avr] Fix PR67353 From: Pitchumani Sivanupandi To: Georg-Johann Lay CC: GCC Patches , Denis Chertykov Date: Mon, 13 Jun 2016 13:38:19 +0530 In-Reply-To: <575B0218.6060402@gjlay.de> References: <1465546372.2691.26.camel@atmel.com> <575B0218.6060402@gjlay.de> MIME-Version: 1.0 On Fri, 2016-06-10 at 20:08 +0200, Georg-Johann Lay wrote: > Pitchumani Sivanupandi schrieb: > > > > Hi, > > > > This patch introduces new flags for warning 'misspelled interrupt/ > > signal handler'. Flag -Wmisspelled-isr is enabled by default and it > > will warn user if the interrupt/ signal handler is without > > '__vector' > > prefix. Flag -Wno-misspelled-isr shall be enabled by user to allow > > custom names, i.e. without __vector prefix. > > > > // avr-gcc -c test.c > > void custom_interruption(void) __attribute__((signal)); > > void custom_interruption(void) {} > > > > Behavior after applying this patch: > > > > $ avr-gcc test.c  > > test.c: In function 'custom_interruption': > > test.c:2:6: warning: 'custom_interruption' appears to be a > > misspelled > > signal handler > >  void custom_interruption(void) {} > >       ^~~~~~~~~~~~~~~~~~~ > > > > $ avr-gcc test.c -Wmisspelled-isr > > test.c: In function > > 'custom_interruption': > > test.c:2:6: warning: 'custom_interruption' > > appears to be a misspelled signal handler > >  void > > custom_interruption(void) {} > >       ^~~~~~~~~~~~~~~~~~~ > > > > $ avr-gcc test.c -Wno-misspelled-isr > > $ > > > > If OK, could someone commit please? I do not have commit access. > > > > Regards, > > Pitchumani > > > > gcc/ChangeLog > > > > 2016-06-10  Pitchumani Sivanupandi   > > > Missing PR target/67353 > > > >     * config/avr/avr.c (avr_set_current_function): Warn misspelled > >     interrupt/ signal handler if warn_misspelled_isr flag is set. > >     * config/avr/avr.opt (Wmisspelled-isr): New warning flag. > > Enabled > >     by default to warn misspelled interrupt/ signal handler. > Shouldn't it also be documented in doc/invoke.texi? Thanks Johann. Updated the patch. Updated description for -nodevicelib option as well, device library should be lib.a. Regards, Pitchumani gcc/ChangeLog 2016-06-10  Pitchumani Sivanupandi       PR target/67353     * config/avr/avr.c (avr_set_current_function): Warn misspelled     interrupt/ signal handler if warn_misspelled_isr flag is set.     * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled     by default to warn misspelled interrupt/ signal handler.     * doc/invoke.texi (AVR Options): Document it. Update description     for -nodevicelib option. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index ba5cd91..587bdbc 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -753,7 +753,7 @@ avr_set_current_function (tree decl) that the name of the function is "__vector_NN" so as to catch when the user misspells the vector name. */ - if (!STR_PREFIX_P (name, "__vector")) + if ((!STR_PREFIX_P (name, "__vector")) && (avr_warn_misspelled_isr)) warning_at (loc, 0, "%qs appears to be a misspelled %s handler", name, isr); } diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt index 8809b9b..0703f5a 100644 --- a/gcc/config/avr/avr.opt +++ b/gcc/config/avr/avr.opt @@ -91,6 +91,10 @@ Waddr-space-convert Warning C Report Var(avr_warn_addr_space_convert) Init(0) Warn if the address space of an address is changed. +Wmisspelled-isr +Target Warning Report Var(avr_warn_misspelled_isr) Init(1) +Warn if the ISR is misspelled, i.e. without __vector prefix. Enabled by default. + mfract-convert-truncate Target Report Mask(FRACT_CONV_TRUNC) Allow to use truncation instead of rounding towards 0 for fractional int types. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index aa11209..0bf39c5 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -640,7 +640,8 @@ Objective-C and Objective-C++ Dialects}. @emph{AVR Options} @gccoptlist{-mmcu=@var{mcu} -maccumulate-args -mbranch-cost=@var{cost} @gol -mcall-prologues -mint8 -mn_flash=@var{size} -mno-interrupts @gol --mrelax -mrmw -mstrict-X -mtiny-stack -nodevicelib -Waddr-space-convert} +-mrelax -mrmw -mstrict-X -mtiny-stack -nodevicelib -Waddr-space-convert @gol +-Wmisspelled-isr} @emph{Blackfin Options} @gccoptlist{-mcpu=@var{cpu}@r{[}-@var{sirevision}@r{]} @gol @@ -14554,12 +14555,17 @@ Only change the lower 8@tie{}bits of the stack pointer. @item -nodevicelib @opindex nodevicelib -Don't link against AVR-LibC's device specific library @code{libdev.a}. +Don't link against AVR-LibC's device specific library @code{lib.a}. @item -Waddr-space-convert @opindex Waddr-space-convert Warn about conversions between address spaces in the case where the resulting address space is not contained in the incoming address space. + +@item -Wmisspelled-isr +@opindex Wmisspelled-isr +Warn if the ISR is misspelled, i.e. without __vector prefix. +Enabled by default. @end table @subsubsection @code{EIND} and Devices with More Than 128 Ki Bytes of Flash