Changes in / [800bae1:89faa82]


Ignore:
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • configure

    r800bae1 r89faa82  
    796796with_cfa_name
    797797with_target_hosts
    798 enable_gprofiler
    799798enable_dependency_tracking
    800799enable_shared
     
    14561455  --enable-silent-rules   less verbose build output (undo: "make V=1")
    14571456  --disable-silent-rules  verbose build output (undo: "make V=0")
    1458   --enable-gprofiler     whether or not to enable gprofiler tools (if available)
    14591457  --enable-dependency-tracking
    14601458                          do not reject slow dependency extractors
     
    32853283                \'--with-target-hosts=*) ;;
    32863284
    3287                 # skip gprofiler for libcfa
    3288                 \'--enable-gprofiler=*) ;;
    3289                 \'--disable-gprofiler) ;;
    3290 
    32913285                # append all other arguments to the sub configure arguments
    32923286                *) LIBCFA_GENERAL_ARGS="${LIBCFA_GENERAL_ARGS} $var";;
     
    33903384else
    33913385  target_hosts=${default_target}
    3392 fi
    3393 
    3394 
    3395 # Check whether --enable-gprofiler was given.
    3396 if test "${enable_gprofiler+set}" = set; then :
    3397   enableval=$enable_gprofiler; enable_gprofiler=$enableval
    3398 else
    3399   enable_gprofiler=yes
    34003386fi
    34013387
     
    1671816704fi
    1671916705
    16720  if test "x$enable_gprofiler" = "xyes" -a "$HAVE_LIBPROFILER" -eq 1; then
     16706 if test "$HAVE_LIBPROFILER" -eq 1; then
    1672116707  WITH_LIBPROFILER_TRUE=
    1672216708  WITH_LIBPROFILER_FALSE='#'
     
    1676916755fi
    1677016756
    16771  if test "x$enable_gprofiler" = "xyes" -a "$HAVE_LIBTCMALLOC" -eq 1; then
     16757 if test "$HAVE_LIBTCMALLOC" -eq 1; then
    1677216758  WITH_LIBTCMALLOC_TRUE=
    1677316759  WITH_LIBTCMALLOC_FALSE='#'
  • configure.ac

    r800bae1 r89faa82  
    9494                # skip the target hosts
    9595                \'--with-target-hosts=*) ;;
    96 
    97                 # skip gprofiler for libcfa
    98                 \'--enable-gprofiler=*) ;;
    99                 \'--disable-gprofiler) ;;
    10096
    10197                # append all other arguments to the sub configure arguments
     
    129125        target_hosts=$withval, target_hosts=${default_target})
    130126
    131 AC_ARG_ENABLE(gprofiler,
    132         [  --enable-gprofiler     whether or not to enable gprofiler tools (if available)],
    133         enable_gprofiler=$enableval, enable_gprofiler=yes)
    134 
    135127AC_SUBST(TARGET_HOSTS, ${target_hosts})
    136128
     
    200192
    201193AC_CHECK_LIB([profiler], [ProfilingIsEnabledForAllThreads], [HAVE_LIBPROFILER=1], [HAVE_LIBPROFILER=0])
    202 AM_CONDITIONAL([WITH_LIBPROFILER], [test "x$enable_gprofiler" = "xyes" -a "$HAVE_LIBPROFILER" -eq 1])
     194AM_CONDITIONAL([WITH_LIBPROFILER], [test "$HAVE_LIBPROFILER" -eq 1])
    203195
    204196AC_CHECK_LIB([tcmalloc], [malloc], [HAVE_LIBTCMALLOC=1], [HAVE_LIBTCMALLOC=0])
    205 AM_CONDITIONAL([WITH_LIBTCMALLOC], [test "x$enable_gprofiler" = "xyes" -a "$HAVE_LIBTCMALLOC" -eq 1])
     197AM_CONDITIONAL([WITH_LIBTCMALLOC], [test "$HAVE_LIBTCMALLOC" -eq 1])
    206198
    207199# Checks for header files.
  • src/AST/Convert.cpp

    r800bae1 r89faa82  
    576576                if ( srcInferred.mode == ast::Expr::InferUnion::Params ) {
    577577                        const ast::InferredParams &srcParams = srcInferred.inferParams();
    578                         for (auto & srcParam : srcParams) {
    579                                 auto res = tgtInferParams.emplace(srcParam.first, ParamEntry(
     578                        for (auto srcParam : srcParams) {
     579                                tgtInferParams[srcParam.first] = ParamEntry(
    580580                                        srcParam.second.decl,
    581581                                        get<Declaration>().accept1(srcParam.second.declptr),
     
    583583                                        get<Type>().accept1(srcParam.second.formalType),
    584584                                        get<Expression>().accept1(srcParam.second.expr)
    585                                 ));
    586                                 assert(res.second);
     585                                );
    587586                        }
    588587                } else if ( srcInferred.mode == ast::Expr::InferUnion::Slots  ) {
     
    19831982                if ( !oldInferParams.empty() ) {
    19841983                        ast::InferredParams &tgt = newInferred.inferParams();
    1985                         for (auto & old : oldInferParams) {
     1984                        for (auto old : oldInferParams) {
    19861985                                tgt[old.first] = ast::ParamEntry(
    19871986                                        old.second.decl,
  • src/Common/Stats/Heap.cc

    r800bae1 r89faa82  
    2121#include <iostream>
    2222
    23 #if defined(__has_feature)
    24         #if __has_feature(address_sanitizer)
    25                 #define NO_HEAP_STATISTICS
    26         # endif
    27 #endif
    28 
    29 #if defined( NO_STATISTICS ) || defined( TCMALLOC ) || defined(__SANITIZE_ADDRESS__)
    30         #if !defined(NO_HEAP_STATISTICS)
    31                 #define NO_HEAP_STATISTICS
    32         #endif
     23#if defined( NO_STATISTICS ) || defined( TCMALLOC )
     24        #define NO_HEAP_STATISTICS
    3325#endif
    3426
  • src/ResolvExpr/ResolveAssertions.cc

    r800bae1 r89faa82  
    325325                                        entry.second.expr = postmutate( entry.second.expr );
    326326                                        // xxx - look at entry.second.inferParams?
    327                                         auto res = expr->inferParams.emplace( entry.first, entry.second );
    328                                         assert(res.second);
     327                                        expr->inferParams[ entry.first ] = entry.second;
    329328                                }
    330329                        }
  • src/SynTree/ApplicationExpr.cc

    r800bae1 r89faa82  
    2828#include "Type.h"                // for Type, PointerType, FunctionType
    2929
    30 ParamEntry::ParamEntry( UniqueId decl, Declaration * declptr, Type * actualType, Type * formalType, Expression* expr )
    31                 : decl( decl ), declptr( declptr ), actualType( actualType ), formalType( formalType ), expr( expr ) {
    32         }
     30ParamEntry::ParamEntry( const ParamEntry &other ) :
     31                decl( other.decl ), declptr( maybeClone( other.declptr ) ), actualType( maybeClone( other.actualType ) ), formalType( maybeClone( other.formalType ) ), expr( maybeClone( other.expr ) )/*, inferParams( new InferredParams( *other.inferParams ) )*/ {
     32}
    3333
    34 ParamEntry::ParamEntry( const ParamEntry &other ) :
    35                 decl( other.decl ), declptr( maybeClone( other.declptr ) ), actualType( maybeClone( other.actualType ) ), formalType( maybeClone( other.formalType ) ), expr( maybeClone( other.expr ) ) {
     34ParamEntry &ParamEntry::operator=( const ParamEntry &other ) {
     35        if ( &other == this ) return *this;
     36        const_cast<UniqueId &>(decl) = other.decl;
     37        const_cast<Declaration * &>(declptr) = maybeClone( other.declptr );
     38        // xxx - this looks like a memory leak
     39        const_cast<Type * &>(actualType) = maybeClone( other.actualType );
     40        const_cast<Type * &>(formalType) = maybeClone( other.formalType );
     41        expr = maybeClone( other.expr );
     42        // *inferParams = *other.inferParams;
     43        return *this;
    3644}
    3745
     
    4452
    4553ParamEntry::ParamEntry( ParamEntry && other ) :
    46                 decl( other.decl ), declptr( other.declptr ), actualType( other.actualType ), formalType( other.formalType ), expr( other.expr ) {
    47         new (&other) ParamEntry();
     54                decl( other.decl ), declptr( other.declptr ), actualType( other.actualType ), formalType( other.formalType ), expr( other.expr )/*, inferParams( std::move( other.inferParams ) )*/ {
     55        const_cast<Declaration * &>(other.declptr) = nullptr;
     56        const_cast<Type * &>(other.actualType) = nullptr;
     57        const_cast<Type * &>(other.formalType) = nullptr;
     58        other.expr = nullptr;
    4859}
    4960
    5061ParamEntry & ParamEntry::operator=( ParamEntry && other ) {
    5162        if ( &other == this ) return *this;
    52         this->~ParamEntry();
    53         new (this) ParamEntry(other.decl, other.declptr, other.actualType, other.formalType, other.expr);
    54         new (&other) ParamEntry();
    55 
     63        delete declptr;
     64        delete actualType;
     65        delete formalType;
     66        delete expr;
     67        const_cast<UniqueId &>(decl) = other.decl;
     68        const_cast<Declaration * &>(declptr) = other.declptr;
     69        const_cast<Type * &>(actualType) = other.actualType;
     70        const_cast<Type * &>(formalType) = other.formalType;
     71        expr = other.expr;
     72        const_cast<Declaration * &>(other.declptr) = nullptr;
     73        const_cast<Type * &>(other.actualType) = nullptr;
     74        const_cast<Type * &>(other.formalType) = nullptr;
     75        other.expr = nullptr;
     76        // inferParams = std::move( other.inferParams );
    5677        return *this;
    5778}
  • src/SynTree/Expression.h

    r800bae1 r89faa82  
    3939/// but subject to decay-to-pointer and type parameter renaming
    4040struct ParamEntry {
    41         ParamEntry(): decl( 0 ), declptr( nullptr ), actualType( nullptr ), formalType( nullptr ), expr( nullptr ) {}
    42         ParamEntry( UniqueId decl, Declaration * declptr, Type * actualType, Type * formalType, Expression* expr );
     41        ParamEntry(): decl( 0 ), declptr(nullptr), actualType( 0 ), formalType( 0 ), expr( 0 )/*, inferParams( new InferredParams )*/ {}
     42        ParamEntry( UniqueId decl, Declaration * declptr, Type * actualType, Type * formalType, Expression* expr )
     43                : decl( decl ), declptr( declptr ), actualType( actualType ), formalType( formalType ), expr( expr )/*, inferParams( new InferredParams )*/ {
     44        }
    4345        ParamEntry( const ParamEntry & other );
    4446        ParamEntry( ParamEntry && other );
    4547        ~ParamEntry();
     48        ParamEntry & operator=( const ParamEntry & other );
    4649        ParamEntry & operator=( ParamEntry && other );
    4750
     
    5154        Type * const formalType;
    5255        Expression * expr;
     56        // std::unique_ptr< InferredParams > inferParams;
    5357};
    5458
Note: See TracChangeset for help on using the changeset viewer.