zcov: / lib/AST/AttrImpl.cpp


Files: 1 Branches Taken: 24.0% 25 / 104
Generated: 2010-02-10 01:31 Branches Executed: 48.1% 50 / 104
Line Coverage: 49.3% 36 / 73


Programs: 2 Runs 3018


       1                 : //===--- AttrImpl.cpp - Classes for representing attributes -----*- C++ -*-===//
       2                 : //
       3                 : //                     The LLVM Compiler Infrastructure
       4                 : //
       5                 : // This file is distributed under the University of Illinois Open Source
       6                 : // License. See LICENSE.TXT for details.
       7                 : //
       8                 : //===----------------------------------------------------------------------===//
       9                 : //
      10                 : //  This file contains out-of-line virtual methods for Attr classes.
      11                 : //
      12                 : //===----------------------------------------------------------------------===//
      13                 : 
      14                 : 
      15                 : #include "clang/AST/Attr.h"
      16                 : #include "clang/AST/ASTContext.h"
      17                 : using namespace clang;
      18                 : 
      19                 : #define DEF_SIMPLE_ATTR_CLONE(ATTR)                                     \
      20                 :   Attr *ATTR##Attr::clone(ASTContext &C) const {                        \
      21                 :     return ::new (C) ATTR##Attr;                                        \
      22                 :   }
      23                 : 
      24                 : // FIXME: Can we use variadic macro to define DEF_SIMPLE_ATTR_CLONE for
      25                 : // "non-simple" classes?
      26                 : 
                        0: branch 1 not taken
                        0: branch 2 not taken
      27                0: DEF_SIMPLE_ATTR_CLONE(Packed)
                        2: branch 1 taken
                        0: branch 2 not taken
      28                2: DEF_SIMPLE_ATTR_CLONE(AlwaysInline)
                        4: branch 1 taken
                        0: branch 2 not taken
      29                4: DEF_SIMPLE_ATTR_CLONE(Malloc)
                        0: branch 1 not taken
                        0: branch 2 not taken
      30                0: DEF_SIMPLE_ATTR_CLONE(NoReturn)
                        0: branch 1 not taken
                        0: branch 2 not taken
      31                0: DEF_SIMPLE_ATTR_CLONE(AnalyzerNoReturn)
                        8: branch 1 taken
                        0: branch 2 not taken
      32                8: DEF_SIMPLE_ATTR_CLONE(Deprecated)
                        0: branch 1 not taken
                        0: branch 2 not taken
      33                0: DEF_SIMPLE_ATTR_CLONE(Final)
                        0: branch 1 not taken
                        0: branch 2 not taken
      34                0: DEF_SIMPLE_ATTR_CLONE(Unavailable)
                        4: branch 1 taken
                        0: branch 2 not taken
      35                4: DEF_SIMPLE_ATTR_CLONE(Unused)
                        4: branch 1 taken
                        0: branch 2 not taken
      36                4: DEF_SIMPLE_ATTR_CLONE(Used)
                        8: branch 1 taken
                        0: branch 2 not taken
      37                8: DEF_SIMPLE_ATTR_CLONE(Weak)
                        2: branch 1 taken
                        0: branch 2 not taken
      38                2: DEF_SIMPLE_ATTR_CLONE(WeakImport)
                        7: branch 1 taken
                        0: branch 2 not taken
      39                7: DEF_SIMPLE_ATTR_CLONE(NoThrow)
                        3: branch 1 taken
                        0: branch 2 not taken
      40                3: DEF_SIMPLE_ATTR_CLONE(Const)
                        1: branch 1 taken
                        0: branch 2 not taken
      41                1: DEF_SIMPLE_ATTR_CLONE(Pure)
                        0: branch 1 not taken
                        0: branch 2 not taken
      42                0: DEF_SIMPLE_ATTR_CLONE(FastCall)
                        0: branch 1 not taken
                        0: branch 2 not taken
      43                0: DEF_SIMPLE_ATTR_CLONE(StdCall)
                        0: branch 1 not taken
                        0: branch 2 not taken
      44                0: DEF_SIMPLE_ATTR_CLONE(CDecl)
                        0: branch 1 not taken
                        0: branch 2 not taken
      45                0: DEF_SIMPLE_ATTR_CLONE(TransparentUnion)
                        0: branch 1 not taken
                        0: branch 2 not taken
      46                0: DEF_SIMPLE_ATTR_CLONE(ObjCNSObject)
                        0: branch 1 not taken
                        0: branch 2 not taken
      47                0: DEF_SIMPLE_ATTR_CLONE(ObjCException)
                        1: branch 1 taken
                        0: branch 2 not taken
      48                1: DEF_SIMPLE_ATTR_CLONE(NoDebug)
                        0: branch 1 not taken
                        0: branch 2 not taken
      49                0: DEF_SIMPLE_ATTR_CLONE(WarnUnusedResult)
                        6: branch 1 taken
                        0: branch 2 not taken
      50                6: DEF_SIMPLE_ATTR_CLONE(NoInline)
                        0: branch 1 not taken
                        0: branch 2 not taken
      51                0: DEF_SIMPLE_ATTR_CLONE(CFReturnsRetained)
                        0: branch 1 not taken
                        0: branch 2 not taken
      52                0: DEF_SIMPLE_ATTR_CLONE(NSReturnsRetained)
                        0: branch 1 not taken
                        0: branch 2 not taken
      53                0: DEF_SIMPLE_ATTR_CLONE(BaseCheck)
                        0: branch 1 not taken
                        0: branch 2 not taken
      54                0: DEF_SIMPLE_ATTR_CLONE(Hiding)
                        0: branch 1 not taken
                        0: branch 2 not taken
      55                0: DEF_SIMPLE_ATTR_CLONE(Override)
                        2: branch 1 taken
                        0: branch 2 not taken
      56                2: DEF_SIMPLE_ATTR_CLONE(DLLImport)
                        1: branch 1 taken
                        0: branch 2 not taken
      57                1: DEF_SIMPLE_ATTR_CLONE(DLLExport)
      58                 : 
      59                0: Attr* PragmaPackAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
      60                0:   return ::new (C) PragmaPackAttr(Alignment);
      61                 : }
      62                 : 
      63                5: Attr* AlignedAttr::clone(ASTContext &C) const {
                        5: branch 1 taken
                        0: branch 2 not taken
      64                5:   return ::new (C) AlignedAttr(Alignment);
      65                 : }
      66                 : 
      67                0: Attr* AnnotateAttr::clone(ASTContext &C) const {
                        0: branch 2 not taken
                        0: branch 3 not taken
      68                0:   return ::new (C) AnnotateAttr(Annotation);
      69                 : }
      70                 : 
      71                5: Attr *AsmLabelAttr::clone(ASTContext &C) const {
                        5: branch 2 taken
                        0: branch 3 not taken
      72                5:   return ::new (C) AsmLabelAttr(Label);
      73                 : }
      74                 : 
      75                3: Attr *AliasAttr::clone(ASTContext &C) const {
                        3: branch 2 taken
                        0: branch 3 not taken
      76                3:   return ::new (C) AliasAttr(Aliasee);
      77                 : }
      78                 : 
      79               10: Attr *ConstructorAttr::clone(ASTContext &C) const {
                       10: branch 1 taken
                        0: branch 2 not taken
      80               10:   return ::new (C) ConstructorAttr(priority);
      81                 : }
      82                 : 
      83                5: Attr *DestructorAttr::clone(ASTContext &C) const {
                        5: branch 1 taken
                        0: branch 2 not taken
      84                5:   return ::new (C) DestructorAttr(priority);
      85                 : }
      86                 : 
      87                0: Attr *IBOutletAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
      88                0:   return ::new (C) IBOutletAttr;
      89                 : }
      90                 : 
      91                6: Attr *GNUInlineAttr::clone(ASTContext &C) const {
                        6: branch 1 taken
                        0: branch 2 not taken
      92                6:   return ::new (C) GNUInlineAttr;
      93                 : }
      94                 : 
      95                1: Attr *SectionAttr::clone(ASTContext &C) const {
                        1: branch 2 taken
                        0: branch 3 not taken
      96                1:   return ::new (C) SectionAttr(Name);
      97                 : }
      98                 : 
      99                0: Attr *NonNullAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     100                0:   return ::new (C) NonNullAttr(ArgNums, Size);
     101                 : }
     102                 : 
     103               69: Attr *FormatAttr::clone(ASTContext &C) const {
                       69: branch 2 taken
                        0: branch 3 not taken
     104               69:   return ::new (C) FormatAttr(Type, formatIdx, firstArg);
     105                 : }
     106                 : 
     107                0: Attr *FormatArgAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     108                0:   return ::new (C) FormatArgAttr(formatIdx);
     109                 : }
     110                 : 
     111                1: Attr *SentinelAttr::clone(ASTContext &C) const {
                        1: branch 1 taken
                        0: branch 2 not taken
     112                1:   return ::new (C) SentinelAttr(sentinel, NullPos);
     113                 : }
     114                 : 
     115                1: Attr *VisibilityAttr::clone(ASTContext &C) const {
                        1: branch 1 taken
                        0: branch 2 not taken
     116                1:   return ::new (C) VisibilityAttr(VisibilityType);
     117                 : }
     118                 : 
     119                0: Attr *OverloadableAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     120                0:   return ::new (C) OverloadableAttr;
     121                 : }
     122                 : 
     123                0: Attr *BlocksAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     124                0:   return ::new (C) BlocksAttr(BlocksAttrType);
     125                 : }
     126                 : 
     127                0: Attr *CleanupAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     128                0:   return ::new (C) CleanupAttr(FD);
     129                 : }
     130                 : 
     131                5: Attr *RegparmAttr::clone(ASTContext &C) const {
                        5: branch 1 taken
                        0: branch 2 not taken
     132                5:   return ::new (C) RegparmAttr(NumParams);
     133                 : }
     134                 : 
     135                0: Attr *ReqdWorkGroupSizeAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     136                0:   return ::new (C) ReqdWorkGroupSizeAttr(X, Y, Z);
     137                 : }
     138                 : 
     139                0: Attr *MSP430InterruptAttr::clone(ASTContext &C) const {
                        0: branch 1 not taken
                        0: branch 2 not taken
     140                0:   return ::new (C) MSP430InterruptAttr(Number);
     141                 : }
     142                 : 
     143                 : 

Generated: 2010-02-10 01:31 by zcov