Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Static Analysis Framework for CDT



On Mon, Apr 20, 2009 at 9:48 AM, Elena Laskavaia <elaskavaia@xxxxxxx> wrote:

BTW the checker thinks that this statement has no effect in Hello World application:
cout << "!!!Hello World!!!" << endl;

I should turn of for c++ probably. You can overload + to do something as well...

It should check if the operator is overloaded or not. The information is available from AST.

-sergey 


also you cover a+b; case. A statement a; could be added as it has no effect either (except any side effect of course).
What do you mean? If + is not overload, the resulting value has no effect regardless of what a or b is.



Andrew

   Schorn, Markus wrote:

       This is great start! In addition to your proposal it would be
       useful to (optionally) run some (or all?) of the checkers on the
       editor every time the user stops
       typing.
       The editor creates an AST at this point of time anyways, so as
       long as
       there are simple checkers this should not add a noteable
       performance overhead.
       Markus.

           -----Original Message-----
           From: cdt-dev-bounces@xxxxxxxxxxx
           <mailto:cdt-dev-bounces@xxxxxxxxxxx>
           [mailto:cdt-dev-bounces@xxxxxxxxxxx
           <mailto:cdt-dev-bounces@xxxxxxxxxxx>] On Behalf Of Elena
           Laskavaia
           Sent: Monday, April 20, 2009 4:51 PM
           To: CDT General developers list.
           Subject: Re: [cdt-dev] Static Analysis Framework for CDT
           Importance: Low

           There is not much of this "framework" can be re-used for
           self contained external tool like that.
           I don't think even error parser is required because it would
           just work with gcc error parser, so it would pretty much
           work out of box considering integration is provided by
           makefile (which should be done anyway on make/build level
           and not invoked externally)

           Btw, I am pretty much done with preliminary framework
           (without data-flow graphs etc), I update wiki page
           http://wiki.eclipse.org/CDT/designs/StaticAnalysis
           added screenshots for user interface, comments are welcome.
           I have 2 checkers now Assignment in Condition from Markus
           presentation and Statement has no Effect.
           Checkers contributions are welcome. We need at least dozen
           checkers to make it worthy to include as feature in next CDT.

           Schaefer, Doug wrote:

               That sounds reasonable. I'm still concerned about the

           licensing issues

               with the GCC plug-in framework, but we're starting to

           figure out how

               to manage that with the packaging efforts.

               Cheers,
               Doug.

                   -----Original Message-----
                   From: cdt-dev-bounces@xxxxxxxxxxx
                   <mailto:cdt-dev-bounces@xxxxxxxxxxx>
                   [mailto:cdt-dev-bounces@xxxxxxxxxxx
                   <mailto:cdt-dev-bounces@xxxxxxxxxxx>] On Behalf Of
                   Dominique Toupin
                   Sent: Monday, April 20, 2009 7:47 AM
                   To: CDT General developers list.
                   Subject: RE: [cdt-dev] Static Analysis Framework for CDT


                   This is indeed the best setup, everything we can check

           rapidly we can

                   do it inside CDT even before the code is build.
                   Then the complicated/longer analysis are done by
                   external

           tools, some

                   of those analysis are running at night.
                   What I was pointing out below is we might be able to
                   use

           GCC plugins

                   for complicated/long analysis, we would then have a

           complete static

                   analysis framework in CDT.

                   "If you are doing simple rules, CDT alone should be
                   OK but if you need complicated rules (e.g. data-flow
                   analysis) then you

           might want

                   to also look at GCC plugin"



                       -----Original Message-----
                       From: cdt-dev-bounces@xxxxxxxxxxx
                       <mailto:cdt-dev-bounces@xxxxxxxxxxx>
                       [mailto:cdt-dev-bounces@xxxxxxxxxxx
                       <mailto:cdt-dev-bounces@xxxxxxxxxxx>] On Behalf
                       Of Schorn, Markus
                       Sent: 20-Apr-09 04:03
                       To: CDT General developers list.
                       Subject: RE: [cdt-dev] Static Analysis Framework
                       for CDT

                       I don't have plans to work on something like that.

           However, I think

                       there is lots of value we could add to CDT by
                       doing some

                   analysis on

                       the parser side. This is not because we can do
                       better

           analysis than

                       gcc or other tools, it is because we could do
                       some analyis much earlier, when you edit your
                       code and could ideally also provide quick-fixes.
                       The most simple example is the detection of

                   assignments

                       in conditions 'if (a = 0)', which is easy to
                       detect and

                   easy to fix.

                       CDT should offer support for that.

                       Markus.

                           -----Original Message-----
                           From: cdt-dev-bounces@xxxxxxxxxxx
                           <mailto:cdt-dev-bounces@xxxxxxxxxxx>
                           [mailto:cdt-dev-bounces@xxxxxxxxxxx
                           <mailto:cdt-dev-bounces@xxxxxxxxxxx>] On
                           Behalf Of

           Dominique Toupin

                           Sent: Friday, April 17, 2009 6:08 PM
                           To: CDT General developers list.
                           Subject: RE: [cdt-dev] Static Analysis
                           Framework for CDT
                           Importance: Low


                           Markus, are you planning on providing
                           advanced static

                   analysis e.g.

                           data-flow analysis :-)

                               -----Original Message-----
                               From: cdt-dev-bounces@xxxxxxxxxxx
                               <mailto:cdt-dev-bounces@xxxxxxxxxxx>
                               [mailto:cdt-dev-bounces@xxxxxxxxxxx
                               <mailto:cdt-dev-bounces@xxxxxxxxxxx>] On
                               Behalf Of Doug Schaefer
                               Sent: 17-Apr-09 11:53
                               To: CDT General developers list.
                               Subject: RE: [cdt-dev] Static Analysis
                               Framework for CDT

                               Then I suggest that you need to take a
                               closer look at the

                           CDT core ;)

                               Markus's EclipseCon presentation would
                               be a great place

                   to start.

                               Doug.

                               On Fri, 2009-04-17 at 11:21 -0400,
                               Dominique Toupin wrote:

                                   In practice I don't think CDT parser
                                   has the same

                               info/capability as

                                   GCC, GCC has a lot of info about the
                                   code and we can do

                               advance static

                                   analysis (not grep like) with this info.
                                   I am not suggesting to integrate GCC
                                   code into CDT, the

                           GCC static

                                   analysis would be an external tool
                                   just like GCC/GDB today.
                                   Even if it's an external tool it
                                   brings a lot of features

                               to CDT, it's

                                   just like compile (GCC) and debug
                                   (GDB) today.

                                       -----Original Message-----
                                       From:
                                       cdt-dev-bounces@xxxxxxxxxxx
                                       <mailto:cdt-dev-bounces@xxxxxxxxxxx>
                                       [mailto:cdt-dev-bounces@xxxxxxxxxxx
                                       <mailto:cdt-dev-bounces@xxxxxxxxxxx>]
                                       On Behalf Of

                       Doug Schaefer

                                       Sent: 17-Apr-09 09:52
                                       To: CDT General developers list.
                                       Subject: Re: [cdt-dev] Static
                                       Analysis Framework for CDT

                                       My bigger concern is that all
                                       GCC plug-ins must be GPL. I'd
                                       especially be worried about
                                       plug-ins written

                           specifically for the

                                       CDT and whether that affects the
                                       definition of "derived"
                                       and thus, causing us legal grief.

                                       At any rate, theoretically, the
                                       CDT parsers already

                               create the same

                                       information that gcc would. And
                                       we can avoid any legal

                               problems that

                                       way.

                                       Doug.

                                       On Fri, 2009-04-17 at 09:43
                                       -0400, Elena Laskavaia wrote:

                                           GCC plugins means it would
                                           be part of GCC which

                   is external

                                       to eclipse?

                                           If so it can be just run as
                                           external and not part of the

                                       framework which is Java based.

                                           Dominique Toupin wrote:

                                               Hi Elena,

                                               If you are doing simple
                                               rules, CDT alone should
                                               be OK

                               but if you

                                               need complicated rules
                                               (e.g. data-flow

                   analysis) then you

                                       might want

                                               to also look at GCC plugin

                                       http://gcc.gnu.org/wiki/GCC_Plugins,
                                       they

                                               did progress and
                                               hopefully the
                                               architecture will be

                                       resolve for the

                                               GCC summit
                                               (http://gccsummit.org/2009/),
                                               some CDT

                           committers

                                               will also attend the GCC
                                               summit (at least Francois

                           and Marc).

                                               Last year at the GCC
                                               summit some static
                                               analysis tools

                                       based on GCC

                                               where presented e.g.

                               https://developer.mozilla.org/en/Treehydra,

           https://developer.mozilla.org/en/Dehydra?rdfrom=https%3A%2F%2Fwiki.m

                                               ozil

                           la.org
                           <http://la.org>%2Findex.php%3Ftitle%3DDehydra_GCC%26redirect%3Dno.


                                               If we can have good
                                               static analysis rules
                                               with GCC

                                       plugins it will

                                               make sense to integrate
                                               those into CDT.

                                               Dominique


                                                   -----Original
                                                   Message-----
                                                   From:
                                                   cdt-dev-bounces@xxxxxxxxxxx
                                                   <mailto:cdt-dev-bounces@xxxxxxxxxxx>
                                                   [mailto:cdt-dev-bounces@xxxxxxxxxxx
                                                   <mailto:cdt-dev-bounces@xxxxxxxxxxx>]
                                                   On Behalf

                   Of Elena

                                                   Laskavaia
                                                   Sent: 16-Apr-09 22:44
                                                   To: CDT General
                                                   developers list.
                                                   Subject: [cdt-dev]
                                                   Static Analysis
                                                   Framework for CDT

                                                   This is something I
                                                   am doing in my spare
                                                   time -

                       I want to

                                                   create static
                                                   analysis framework
                                                   for CDT, light

                           weigh set of

                                       classes that

                                                   allow to have common
                                                   interface for dealing

                   with problems

                                       produced

                                                   by static analysis
                                                   tools (and some
                                                   default checkers,

                                       such what JDT

                                                   has, i.e Potential
                                                   Null Pointer
                                                   Dereference, etc).

                                                   See design details
                                                   at:
                                                   http://wiki.eclipse.org/CDT/designs/StaticAnalysis
                                                   _______________________________________________
                                                   cdt-dev mailing list
                                                   cdt-dev@xxxxxxxxxxx
                                                   <mailto:cdt-dev@xxxxxxxxxxx>

                                                   https://dev.eclipse.org/mailman/listinfo/cdt-dev

                                               _______________________________________________
                                               cdt-dev mailing list
                                               cdt-dev@xxxxxxxxxxx
                                               <mailto:cdt-dev@xxxxxxxxxxx>

                                               https://dev.eclipse.org/mailman/listinfo/cdt-dev

                                           _______________________________________________
                                           cdt-dev mailing list
                                           cdt-dev@xxxxxxxxxxx
                                           <mailto:cdt-dev@xxxxxxxxxxx>

                                           https://dev.eclipse.org/mailman/listinfo/cdt-dev

                                       _______________________________________________
                                       cdt-dev mailing list
                                       cdt-dev@xxxxxxxxxxx
                                       <mailto:cdt-dev@xxxxxxxxxxx>

                                       https://dev.eclipse.org/mailman/listinfo/cdt-dev

                                   _______________________________________________
                                   cdt-dev mailing list
                                   cdt-dev@xxxxxxxxxxx
                                   <mailto:cdt-dev@xxxxxxxxxxx>

                                   https://dev.eclipse.org/mailman/listinfo/cdt-dev

                               _______________________________________________
                               cdt-dev mailing list
                               cdt-dev@xxxxxxxxxxx
                               <mailto:cdt-dev@xxxxxxxxxxx>

                               https://dev.eclipse.org/mailman/listinfo/cdt-dev

                           _______________________________________________
                           cdt-dev mailing list
                           cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

                           https://dev.eclipse.org/mailman/listinfo/cdt-dev

                       _______________________________________________
                       cdt-dev mailing list
                       cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

                       https://dev.eclipse.org/mailman/listinfo/cdt-dev

                   _______________________________________________
                   cdt-dev mailing list
                   cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

                   https://dev.eclipse.org/mailman/listinfo/cdt-dev

               _______________________________________________
               cdt-dev mailing list
               cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

               https://dev.eclipse.org/mailman/listinfo/cdt-dev

           _______________________________________________
           cdt-dev mailing list
           cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

           https://dev.eclipse.org/mailman/listinfo/cdt-dev

       _______________________________________________
       cdt-dev mailing list
       cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

       https://dev.eclipse.org/mailman/listinfo/cdt-dev

   _______________________________________________
   cdt-dev mailing list
   cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>

   https://dev.eclipse.org/mailman/listinfo/cdt-dev



------------------------------------------------------------------------

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top