Running
clang_delta --transformation=param-to-global --counter=2 gmock-gtest-all.cc
on attached file does not modify it but exits successfully leading to infinite
loop in creduce.
--
Regards,
Konstantin
extern "C" typedef __typeof__(sizeof(int)) size_t;
typedef unsigned int pthread_key_t;
extern "C" extern int pthread_key_create ( void (void *)) throw () __attribute__ ((__nonnull__ ));
static __typeof(pthread_key_create) voide __attribute__ ((__weakref__("pthread_key_create")));
template <typename T> class scoped_ptr {
public: typedef T element_type;
explicit scoped_ptr(T* p = __null) : ptr_(p) {
}
private: T* ptr_;
};
extern "C" inline void DeleteThreadLocalValue(void* value_holder) ;
template <typename T> class ThreadLocal {
public: explicit ThreadLocal(const T& value) : key_(CreateKey()), default_(value) {
}
static pthread_key_t CreateKey() {
if (const int gtest_error = pthread_key_create( &DeleteThreadLocalValue)) 0;
}
const pthread_key_t key_;
const T default_;
};
template <size_t size> class TypeWithSize {
public: typedef int Int;
typedef unsigned int UInt;
};
typedef TypeWithSize<4>::UInt UInt32;
typedef TypeWithSize<8>::Int TimeInMillis;
class UnitTest;
class Random {
public: static const UInt32 kMaxRange = 1u << 31;
explicit Random(UInt32 seed) : state_(seed) {
}
private: UInt32 state_;
};
class DeathTestFactory {
};
class DefaultDeathTestFactory : public DeathTestFactory {
};
class InternalRunDeathTestFlag ;
class ParameterizedTestCaseRegistry {
};
class TestPartResultReporterInterface {
};
class UnitTestImpl* GetUnitTestImpl;
class TestResult {
};
class TestInfo ;
class TestCase ;
class OsStackTraceGetterInterface ;
class DefaultGlobalTestPartResultReporter : public TestPartResultReporterInterface {
public: explicit DefaultGlobalTestPartResultReporter(UnitTestImpl* unit_test);
};
class DefaultPerThreadTestPartResultReporter : public TestPartResultReporterInterface {
public: explicit DefaultPerThreadTestPartResultReporter(UnitTestImpl* unit_test);
};
class UnitTestImpl {
public: explicit UnitTestImpl(UnitTest* parent);
UnitTest* const parent_;
DefaultGlobalTestPartResultReporter default_global_test_part_result_reporter_;
DefaultPerThreadTestPartResultReporter default_per_thread_test_part_result_reporter_;
TestPartResultReporterInterface* global_test_part_result_repoter_;
ThreadLocal<TestPartResultReporterInterface*> per_thread_test_part_result_reporter_;
ParameterizedTestCaseRegistry parameterized_test_registry_;
bool parameterized_tests_registered_;
int last_death_test_case_;
TestCase* current_test_case_;
TestInfo* current_test_info_;
TestResult ad_hoc_test_result_;
OsStackTraceGetterInterface* os_stack_trace_getter_;
bool post_flag_parse_init_performed_;
int random_seed_;
Random random_;
TimeInMillis elapsed_time_;
scoped_ptr<InternalRunDeathTestFlag> internal_run_death_test_flag_;
scoped_ptr<DeathTestFactory> death_test_factory_;
bool catch_exceptions_;
};
UnitTestImpl::UnitTestImpl(UnitTest* parent) : parent_(parent), default_global_test_part_result_reporter_(this), default_per_thread_test_part_result_reporter_(this), global_test_part_result_repoter_( &default_global_test_part_result_reporter_), per_thread_test_part_result_reporter_( &default_per_thread_test_part_result_reporter_), parameterized_test_registry_(), parameterized_tests_registered_(false), last_death_test_case_(-1), current_test_case_(__null), current_test_info_(__null), ad_hoc_test_result_(), os_stack_trace_getter_(__null), post_flag_parse_init_performed_(false), random_seed_(0), random_(0), elapsed_time_(0), internal_run_death_test_flag_(__null), death_test_factory_(new DefaultDeathTestFactory), catch_exceptions_(false) {
}