/*
-----------------------------------------------------------------------------

Copyright (c) 2010 Nigel Atkinson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/
#ifndef INPUTEVENTDATA_H_INCLUDED
#define INPUTEVENTDATA_H_INCLUDED

struct InputEventData : public EventData
{
    float x, y;
    OIS::KeyCode key;
    unsigned int parm;
};

#endif // INPUTEVENTDATA_H_INCLUDED

/*
-----------------------------------------------------------------------------

Copyright (c) 2010 Nigel Atkinson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/
#ifndef INPUTEVENTDATA_H_INCLUDED
#define INPUTEVENTDATA_H_INCLUDED

struct InputEventData : public EventData
{
    short x, y;
    OIS::KeyCode key;
    unsigned int parm;
};

#endif // INPUTEVENTDATA_H_INCLUDED

Use a more suitable type for mouse co-ordinates.


//
//  MCKNetworkMock.h
//  mocka
//
//  Created by Markus Gasser on 26.10.2013.
//  Copyright (c) 2013 konoma GmbH. All rights reserved.
//

#import <Foundation/Foundation.h>

@class MCKNetworkMock;
@class MCKNetworkRequestMatcher;
@class MCKMockingContext;

typedef MCKNetworkRequestMatcher*(^MCKNetworkActivity)(id url);

@interface MCKNetworkMock : NSObject

#pragma mark - Initialization

- (instancetype)initWithMockingContext:(MCKMockingContext *)context;

#pragma mark - Network Control

@property (nonatomic, readonly, getter = isEnabled) BOOL enabled;

- (void)disable;
- (void)enable;
- (void)startObservingNetworkCalls;

#pragma mark - Stubbing and Verification DSL

@property (nonatomic, readonly) MCKNetworkActivity GET;
@property (nonatomic, readonly) MCKNetworkActivity PUT;
@property (nonatomic, readonly) MCKNetworkActivity POST;
@property (nonatomic, readonly) MCKNetworkActivity DELETE;

@end

#define MCKNetwork _mck_getNetworkMock(self, __FILE__, __LINE__)
#ifndef MCK_DISABLE_NICE_SYNTAX
    #define Network MCKNetwork
#endif
extern MCKNetworkMock* _mck_getNetworkMock(id testCase, const char *fileName, NSUInteger lineNumber);

//
//  MCKNetworkMock.h
//  mocka
//
//  Created by Markus Gasser on 26.10.2013.
//  Copyright (c) 2013 konoma GmbH. All rights reserved.
//

#import <Foundation/Foundation.h>

@class MCKNetworkMock;
@class MCKNetworkRequestMatcher;
@class MCKMockingContext;

typedef MCKNetworkRequestMatcher*(^MCKNetworkActivity)(id url);

@interface MCKNetworkMock : NSObject

#pragma mark - Initialization

- (instancetype)initWithMockingContext:(MCKMockingContext *)context;

#pragma mark - Network Control

@property (nonatomic, readonly, getter = isEnabled) BOOL enabled;

- (void)disable;
- (void)enable;
- (void)startObservingNetworkCalls;

#pragma mark - Stubbing and Verification DSL

@property (nonatomic, readonly) MCKNetworkActivity GET;
@property (nonatomic, readonly) MCKNetworkActivity PUT;
@property (nonatomic, readonly) MCKNetworkActivity POST;
@property (nonatomic, readonly) MCKNetworkActivity DELETE;

@end

#define MCKNetwork (id)_mck_getNetworkMock(self, __FILE__, __LINE__)
#ifndef MCK_DISABLE_NICE_SYNTAX
    #define Network MCKNetwork
#endif
extern MCKNetworkMock* _mck_getNetworkMock(id testCase, const char *fileName, NSUInteger lineNumber);

Make the network mock play nice with stubCall (…)


/*
 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
/**
 * @file        test/test-common/QuietCommandlineTest.h
 * @author      Pawel Wieczorek <p.wieczorek2@samsung.com>
 * @version     1.0
 * @brief       Fixture for tests of commandline parsers with no output to std::cout nor std::cerr
 */

#ifndef TEST_TEST_COMMON_QUIETCOMMANDLINETEST_H_
#define TEST_TEST_COMMON_QUIETCOMMANDLINETEST_H_

#include <iostream>
#include <memory>
#include <sstream>
#include <string>

#include "BaseCommandlineTest.h"

class QuietCommandlineTest : public BaseCommandlineTest {
public:
    void clearOutput(void) {
        m_cerr.str(std::string());
        m_cout.str(std::string());
    }

    void getOutput(std::string &out, std::string &err) const {
        err = m_cerr.str();
        out = m_cout.str();
    }

protected:
    virtual void SetUp(void) {
        m_cerrBackup.reset(std::cerr.rdbuf());
        std::cerr.rdbuf(m_cerr.rdbuf());

        m_coutBackup.reset(std::cout.rdbuf());
        std::cout.rdbuf(m_cout.rdbuf());
    }

    virtual void TearDown(void) {
        destroy_argv();
        std::cerr.rdbuf(m_cerrBackup.release());
        std::cout.rdbuf(m_coutBackup.release());
    }

    std::unique_ptr<std::streambuf> m_cerrBackup;
    std::unique_ptr<std::streambuf> m_coutBackup;
    std::stringstream m_cerr;
    std::stringstream m_cout;
};

#endif /* TEST_TEST_COMMONS_QUIETCOMMANDLINETEST_H_ */

Add quiet fixture for commandline tests

Add quiet fixture for commandline tests

This patch introduces fixture which suppresses printing output to
std::cout or std::cerr. Data is redirected to temporary buffers and
accessible from there.

Change-Id: Ia1b8b240be95d1d672a56cd9eaf6e13320bb375b


// RUN: %clang_cc1 -emit-llvm -o - %s
// PR1386
typedef unsigned long uint64_t;
struct X {
  unsigned char pad : 4;
  uint64_t a : 64;
} __attribute__((packed)) x;

uint64_t f(void)
{
  return x.a;
}

// RUN: %clang_cc1 -emit-llvm -o - %s
// PR1386
typedef unsigned long long uint64_t;
struct X {
  unsigned char pad : 4;
  uint64_t a : 64;
} __attribute__((packed)) x;

uint64_t f(void)
{
  return x.a;
}

Use unsigned long long for uint64_t. Fixes part of the windows buildbot.

git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@136160 91177308-0d34-0410-b5e6-96231b3b80d8


#ifndef BANDIT_COLORED_REPORTER_H
#define BANDIT_COLORED_REPORTER_H

#include <ostream>
#include <bandit/reporters/colorizer.h>
#include <bandit/reporters/progress_reporter.h>

namespace bandit { namespace detail {

  struct colored_reporter : public progress_reporter
  {
    colored_reporter(std::ostream& stm,
        const failure_formatter& failure_formatter,
        const colorizer& colorizer)
      : progress_reporter(failure_formatter), stm_(stm), colorizer_(colorizer)
    {}

  protected:
    std::ostream& stm_;
    const detail::colorizer& colorizer_;
  };

}}

#endif

#ifndef BANDIT_COLORED_REPORTER_H
#define BANDIT_COLORED_REPORTER_H

#include <ostream>
#include <bandit/reporters/colorizer.h>
#include <bandit/reporters/progress_reporter.h>

namespace bandit { namespace detail {

  struct colored_reporter : public progress_reporter
  {
    colored_reporter(std::ostream& stm,
        const failure_formatter& failure_formatter,
        const colorizer& colorizer)
      : progress_reporter(failure_formatter), stm_(stm), colorizer_(colorizer)
    {}

    virtual ~colored_reporter()
    {
      stm_ << colorizer_.reset();
    }

  protected:
    std::ostream& stm_;
    const detail::colorizer& colorizer_;
  };

}}

#endif

Make sure the colorizer is reset

Make sure the colorizer is reset

This is done using the colored_reporter destructor.

This should fix the part of #90, i.e., that colors are changed when the
code exits unexpectedly, or in case the reporter simply does not reset
the colorizer.


#include "os_common.h"

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *os_fopen(const char *path, const char *mode)
{
    FILE *f = NULL;

    if (path[0] == '/' && strncmp(path, "/dev", 4)) {
        // absolute path, needs to be construed relative to mountpoint
        size_t need = 1 + snprintf(NULL, 0, MOUNT_POINT "%s", path);
        char *buf = malloc(need);
        snprintf(buf, need, MOUNT_POINT "%s", path);
        f = fopen(buf, mode);
        free(buf);
    } else {
        // either a relative path or a device path -- don't mangle path
        // default behaviour, os_preamble() has already chdir()ed correctly
        f = fopen(path, mode);
    }

    return f;
}

#include "os_common.h"

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *os_fopen(const char *path, const char *mode)
{
    FILE *f = NULL;

    if (path[0] == '/' && strncmp(path, "/dev", 4)) {
        // absolute path, needs to be construed relative to mountpoint
        int need = 1 + snprintf(NULL, 0, MOUNT_POINT "%s", path);
        char *buf = malloc((size_t)need);
        snprintf(buf, (size_t)need, MOUNT_POINT "%s", path);
        f = fopen(buf, mode);
        free(buf);
    } else {
        // either a relative path or a device path -- don't mangle path
        // default behaviour, os_preamble() has already chdir()ed correctly
        f = fopen(path, mode);
    }

    return f;
}

Address -Wsign-conversion in emscripten build


/**
 * @file
 * @brief
 *
 * @author  Anton Kozlov
 * @date    25.06.2012
 */

#ifndef COMPAT_POSIX_POSIX_ERRNO_H_
#define COMPAT_POSIX_POSIX_ERRNO_H_

#include <kernel/task/resource/errno.h>

#define errno (*task_self_resource_errno())

#define SET_ERRNO(e) \
	({ errno = e; -1; /* to let 'return SET_ERRNO(...)' */ })

#endif /* COMPAT_POSIX_POSIX_ERRNO_H_ */

/**
 * @file
 * @brief
 *
 * @author  Anton Kozlov
 * @date    25.06.2012
 */

#ifndef COMPAT_POSIX_POSIX_ERRNO_H_
#define COMPAT_POSIX_POSIX_ERRNO_H_

#include <kernel/task/resource/errno.h>
#include <compiler.h>

#define errno (*task_self_resource_errno())

static inline int SET_ERRNO(int err) {
	errno = err;
	return -1;
}

#endif /* COMPAT_POSIX_POSIX_ERRNO_H_ */

Change SET_ERRNO to be inline function

Change SET_ERRNO to be inline function


#define _POSIX_C_SOURCE 1

#include <unistd.h>
#include <inttypes.h>
#include <stdio.h>

#define STATUS_FORMAT "\r\033[2K\t[%" PRId64 "%%] Packets(finished/total): %" PRId64 "/%" PRId64
#define STATUS_FORMAT_FI "\r\033[2K\t[%" PRId64 "%%] Rays(finished/total): %" PRId64 "/%" PRId64

static inline void
print_progress (const int64_t current, const int64_t total)
{
  if (isatty(fileno(stderr)))
    {
      fprintf(stderr, STATUS_FORMAT,
              current * 100 / total,
              current,
              total);
    }
}

static inline void
print_progress_fi (const int64_t current, const int64_t total)
{
  if (isatty(fileno(stderr)))
    {
      fprintf(stderr, STATUS_FORMAT_FI,
              current * 100 / total,
              current,
              total);
    }
}

#define _POSIX_C_SOURCE 1

#include <unistd.h>
#include <inttypes.h>
#include <stdio.h>

#define STATUS_FORMAT "\r\033[2K\t[%" PRId64 "%%] Packets(finished/total): %" PRId64 "/%" PRId64
#define STATUS_FORMAT_FI "\r\033[2K\t[%" PRId64 "%%] Bins(finished/total): %" PRId64 "/%" PRId64

static inline void
print_progress (const int64_t current, const int64_t total)
{
  if (isatty(fileno(stderr)))
    {
      fprintf(stderr, STATUS_FORMAT,
              current * 100 / total,
              current,
              total);
    }
}

static inline void
print_progress_fi (const int64_t current, const int64_t total)
{
  if (isatty(fileno(stderr)))
    {
      fprintf(stderr, STATUS_FORMAT_FI,
              current * 100 / total,
              current,
              total);
    }
}

Correct status printout for FI

Correct status printout for FI


#ifndef DG_POINTS_TO_SET_H_
#define DG_POINTS_TO_SET_H_

#include "dg/PointerAnalysis/PointsToSets/OffsetsSetPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/SimplePointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/SeparateOffsetsPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/PointerIdPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/SmallOffsetsPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/AlignedSmallOffsetsPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/AlignedPointerIdPointsToSet.h"

namespace dg {
namespace pta {

//using PointsToSetT = OffsetsSetPointsToSet;
using PointsToSetT = PointerIdPointsToSet;
using PointsToMapT = std::map<Offset, PointsToSetT>;

} // namespace pta
} // namespace dg

#endif

#ifndef DG_POINTS_TO_SET_H_
#define DG_POINTS_TO_SET_H_

#include "dg/PointerAnalysis/PointsToSets/OffsetsSetPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/SimplePointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/SeparateOffsetsPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/PointerIdPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/SmallOffsetsPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/AlignedSmallOffsetsPointsToSet.h"
#include "dg/PointerAnalysis/PointsToSets/AlignedPointerIdPointsToSet.h"

namespace dg {
namespace pta {

using PointsToSetT = OffsetsSetPointsToSet;
using PointsToMapT = std::map<Offset, PointsToSetT>;

} // namespace pta
} // namespace dg

#endif

Revert "PTA: use bitvector-based points-to set representation"

This reverts commit 74f5d133452018f5e933ab864446bdb720fa84b9.


/* Copyright 2013 Jonne Nauha / jonne@adminotech.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && !defined(__MINGW32__) && !defined(OGRE_STATIC_LIB)
#	ifdef RenderSystem_Headless_EXPORTS
#		define _OgreHeadlessExport __declspec(dllexport)
#	else
#       if defined(__MINGW32__)
#           define _OgreHeadlessExport
#       else
#    		define _OgreHeadlessExport __declspec(dllimport)
#       endif
#	endif
#elif defined (OGRE_GCC_VISIBILITY)
#    define _OgreHeadlessExport  __attribute__ ((visibility("default")))
#else
#    define _OgreHeadlessExport
#endif

/* Copyright 2013 Jonne Nauha / jonne@adminotech.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#include "OgrePrerequisites.h"

#if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && !defined(__MINGW32__) && !defined(OGRE_STATIC_LIB)
#   ifdef RenderSystem_Headless_EXPORTS
#       define _OgreHeadlessExport __declspec(dllexport)
#   else
#       if defined(__MINGW32__)
#           define _OgreHeadlessExport
#       else
#           define _OgreHeadlessExport __declspec(dllimport)
#       endif
#   endif
#elif defined (OGRE_GCC_VISIBILITY)
#    define _OgreHeadlessExport  __attribute__ ((visibility("default")))
#else
#    define _OgreHeadlessExport
#endif

Fix compilation on non-windows, had not tested this before and was missinga platform include.


/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifdef __ROOTCLING__

// All these are there for the autoloading
#pragma link C++ class ROOT::Experimental::TDataFrame-;
#pragma link C++ class ROOT::Experimental::TDF::TInterface<ROOT::Detail::TDF::TFilterBase>-;
#pragma link C++ class ROOT::Experimental::TDF::TInterface<ROOT::Detail::TDF::TCustomColumnBase>-;
#pragma link C++ class ROOT::Detail::TLoopManager-;

#endif

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifdef __ROOTCLING__

// All these are there for the autoloading
#pragma link C++ class ROOT::Experimental::TDataFrame-;
#pragma link C++ class ROOT::Experimental::TDF::TInterface<ROOT::Detail::TDF::TFilterBase>-;
#pragma link C++ class ROOT::Experimental::TDF::TInterface<ROOT::Detail::TDF::TCustomColumnBase>-;
#pragma link C++ class ROOT::Detail::TDF::TLoopManager-;

#endif

[TDF] Solve undefined symbol issue spelling the right class name in the linkdef.


/* $Id$ $Revision$ */
/* vim:set shiftwidth=4 ts=8: */

/**********************************************************
*      This software is part of the graphviz package      *
*                http://www.graphviz.org/                 *
*                                                         *
*            Copyright (c) 1994-2004 AT&T Corp.           *
*                and is licensed under the                *
*            Common Public License, Version 1.0           *
*                      by AT&T Corp.                      *
*                                                         *
*        Information and Software Systems Research        *
*              AT&T Research, Florham Park NJ             *
**********************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#ifndef CLUSTEREDGES_H
#define CLUSTEREDGES_H

#include <render.h>

    extern int compoundEdges(graph_t * g, double SEP, int splines);

#endif

#ifdef __cplusplus
}
#endif

/* $Id$ $Revision$ */
/* vim:set shiftwidth=4 ts=8: */

/**********************************************************
*      This software is part of the graphviz package      *
*                http://www.graphviz.org/                 *
*                                                         *
*            Copyright (c) 1994-2004 AT&T Corp.           *
*                and is licensed under the                *
*            Common Public License, Version 1.0           *
*                      by AT&T Corp.                      *
*                                                         *
*        Information and Software Systems Research        *
*              AT&T Research, Florham Park NJ             *
**********************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#ifndef CLUSTEREDGES_H
#define CLUSTEREDGES_H

#include <render.h>
#include <adjust.h>

    extern int compoundEdges(graph_t * g, expand_t* pm, int splines);

#endif

#ifdef __cplusplus
}
#endif

Fix the sep and esep attributes to allow additive margins in addition to scaled margins.


#ifndef _LIDAR_H_
#define _LIDAR_H_

#ifdef __cplusplus
extern "C" {
#endif

const int LIDAR_DATA_PORT = 2368;
const int LIDAR_SYNC_PORT = 8308;
const int LIDAR_TIME_PORT = 10110;

typedef void (* LidarDataProcessor)(char *p, int start, int len);

typedef void * LIDAR;

LIDAR lidar_send_init(int port);
LIDAR lidar_receive_init(int port);
void lidar_dispose(LIDAR p);

void lidar_read_data(LIDAR p, LidarDataProcessor processor);
void lidar_write_data(LIDAR p, char * data, int start, int len);

#ifdef __cplusplus
}
#endif

#endif

#ifndef _LIDAR_H_
#define _LIDAR_H_

#ifdef __cplusplus
extern "C" {
#endif

#define LIDAR_DATA_PORT 2368
#define LIDAR_SYNC_PORT 8308
#define LIDAR_TIME_PORT 10110

typedef void (* LidarDataProcessor)(char *p, int start, int len);

typedef void * LIDAR;

LIDAR lidar_send_init(int port);
LIDAR lidar_receive_init(int port);
void lidar_dispose(LIDAR p);

void lidar_read_data(LIDAR p, LidarDataProcessor processor);
void lidar_write_data(LIDAR p, char * data, int start, int len);

#ifdef __cplusplus
}
#endif

#endif

Update LIDAR const to preprocessor macros


#include <stdio.h>

int main(void)
{
	printf("Hello world!");
	return 0;
}

#include <stdio.h>

int main(void)
{
	printf("Hello world!\n");
	return 0;
}

Add missing new line character

Add missing new line character


#ifndef PL_ZERO_UTIL_H
#define PL_ZERO_UTIL_H

#include <sstream>

namespace pl0 {

#if defined(_MSC_VER) || defined(__GNUC__)
namespace polyfill {

template <typename T, typename... Args>
void fold_write_stream(std::ostringstream &oss, T value, Args... args) {
    oss << value;
    fold_write_stream(oss, args...);
}

template <typename T>
void fold_write_stream(std::ostringstream &oss, T value) {
    oss << value;
}

}
#endif

class general_error {
    std::string message_;
public:
    template <typename... Args>
    general_error(Args... args) {
        std::ostringstream oss;
#if defined(_MSC_VER) || defined(__GNUC__)
        // Visual Studio 2017 does not support fold expression now.
        // We need to make a polyfill.
        polyfill::fold_write_stream(oss, args...);
#else
        oss << ... << args;
#endif
        message_ = oss.str();
    }

    const std::string &what() const { return message_; }
};

}

#endif

#ifndef PL_ZERO_UTIL_H
#define PL_ZERO_UTIL_H

#include <sstream>

namespace pl0 {

#if defined(_MSC_VER) || defined(__GNUC__)
namespace polyfill {

template <typename T>
void fold_write_stream(std::ostringstream &oss, T value) {
    oss << value;
}

template <typename T, typename... Args>
void fold_write_stream(std::ostringstream &oss, T value, Args... args) {
    oss << value;
    fold_write_stream(oss, args...);
}

}
#endif

class general_error {
    std::string message_;
public:
    template <typename... Args>
    general_error(Args... args) {
        std::ostringstream oss;
#if defined(_MSC_VER) || defined(__GNUC__)
        // Visual Studio 2017 does not support fold expression now.
        // We need to make a polyfill.
        polyfill::fold_write_stream(oss, args...);
#else
        oss << ... << args;
#endif
        message_ = oss.str();
    }

    const std::string &what() const { return message_; }
};

}

#endif

Swap two overloads to make g++ happy.

Swap two overloads to make g++ happy.

Hmmmm.


#ifndef MEGA_MAJOR_VERSION
#define MEGA_MAJOR_VERSION 4
#endif
#ifndef MEGA_MINOR_VERSION
#define MEGA_MINOR_VERSION 4
#endif
#ifndef MEGA_MICRO_VERSION
#define MEGA_MICRO_VERSION 0
#endif

Apply 1 suggestion(s) to 1 file(s)

Apply 1 suggestion(s) to 1 file(s)


/*
 * This file is part of Kotaka, a mud library for DGD
 * http://github.com/shentino/kotaka
 *
 * Copyright (C) 2021  Raymond Jennings
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

Add stub for LLA coordinates.

Add stub for LLA coordinates.


#include "std/list.h"
#include "std/memory.h"
#include "std/stack.h"

struct Stack {
  NodeT *list;
  AtomPoolT *pool;
};

StackT *NewStack(AtomPoolT *pool) {
  StackT *stack = NEW_S(StackT);

  stack->list = NewList();
  stack->pool = pool;

  StackPushNew(stack);

  return stack;
}

void DeleteStack(StackT *stack) {
  if (stack) {
    DeleteList(stack->list);
    DeleteAtomPool(stack->pool);
    DELETE(stack);
  }
}

void StackReset(StackT *stack) {
  ResetList(stack->list);
  ResetAtomPool(stack->pool);
}

void StackRemove(StackT *stack) {
  AtomFree(stack->pool, ListPopFront(stack->list));
}

PtrT StackPeek(StackT *stack, size_t index) {
  return ListGetNth(stack->list, index);
}

PtrT StackTop(StackT *stack) {
  return ListGetNth(stack->list, 0);
}

PtrT StackPushNew(StackT *stack) {
  PtrT item = AtomNew0(stack->pool);

  ListPushFront(stack->list, item);

  return item;
}

size_t StackSize(StackT *stack) {
  return ListSize(stack->list);
}

#include "std/list.h"
#include "std/memory.h"
#include "std/stack.h"

struct Stack {
  ListT *list;
  AtomPoolT *pool;
};

StackT *NewStack(AtomPoolT *pool) {
  StackT *stack = NEW_S(StackT);

  stack->list = NewList();
  stack->pool = pool;

  StackPushNew(stack);

  return stack;
}

void DeleteStack(StackT *stack) {
  if (stack) {
    DeleteList(stack->list);
    DeleteAtomPool(stack->pool);
    DELETE(stack);
  }
}

void StackReset(StackT *stack) {
  ResetList(stack->list);
  ResetAtomPool(stack->pool);
}

void StackRemove(StackT *stack) {
  AtomFree(stack->pool, ListPopFront(stack->list));
}

PtrT StackPeek(StackT *stack, size_t index) {
  return ListGet(stack->list, index);
}

PtrT StackTop(StackT *stack) {
  return ListGet(stack->list, 0);
}

PtrT StackPushNew(StackT *stack) {
  PtrT item = AtomNew0(stack->pool);

  ListPushFront(stack->list, item);

  return item;
}

size_t StackSize(StackT *stack) {
  return ListSize(stack->list);
}

Correct after list API changes.

Correct after list API changes.


#pragma once

// #define private public  // for tests

#include "common.h"

// associations of units
#define IVCO             VCO
#define IVCF             VCF
#define IVCA             VCA
#define IEG              EG
#define ILFO             LFO
#define ISlewRateLimiter SlewRateLimiter
#define IVoice           Voice
#define ISynthCore       SynthCore

#include "vco.h"
#include "vcf.h"
#include "vca.h"
#include "eg.h"
#include "lfo.h"
#include "slew-rate-limiter.h"
#include "voice.h"
#include "synth-core.h"

template <uint8_t T>
class Synth {
public:
  INLINE static void initialize() {
    ISynthCore<0>::initialize();
  }

  INLINE static void receive_midi_byte(uint8_t b) {
    return ISynthCore<0>::receive_midi_byte(b);
  }

  INLINE static int8_t clock() {
    return ISynthCore<0>::clock();
  }
};

#pragma once

// #define private public  // for tests

#include "common.h"

// associations of units
#define IVCO             VCO
#define IVCF             VCF
#define IVCA             VCA
#define IEG              EG
#define ILFO             LFO
#define ISlewRateLimiter SlewRateLimiter
#define IVoice           Voice
#define ISynthCore       SynthCore

#include "vco.h"
#include "vcf.h"
#include "vca.h"
#include "eg.h"
#include "lfo.h"
#include "slew-rate-limiter.h"
#include "voice.h"
#include "synth-core.h"

template <uint8_t T>
class Synth {
public:
  INLINE static void initialize() {
    ISynthCore<0>::initialize();
  }

  INLINE static void receive_midi_byte(uint8_t b) {
    ISynthCore<0>::receive_midi_byte(b);
  }

  INLINE static int8_t clock() {
    return ISynthCore<0>::clock();
  }
};

Fix a type of return value

Fix a type of return value


#ifndef PROPOSER_H
#define PROPOSER_H

#include <boost/shared_ptr.hpp>
#include <vector>
#include <map>
#include "proctor/detector.h"
#include "proctor/database_entry.h"

namespace pcl
{

  namespace proctor
  {

    struct Candidate {
      std::string id;
      float votes;
    };

    class Proposer {
      public:
        typedef boost::shared_ptr<Proposer> Ptr;
        typedef boost::shared_ptr<const Proposer> ConstPtr;

        typedef boost::shared_ptr<std::map<std::string, Entry> > DatabasePtr;
        typedef boost::shared_ptr<const std::map<std::string, Entry> > ConstDatabasePtr;

        Proposer()
        {}

        void
        setDatabase(const DatabasePtr database)
        {
          database_ = database;
        }

        virtual void
        getProposed(int max_num, Entry &query, std::vector<std::string> &input, std::vector<std::string> &output) = 0;

        virtual void
        selectBestCandidates(int max_num, vector<Candidate> &ballot, std::vector<std::string> &output);

      protected:
        DatabasePtr database_;
    };

  }
}

#endif

#ifndef PROPOSER_H
#define PROPOSER_H

#include <boost/shared_ptr.hpp>
#include <vector>
#include <map>
#include "proctor/detector.h"
#include "proctor/database_entry.h"

namespace pcl
{

  namespace proctor
  {

    struct Candidate {
      std::string id;
      double votes;
    };

    class Proposer {
      public:
        typedef boost::shared_ptr<Proposer> Ptr;
        typedef boost::shared_ptr<const Proposer> ConstPtr;

        typedef boost::shared_ptr<std::map<std::string, Entry> > DatabasePtr;
        typedef boost::shared_ptr<const std::map<std::string, Entry> > ConstDatabasePtr;

        Proposer()
        {}

        void
        setDatabase(const DatabasePtr database)
        {
          database_ = database;
        }

        virtual void
        getProposed(int max_num, Entry &query, std::vector<std::string> &input, std::vector<std::string> &output) = 0;

        virtual void
        selectBestCandidates(int max_num, vector<Candidate> &ballot, std::vector<std::string> &output);

      protected:
        DatabasePtr database_;
    };

  }
}

#endif

Change votes to use double.

Change votes to use double.

git-svn-id: e7ea667a1d39a4453c4efcc4ba7bca3d620c3f19@4320 a9d63959-f2ad-4865-b262-bf0e56cfafb6


#import <Foundation/Foundation.h>

void memorySafeExecuteSelector(Class klass, SEL selector);

#import <Foundation/Foundation.h>

/**
 Internal Fleet use only
 */
void memorySafeExecuteSelector(Class klass, SEL selector);

Mark ObjC magic as "internal use only"

Mark ObjC magic as "internal use only"


/* mbed Microcontroller Library - cmsis_nvic
 * Copyright (c) 2009-2011 ARM Limited. All rights reserved.
 *
 * CMSIS-style functionality to support dynamic vectors
 */

#ifndef MBED_CMSIS_NVIC_H
#define MBED_CMSIS_NVIC_H

#include <stdint.h>

#define NVIC_NUM_VECTORS      (16 + 81)   // CORE + MCU Peripherals
#define NVIC_USER_IRQ_OFFSET  16

#include "stm32f429xx.h"

#ifdef __cplusplus
extern "C" {
#endif

void NVIC_Relocate(void);
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector);
uint32_t NVIC_GetVector(IRQn_Type IRQn);

#ifdef __cplusplus
}
#endif

#endif

/* mbed Microcontroller Library - cmsis_nvic
 * Copyright (c) 2009-2011 ARM Limited. All rights reserved.
 *
 * CMSIS-style functionality to support dynamic vectors
 */

#ifndef MBED_CMSIS_NVIC_H
#define MBED_CMSIS_NVIC_H

#include <stdint.h>

#define NVIC_NUM_VECTORS      (16 + 91)   // CORE + MCU Peripherals
#define NVIC_USER_IRQ_OFFSET  16

#include "stm32f429xx.h"

#ifdef __cplusplus
extern "C" {
#endif

void NVIC_Relocate(void);
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector);
uint32_t NVIC_GetVector(IRQn_Type IRQn);

#ifdef __cplusplus
}
#endif

#endif

Fix nvic vectors number to 16 + 91

bsp/stm32f429: Fix nvic vectors number to 16 + 91

From st datasheet page 24:

    The devices embed a nested vectored interrupt controller
    able to manage 16 priority levels, and handle up to 91
    maskable interrupt channels plus the 16 interrupt lines
    of the Cortex®-M4 with FPU core.


#ifndef TYPES_H
#define TYPES_H

#include "primitive.h"

#include <vector>
#include "eigen3/Eigen/StdVector"

namespace InputGen{
namespace Application{
typedef double Scalar;
typedef typename InputGen::LinearPrimitive<InputGen::Application::Scalar> Primitive;

//! \brief sample storing a position and its assignment
struct Sample: public Primitive::vec{
    typedef Primitive::vec Base;
    typedef Base::Scalar Scalar;
    int primitiveId;

    inline Sample(): Base(), primitiveId(-1) {}
    template <class Derived>
    inline Sample(const Derived&v): Base(v), primitiveId(-1) {}
    inline Sample(const Scalar&x,
                  const Scalar&y,
                  const Scalar&z): Base(x,y,z), primitiveId(-1) {}
};

typedef std::vector<Sample,
                    Eigen::aligned_allocator<Sample> > PointSet;
}
}

#endif // TYPES_H

#ifndef TYPES_H
#define TYPES_H

#include "primitive.h"

#include <vector>
#include "eigen3/Eigen/StdVector"

namespace InputGen{
namespace Application{
typedef double Scalar;
typedef typename InputGen::LinearPrimitive<InputGen::Application::Scalar> Primitive;

//! \brief sample storing a position and its assignment
struct Sample: public Primitive::vec{
    typedef Primitive::vec Base;
    typedef Base::Scalar Scalar;
    int primitiveId;

    inline Sample(int id = -1): Base(), primitiveId(id) {}
    template <class Derived>
    inline Sample(const Derived&v, int id = -1): Base(v), primitiveId(id) {}
    inline Sample(const Scalar&x,
                  const Scalar&y,
                  const Scalar&z,
                  int id = -1): Base(x,y,z), primitiveId(id) {}
};

typedef std::vector<Sample,
                    Eigen::aligned_allocator<Sample> > PointSet;
}
}

#endif // TYPES_H

Add new optionnal constructor parameter to set Sample::primitiveId at construction time


#pragma once
#ifndef YOU_DATASTORE_DATASTORE_H_
#define YOU_DATASTORE_DATASTORE_H_

#include <deque>
#include <functional>
#include "boost/variant.hpp"
#include "task_typedefs.h"
#include "internal/operation.h"

namespace You {
namespace DataStore {
namespace UnitTests {}
class Transaction;
class DataStore {
	friend class Transaction;
public:
	static bool begin();

	// Modifying methods
	static bool post(TaskId, SerializedTask&);
	static bool put(TaskId, SerializedTask&);
	static bool erase(TaskId);

	static boost::variant<bool, SerializedTask> get(TaskId);
	static std::vector<SerializedTask>
		filter(const std::function<bool(SerializedTask)>&);
private:
	static DataStore& getInstance();
	bool isServing = false;
	std::deque<IOperation> operationsQueue;
};
}  // namespace DataStore
}  // namespace You
#endif  // YOU_DATASTORE_DATASTORE_H_

#pragma once
#ifndef YOU_DATASTORE_DATASTORE_H_
#define YOU_DATASTORE_DATASTORE_H_

#include <deque>
#include <functional>
#include "boost/variant.hpp"
#include "task_typedefs.h"
#include "internal/operation.h"

namespace You {
namespace DataStore {
namespace UnitTests {}
class Transaction;
class DataStore {
	friend class Transaction;
public:
	static bool begin();

	// Modifying methods
	static bool post(TaskId, SerializedTask&);
	static bool put(TaskId, SerializedTask&);
	static bool erase(TaskId);

	static boost::variant<bool, SerializedTask> get(TaskId);
	static std::vector<SerializedTask>
		filter(const std::function<bool(SerializedTask)>&);
private:
	static DataStore& getInstance();
	bool isServing = false;
	std::deque<Internal::IOperation> operationsQueue;
};
}  // namespace DataStore
}  // namespace You
#endif  // YOU_DATASTORE_DATASTORE_H_

Update reference to IOperation to include Internal namespace


/*
 * A solution to Exercise 2-4 in The C Programming Language (Second Edition).
 *
 * This file was written by Damien Dart <damiendart@pobox.com>. This is free
 * and unencumbered software released into the public domain. For more
 * information, please refer to the accompanying "UNLICENCE" file.
 */

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

void squeeze(char [], char *);

int main(void)
{
  char test_string[] = "Kumquat!";
  squeeze(test_string, "Squat.");
  printf("%s\n", test_string);
  return EXIT_SUCCESS;
}

void squeeze(char string_one[], char *string_two)
{
  int32_t i, j, k;
  bool in_string_two = false;
  for (i = k = 0; string_one[i] != '\0'; i++) {
    in_string_two = false;
    for (j = 0; (string_two[j] != '\0') && (in_string_two == false); j++) {
      in_string_two = (string_one[i] == string_two[j]);
    }
    if (in_string_two == false) {
      string_one[k++] = string_one[i];
    }
  }
  string_one[k] = '\0';
}

Add solution to Exercise 2-4.

Add solution to Exercise 2-4.


#ifndef PRIMARY_VIRTUALSECONDARY_H_
#define PRIMARY_VIRTUALSECONDARY_H_

#include <string>

#include "libaktualizr/types.h"
#include "managedsecondary.h"

namespace Primary {

class VirtualSecondaryConfig : public ManagedSecondaryConfig {
 public:
  VirtualSecondaryConfig() : ManagedSecondaryConfig(Type) {}
  VirtualSecondaryConfig(const Json::Value& json_config);

  static std::vector<VirtualSecondaryConfig> create_from_file(const boost::filesystem::path& file_full_path);
  void dump(const boost::filesystem::path& file_full_path) const;

 public:
  static const char* const Type;
};

class VirtualSecondary : public ManagedSecondary {
 public:
  explicit VirtualSecondary(Primary::VirtualSecondaryConfig sconfig_in);
  ~VirtualSecondary() override = default;

  std::string Type() const override { return VirtualSecondaryConfig::Type; }
  data::InstallationResult putMetadata(const Uptane::Target& target) override;
  data::InstallationResult putRoot(const std::string& root, bool director) override;
  data::InstallationResult sendFirmware(const Uptane::Target& target) override;
  data::InstallationResult install(const Uptane::Target& target) override;

  bool ping() const override { return true; }
};

}  // namespace Primary

#endif  // PRIMARY_VIRTUALSECONDARY_H_

#ifndef PRIMARY_VIRTUALSECONDARY_H_
#define PRIMARY_VIRTUALSECONDARY_H_

#include <string>

#include "libaktualizr/types.h"
#include "managedsecondary.h"

namespace Primary {

class VirtualSecondaryConfig : public ManagedSecondaryConfig {
 public:
  VirtualSecondaryConfig() : ManagedSecondaryConfig(Type) {}
  explicit VirtualSecondaryConfig(const Json::Value& json_config);

  static std::vector<VirtualSecondaryConfig> create_from_file(const boost::filesystem::path& file_full_path);
  void dump(const boost::filesystem::path& file_full_path) const;

 public:
  static const char* const Type;
};

class VirtualSecondary : public ManagedSecondary {
 public:
  explicit VirtualSecondary(Primary::VirtualSecondaryConfig sconfig_in);
  ~VirtualSecondary() override = default;

  std::string Type() const override { return VirtualSecondaryConfig::Type; }
  data::InstallationResult putMetadata(const Uptane::Target& target) override;
  data::InstallationResult putRoot(const std::string& root, bool director) override;
  data::InstallationResult sendFirmware(const Uptane::Target& target) override;
  data::InstallationResult install(const Uptane::Target& target) override;

  bool ping() const override { return true; }
};

}  // namespace Primary

#endif  // PRIMARY_VIRTUALSECONDARY_H_

Add 'explicit' keyword to single argument ctor

Avoid a potential implicit Json::Value -> VirtualSecondaryConfig conversion.

Signed-off-by: Phil Wise <e888d2bd6f13f82caa51a37c03d034c76f661ba3@phil-wise.com>


// RUN: %llvmgcc %s -S -O0 -o - | FileCheck %s
// REQUIRES: disabled
// Radar 9156771
typedef struct RGBColor {
  unsigned short red;
  unsigned short green;
  unsigned short blue;
} RGBColor;

RGBColor func();

RGBColor X;
void foo() {
//CHECK: store i48
  X = func();
}

// RUN: %llvmgcc %s -S -O0 -o - | FileCheck %s
// XTARGET: x86_64-apple-darwin
// Radar 9156771
typedef struct RGBColor {
  unsigned short red;
  unsigned short green;
  unsigned short blue;
} RGBColor;

RGBColor func();

RGBColor X;
void foo() {
//CHECK: store i48
  X = func();
}

Enable this test only for Darwin.

Enable this test only for Darwin.

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@128017 91177308-0d34-0410-b5e6-96231b3b80d8


/**
 * How to run
 *   $ gcc -o show_stored_address show_stored_address.c
 *   $ ./show_stored_address
 */

#include <stdio.h>
#include <stdlib.h>

char global_str[] = "global string";
static char static_global_str[] = "static global string";

void show_stored_address()
{
	char local_str[] = "local string";
	static char static_local_str[] = "static local string";
	char *malloc_str = NULL;

	malloc_str = (char *) malloc(32);
	if (malloc_str) {
		sprintf(malloc_str, "%s", "malloc string");
	}

	printf("%p: %s \n", local_str, local_str);
	printf("%p: %s \n", static_local_str, static_local_str);

	printf("%p: %s \n", global_str, global_str);
	printf("%p: %s \n", static_global_str, static_global_str);

	printf("%p: %s \n", malloc_str, malloc_str);
	printf("%p: %s \n", "literal string", "literal string");
}

int main(int argc, char *argv[])
{
	printf("Hello, world!\n");
	show_stored_address();
	return 0;
}

/*
Console output:

$ gcc -o show_stored_address show_stored_address.c
$ ./show_stored_address
$ ./show_stored_address
Hello, world!
0xffffcbbb: local string
0x100402040: static local string
0x100402010: global string
0x100402020: static global string
0x600000440: malloc string
0x100403009: literal string

The variables are stored in one of stack, static(data segment) or heap regions

*/

Test where the variables are stored in memory


//
//  HTMLAttributedString.h
//  HTMLAttributedStringExample
//
//  Created by Mohammed Islam on 3/31/14.
//  Copyright (c) 2014 KSI Technology. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface HTMLAttributedString : NSObject
{
	NSMutableArray *_cssAttributes;
	NSString *_bodyFontCss;
}

- (id)initWithText:(NSString *)text withBodyFont:(UIFont *)font;
+ (NSAttributedString *)stringWithText:(NSString *)text andBodyFont:(UIFont *)font;

@property (nonatomic, readonly) NSArray *cssAttributes;
@property (nonatomic, readonly) NSAttributedString *attributedText;
@property (nonatomic, readonly) NSString *text;
@property (nonatomic, strong) UIFont *bodyFont;

- (void)addCssAttribute:(NSString *)cssAttribute;
- (void)removeCssAttribute:(NSString *)cssAttribute;
- (void)clear;

@end

//
//  HTMLAttributedString.h
//  HTMLAttributedStringExample
//
//  Created by Mohammed Islam on 3/31/14.
//  Copyright (c) 2014 KSI Technology. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface HTMLAttributedString : NSObject
{
	NSMutableArray *_cssAttributes;
	NSString *_bodyFontCss;
}

- (id)initWithText:(NSString *)text withBodyFont:(UIFont *)font;
+ (NSAttributedString *)stringWithText:(NSString *)text andBodyFont:(UIFont *)font;

@property (nonatomic, readonly) NSArray *cssAttributes;
@property (nonatomic, readonly) NSAttributedString *attributedText;
@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) UIFont *bodyFont;

- (void)addCssAttribute:(NSString *)cssAttribute;
- (void)removeCssAttribute:(NSString *)cssAttribute;
- (void)clear;

@end

Allow text to be edited

Allow text to be edited


/*
 * Copyright 2011-2013 Gregory Banks
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include <np.h>
#include <stdio.h>

static void test_segv(void)
{
    fprintf(stderr, "About to do follow a NULL pointer\n");
    *(char *)0 = 0;
}

/*
 * Copyright 2011-2013 Gregory Banks
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include <np.h>
#include <stdio.h>

static void test_segv(void)
{
    fprintf(stderr, "About to follow a NULL pointer\n");
    *(char *)0 = 0;
}

Fix grammar bug in example

Fix grammar bug in example


// SKIP PARAM: --sets ana.activated[+] octApron --sets exp.solver.td3.side_widen cycle_self
// requires cycle_self to pass
#include <pthread.h>
#include <assert.h>

int g = 42;
int h = 42;
pthread_mutex_t A = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t B = PTHREAD_MUTEX_INITIALIZER;

void *t_fun(void *arg) {
  int x; // rand
  pthread_mutex_lock(&B);
  pthread_mutex_lock(&A);
  g = x;
  h = x - 17;
  pthread_mutex_unlock(&A);
  pthread_mutex_lock(&A);
  h = x;
  pthread_mutex_unlock(&A);
  pthread_mutex_unlock(&B);
  return NULL;
}

void *t2_fun(void *arg) {
  int x, y;
  pthread_mutex_lock(&A);
  x = g;
  y = h;
  pthread_mutex_unlock(&A);
  assert(y <= x); // requires cycle_self
  return NULL;
}

void *t3_fun(void *arg) {
  int x, y;
  pthread_mutex_lock(&B);
  pthread_mutex_lock(&A);
  x = g;
  y = h;
  pthread_mutex_unlock(&A);
  pthread_mutex_unlock(&B);
  assert(y == x);
  return NULL;
}

int main(void) {
  int x, y;

  pthread_t id, id2, id3;
  pthread_create(&id, NULL, t_fun, NULL);
  pthread_create(&id2, NULL, t2_fun, NULL);
  pthread_create(&id3, NULL, t3_fun, NULL);

  // thread 4
  pthread_mutex_lock(&A);
  x = g;
  y = h;
  pthread_mutex_lock(&B);
  assert(y == x);
  pthread_mutex_unlock(&B);
  pthread_mutex_unlock(&A);
  assert(y == x);
  return 0;
}

Add relational traces cluster-based example


#include "FreeRTOS.h"
#include "Semphr.h"
#include "task.h"

/* The interrupt entry point. */
void vEMAC_ISR_Wrapper( void ) __attribute__((naked));

/* The handler that does the actual work. */
void vEMAC_ISR_Handler( void );

extern xSemaphoreHandle xEMACSemaphore;

void vEMAC_ISR_Handler( void )
{
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;

    /* Clear the interrupt. */
    MAC_INTCLEAR = 0xffff;
    VICVectAddr = 0;

    /* Ensure the uIP task is not blocked as data has arrived. */
    xSemaphoreGiveFromISR( xEMACSemaphore, &xHigherPriorityTaskWoken );

	if( xHigherPriorityTaskWoken )
    {
    	/* Giving the semaphore woke a task. */
        portYIELD_FROM_ISR();
    }
}
/*-----------------------------------------------------------*/

void vEMAC_ISR_Wrapper( void )
{
	/* Save the context of the interrupted task. */
    portSAVE_CONTEXT();

    /* Call the handler.  This must be a separate function unless you can
    guarantee that no stack will be used. */
    vEMAC_ISR_Handler();

    /* Restore the context of whichever task is going to run next. */
    portRESTORE_CONTEXT();
}

#include "FreeRTOS.h"
#include "semphr.h"
#include "task.h"

/* The interrupt entry point. */
void vEMAC_ISR_Wrapper( void ) __attribute__((naked));

/* The handler that does the actual work. */
void vEMAC_ISR_Handler( void );

extern xSemaphoreHandle xEMACSemaphore;

void vEMAC_ISR_Handler( void )
{
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;

    /* Clear the interrupt. */
    MAC_INTCLEAR = 0xffff;
    VICVectAddr = 0;

    /* Ensure the uIP task is not blocked as data has arrived. */
    xSemaphoreGiveFromISR( xEMACSemaphore, &xHigherPriorityTaskWoken );

	if( xHigherPriorityTaskWoken )
    {
    	/* Giving the semaphore woke a task. */
        portYIELD_FROM_ISR();
    }
}
/*-----------------------------------------------------------*/

void vEMAC_ISR_Wrapper( void )
{
	/* Save the context of the interrupted task. */
    portSAVE_CONTEXT();

    /* Call the handler.  This must be a separate function unless you can
    guarantee that no stack will be used. */
    vEMAC_ISR_Handler();

    /* Restore the context of whichever task is going to run next. */
    portRESTORE_CONTEXT();
}

Correct case of include file to build on Linux.


#ifndef MCLISP_ALLOC_H_
#define MCLISP_ALLOC_H_

#include <array>
#include <cstddef>
#include <list>

#include "cons.h"

namespace mclisp
{

class ConsAllocator
{
public:
  typedef std::size_t size_type;

  ConsAllocator();
  ConsCell* Allocate();
  std::list<ConsCell*> Allocate(size_type n);
  void Deallocate(ConsCell* p);

  inline size_type max_size() const { return free_list_.size(); }
  inline const ConsCell* oob_pointer() const { return &heap_.front() - 1; }
  static constexpr size_type max_heap_size() { return kMaxHeapSize; }

private:
  static constexpr size_type kMaxHeapSize = 1500;

  std::list<ConsCell*> free_list_;
  std::array<ConsCell, kMaxHeapSize> heap_;
};

namespace Alloc
{

void Init();
void Shutdown();
const mclisp::ConsCell* AtomMagic();
mclisp::ConsCell* Allocate();

} // namespace Alloc

} // namespace mclisp

#endif // MCLISP_ALLOC_H_

#ifndef MCLISP_ALLOC_H_
#define MCLISP_ALLOC_H_

#include <array>
#include <cstddef>
#include <list>

#include "cons.h"

namespace mclisp
{

class ConsAllocator
{
public:
  typedef std::size_t size_type;

  ConsAllocator();
  ConsCell* Allocate();
  std::list<ConsCell*> Allocate(size_type n);
  void Deallocate(ConsCell* p);

  inline size_type max_size() const { return free_list_.size(); }
  inline const ConsCell* oob_pointer() const { return &heap_.front() - 1; }
  static constexpr size_type max_heap_size() { return kMaxHeapSize; }

private:
  static constexpr size_type kMaxHeapSize = 15000;

  std::list<ConsCell*> free_list_;
  std::array<ConsCell, kMaxHeapSize> heap_;
};

namespace Alloc
{

void Init();
void Shutdown();
const mclisp::ConsCell* AtomMagic();
mclisp::ConsCell* Allocate();

} // namespace Alloc

} // namespace mclisp

#endif // MCLISP_ALLOC_H_

Increase max heap size to 15,000 ConsCells.

Unit tests were running out of heap, due to GC not being implemented
yet. Also, 15,000 is the value mentioned by McCarthy in the paper.


#include <stdio.h>
#include <stdlib.h>

#include "list.h"

typedef struct _hash_t {
  int sum;
  int len;
} hash_t;

hash_t hash(char word[]) {
  hash_t ret = {0,0};
  int i;

  for (i = 0; word[i] != '\0'; i++) {
    ret.sum += word[i];
  }
  ret.len = i;

  return ret;
}

int eq(hash_t h1, hash_t h2) {
  return (h1.sum == h2.sum) && (h1.len == h2.len);
}

int is_anagram(char w1[], char w2[]) {
  return eq(hash(w1), hash(w2));
}

char** collect_anagrams(char* anagrams[], int len) {
  char** ret = (char**) malloc(len * sizeof(char));
  return ret;
}

int main(int argc, char* argv[]) {
  char* input[] = {"lol", "llo"};
  char* output[2];

  collect_anagrams(input, 2);

  list_t* list = list_new();
  list = list_append(list, "lol");
  pretty_print(list);
}

#include <stdio.h>
#include <stdlib.h>

#include "list.h"

typedef struct _hash_t {
  int sum;
  int len;
} hash_t;

hash_t hash(char word[]) {
  hash_t ret = {0,0};
  int i;

  for (i = 0; word[i] != '\0'; i++) {
    ret.sum += word[i];
  }
  ret.len = i;

  return ret;
}

int eq(hash_t h1, hash_t h2) {
  return (h1.sum == h2.sum) && (h1.len == h2.len);
}

int is_anagram(char w1[], char w2[]) {
  return eq(hash(w1), hash(w2));
}

char** collect_anagrams(char* anagrams[], int len) {
  char** ret = (char**) malloc(len * sizeof(char));
  return ret;
}

int main(int argc, char* argv[]) {
  char* input[] = {"lol", "llo"};
  char* output[2];

  collect_anagrams(input, 2);

  list_t* list = list_new();
  list = list_append(list, "lol");
  list = list_append(list, "lool");
  pretty_print(list);
}

Check it out with two items!

Check it out with two items!


/*
Input Format
You have to complete the Node* Insert(Node* head, int data, int position) method which takes three arguments - the head of the linked list, the integer to insert and the position at which the integer must be inserted. You should NOT read any input from stdin/console. position will always be between 0 and the number of the elements in the list (inclusive).

Output Format
Insert the new node at the desired position and return the head of the updated linked list. Do NOT print anything to stdout/console.

Sample Input

NULL, data = 3, position = 0
3 --> NULL, data = 4, position = 0

Sample Output

3 --> NULL
4 --> 3 --> NULL
Explanation
1. we have an empty list and position 0. 3 becomes head.
2. 4 is added to position 0, hence 4 becomes head.

Note
For the purpose of evaluation the list has been initialised with a node with data=2. Ignore it, this is done to avoid printing empty lists while comparing output.

*/

/*
  Insert Node at a given position in a linked list
  head can be NULL
  First element in the linked list is at position 0
  Node is defined as
  struct Node
  {
     int data;
     struct Node *next;
  }
*/
Node* InsertNth(Node *head, int data, int position)
{
    Node* temp = (Node*)malloc(sizeof(Node));
    temp->data = data;
    temp->next=NULL;

    Node* prev;
    prev = head;
    if(position == 0){
        temp->next=head;
        head=temp;
    }
    else{
        for(int i =0; i< position-1; i++){
            if(prev->next!=NULL)
            prev = prev->next;
        }

        temp->next = prev->next;
        prev->next = temp;
    }
    return head;
}

Add insert node at nth position

Add insert node at nth position


/*
  SMAL
  Copyright (c) 2011 Kurt A. Stephens
*/

#include "smal/smal.h"
#include "smal/thread.h"

#include <stdlib.h>
#include <stdio.h>
#include <string.h> /* memset() */
#include <unistd.h> /* getpid() */
#include <assert.h>

typedef void *my_oop;
typedef struct my_cons {
  my_oop car, cdr;
} my_cons;

static smal_type *my_cons_type;

static void * my_cons_mark (void *ptr)
{
#if 0
  smal_mark_ptr_n(ptr, 2, (void**) &((my_cons *) ptr)->car);
  return 0;
#else
  smal_mark_ptr(ptr, ((my_cons *) ptr)->car);
  return ((my_cons *) ptr)->cdr;
#endif
}

void my_print_stats()
{
  smal_stats stats = { 0 };
  int i;

  smal_global_stats(&stats);
  for ( i = 0; smal_stats_names[i]; ++ i ) {
    fprintf(stdout, "  %16lu %s\n", (unsigned long) (((size_t*) &stats)[i]), smal_stats_names[i]);
  }
  fprintf(stderr, "\n");
}

/*
  SMAL
  Copyright (c) 2011 Kurt A. Stephens
*/

#include "smal/smal.h"
#include "smal/thread.h"

#include <stdlib.h>
#include <stdio.h>
#include <string.h> /* memset() */
#include <unistd.h> /* getpid() */
#include <assert.h>

typedef void *my_oop;
typedef struct my_cons {
  my_oop car, cdr;
} my_cons;

static smal_type *my_cons_type;

static void * my_cons_mark (void *ptr)
{
  smal_mark_ptr(ptr, ((my_cons *) ptr)->car);
  return ((my_cons *) ptr)->cdr;
}

void my_print_stats()
{
  smal_stats stats = { 0 };
  int i;

  smal_global_stats(&stats);
  for ( i = 0; smal_stats_names[i]; ++ i ) {
    fprintf(stdout, "  %16lu %s\n", (unsigned long) (((size_t*) &stats)[i]), smal_stats_names[i]);
  }
  fprintf(stderr, "\n");
}

Return cdr for mark continuation.

Return cdr for mark continuation.


#include <sys/utsname.h>
#include <wchar.h>
#include <stdlib.h>

#define OS_VERSION_MAX_SIZE 128

wchar_t* getOS() {
  struct utsname system_info;
  if (uname(&system_info) != 0) return NULL;

  wchar_t* os = malloc(sizeof(os) * OS_VERSION_MAX_SIZE);
#ifdef __APPLE__
  int version = atoi(system_info.release);

  // Since Darwin 5.1 (released 2001), Darwin xx corresponds to Mac OS X 10.(xx - 4)
  const wchar_t* format;
  if (version < 5) {
    format = L"Mac OS X";
  } else {
    format = L"Mac OS X 10.%d";
  }

  if (swprintf(os, OS_VERSION_MAX_SIZE, format, version - 4) == -1) {
#else
  if (swprintf(os, OS_VERSION_MAX_SIZE, L"%s %s", system_info.sysname, system_info.release) == -1) {
#endif
    free(os);
    os = NULL;
  }
  return os;
}

#include <sys/utsname.h>
#include <wchar.h>
#include <stdlib.h>

#define OS_VERSION_MAX_SIZE 128

wchar_t* getOS() {
  struct utsname system_info;
  if (uname(&system_info) != 0) return NULL;

  wchar_t* os = malloc(sizeof(os) * OS_VERSION_MAX_SIZE);
#ifdef __APPLE__
  int major_version = atoi(system_info.release);
  int minor_version = atoi(system_info.release + 3);

  // Since Darwin 5.1 (released 2001), Darwin xx corresponds to Mac OS X 10.(xx - 4)
  // Since Darwin 20.1 (released 2020), Darwin xx.yy corresponds to Mac OS X (xx - 9).(yy - 1)
  const wchar_t* format;
  if (major_version < 5) {
    format = L"Mac OS X";
  } else if (major_version < 20) {
    format = L"Mac OS X %d.%d";
    minor_version = major_version - 4;
    major_version = 10;
  } else {
    format = L"Mac OS X %d.%d";
    minor_version = minor_version - 1;
    major_version = major_version - 9;
  }

  if (swprintf(os, OS_VERSION_MAX_SIZE, format, major_version, minor_version) == -1) {
#else
  if (swprintf(os, OS_VERSION_MAX_SIZE, L"%s %s", system_info.sysname, system_info.release) == -1) {
#endif
    free(os);
    os = NULL;
  }
  return os;
}

Update the versioning for macOS Big Sur

Update the versioning for macOS Big Sur


#ifndef EMULATOR_REGISTER_H
#define EMULATOR_REGISTER_H

#include <cstdint>

template <typename T>
class Register {
public:
    Register() {};

    void set(const T new_value) { val = new_value; };
    T value() const { return val; };

    void increment() { val += 1; };
    void decrement() { val -= 1; };

private:
    T val;
};

typedef Register<uint8_t> ByteRegister;
typedef Register<uint16_t> WordRegister;

class RegisterPair {
public:
    RegisterPair(ByteRegister& low, ByteRegister& high);

    void set_low(const uint8_t byte);
    void set_high(const uint8_t byte);

    void set_low(const ByteRegister& byte);
    void set_high(const ByteRegister& byte);

    void set(const uint16_t word);

    uint8_t low() const;
    uint8_t high() const;

    uint16_t value() const;

    void increment();
    void decrement();

private:
    ByteRegister& low_byte;
    ByteRegister& high_byte;
};

class Offset {
public:
    Offset(uint8_t val) : val(val) {};
    Offset(ByteRegister& reg) : val(reg.value()) {};

    uint8_t value() { return val; }

private:
    uint8_t val;
};

#endif

#ifndef EMULATOR_REGISTER_H
#define EMULATOR_REGISTER_H

#include <cstdint>

template <typename T>
class Register {
public:
    Register() {};

    void set(const T new_value) { val = new_value; };
    T value() const { return val; };

    void increment() { val += 1; };
    void decrement() { val -= 1; };

private:
    T val;
};

using ByteRegister = Register<uint8_t>;
using WordRegister = Register<uint16_t>;

class RegisterPair {
public:
    RegisterPair(ByteRegister& low, ByteRegister& high);

    void set_low(const uint8_t byte);
    void set_high(const uint8_t byte);

    void set_low(const ByteRegister& byte);
    void set_high(const ByteRegister& byte);

    void set(const uint16_t word);

    uint8_t low() const;
    uint8_t high() const;

    uint16_t value() const;

    void increment();
    void decrement();

private:
    ByteRegister& low_byte;
    ByteRegister& high_byte;
};

class Offset {
public:
    Offset(uint8_t val) : val(val) {};
    Offset(ByteRegister& reg) : val(reg.value()) {};

    uint8_t value() { return val; }

private:
    uint8_t val;
};

#endif

Convert to 'using' syntax for type aliases


/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
#include "config.h"

#if !defined(HAVE_HTONLL) && !defined(WORDS_BIGENDIAN)
uint64_t couchstore_byteswap64(uint64_t val)
{
    size_t ii;
    uint64_t ret = 0;
    for (ii = 0; ii < sizeof(uint64_t); ii++) {
        ret <<= 8;
        ret |= val & 0xff;
        val >>= 8;
    }
    return ret;
}
#endif

/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
#include "config.h"

#if !defined(HAVE_HTONLL) && !defined(WORDS_BIGENDIAN)
uint64_t couchstore_byteswap64(uint64_t val)
{
    size_t ii;
    uint64_t ret = 0;
    for (ii = 0; ii < sizeof(uint64_t); ii++) {
        ret <<= 8;
        ret |= val & 0xff;
        val >>= 8;
    }
    return ret;
}
#elif defined(__GNUC__)
// solaris boxes contains a ntohll/htonll method, but
// it seems like the gnu linker doesn't like to use
// an archive without _any_ symbols in it ;)
int unreferenced_symbol_to_satisfy_the_linker;
#endif

Add a small hack to satisfy build with gcc on smartos64

Solaris boxes contains a ntohll/htonll method, but
it seems like the gnu linker doesn't like to use
an archive without _any_ symbols in it ;)

Change-Id: Id3b3ae5ad055ed50a10e8e514b8266f659fb92c3
Reviewed-on: http://review.couchbase.org/15737
Reviewed-by: Jens Alfke <21e2afd93d5ce53123476032b5dca8a79b546094@couchbase.com>
Tested-by: Jens Alfke <21e2afd93d5ce53123476032b5dca8a79b546094@couchbase.com>


#ifndef HALIDE_CPLUSPLUS_MANGLE_H
#define HALIDE_CPLUSPLUS_MANGLE_H

/** \file
 *
 * A simple function to get a C++ mangled function name for a function.
 */

#include <string>
#include "IR.h"
#include "Target.h"

namespace Halide {
namespace Internal {

/** Return the mangled C++ name for a function.
 * The target parameter is used to decide on the C++
 * ABI/mangling style to use.
 */
std::string cplusplus_function_mangled_name(const std::string &name, const std::vector<std::string> &namespaces,
                                            Type return_type, const std::vector<ExternFuncArgument> &args,
                                            const Target &target);

void cplusplus_mangle_test();

}

}

#endif

#ifndef HALIDE_CPLUSPLUS_MANGLE_H
#define HALIDE_CPLUSPLUS_MANGLE_H

/** \file
 *
 * A simple function to get a C++ mangled function name for a function.
 */

#include <string>
#include "IR.h"
#include "Target.h"

namespace Halide {
namespace Internal {

/** Return the mangled C++ name for a function.
 * The target parameter is used to decide on the C++
 * ABI/mangling style to use.
 */
EXPORT std::string cplusplus_function_mangled_name(const std::string &name, const std::vector<std::string> &namespaces,
                                                   Type return_type, const std::vector<ExternFuncArgument> &args,
                                                   const Target &target);

EXPORT void cplusplus_mangle_test();

}

}

#endif

Add some EXPORT qualifiers for msvc

Add some EXPORT qualifiers for msvc


/* *
 *  This file is part of Feng
 *
 * Copyright (C) 2007 by LScube team <team@streaming.polito.it>
 * See AUTHORS for more details
 *
 * Feng is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * Feng is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Feng; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 *
 * */

#include <fenice/schedule.h>
#include <fenice/rtp.h>
#include <fenice/rtcp.h>

extern schedule_list sched[ONE_FORK_MAX_CONNECTION];

void schedule_stop(int id)
{
    RTCP_send_packet(sched[id].rtp_session,SR);
    RTCP_send_packet(sched[id].rtp_session,BYE);

    sched[id].rtp_session->pause=1;

    sched[id].rtp_session->started=0;
    //sched[id].rtsp_session->cur_state=READY_STATE;
}

/* *
 *  This file is part of Feng
 *
 * Copyright (C) 2007 by LScube team <team@streaming.polito.it>
 * See AUTHORS for more details
 *
 * Feng is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * Feng is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Feng; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 *
 * */

#include <fenice/schedule.h>
#include <fenice/rtp.h>
#include <fenice/rtcp.h>

extern schedule_list sched[ONE_FORK_MAX_CONNECTION];

void schedule_stop(int id)
{
    RTCP_send_packet(sched[id].rtp_session,SR);
    RTCP_send_packet(sched[id].rtp_session,BYE);
    RTCP_flush(sched[id].session);

    sched[id].rtp_session->pause=1;

    sched[id].rtp_session->started=0;
    //sched[id].rtsp_session->cur_state=READY_STATE;
}

Make sure the rtcp BYE gets sent

Make sure the rtcp BYE gets sent


/* Copyright (c) 2014-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

#import <FBSnapshotTestCase/FBSnapshotTestCase.h>

#import <AsyncDisplayKit/ASDisplayNode.h>

#define ASSnapshotVerifyNode(node__, identifier__) \
{ \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
}

@interface ASSnapshotTestCase : FBSnapshotTestCase

/**
 * Hack for testing.  ASDisplayNode lacks an explicit -render method, so we manually hit its layout & display codepaths.
 */
+ (void)hackilySynchronouslyRecursivelyRenderNode:(ASDisplayNode *)node;

@end

/* Copyright (c) 2014-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

#import <FBSnapshotTestCase/FBSnapshotTestCase.h>

#import <AsyncDisplayKit/ASDisplayNode.h>

#define ASSnapshotVerifyNode(node__, identifier__) \
{ \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
  [node__ setShouldRasterizeDescendants:YES]; \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
  [node__ setShouldRasterizeDescendants:NO]; \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
}

@interface ASSnapshotTestCase : FBSnapshotTestCase

/**
 * Hack for testing.  ASDisplayNode lacks an explicit -render method, so we manually hit its layout & display codepaths.
 */
+ (void)hackilySynchronouslyRecursivelyRenderNode:(ASDisplayNode *)node;

@end

Add tests for enabling / disabling shouldRasterize


/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#ifndef __AT45DB_H__
#define __AT45DB_H__

#include <hal/hal_flash_int.h>
#include <hal/hal_spi.h>

#ifdef __cplusplus
extern "C" {
#endif

struct at45db_dev {
    struct hal_flash hal;
    struct hal_spi_settings *settings;
    int spi_num;
    void *spi_cfg;                  /** Low-level MCU SPI config */
    int ss_pin;
    uint32_t baudrate;
    uint16_t page_size;             /** Page size to be used, valid: 512 and 528 */
    uint8_t disable_auto_erase;     /** Reads and writes auto-erase by default */
};

struct at45db_dev * at45db_default_config(void);
int at45db_read(const struct hal_flash *dev, uint32_t addr, void *buf,
                uint32_t len);
int at45db_write(const struct hal_flash *dev, uint32_t addr, const void *buf,
                 uint32_t len);
int at45db_erase_sector(const struct hal_flash *dev, uint32_t sector_address);
int at45db_sector_info(const struct hal_flash *dev, int idx, uint32_t *address,
                       uint32_t *sz);
int at45db_init(const struct hal_flash *dev);

#ifdef __cplusplus
}
#endif

#endif /* __AT45DB_H__ */

Add missing include for the AT45DB flash driver

PR #162 which added the driver for AT45DB was missing the include
file.


// Copyright (c) 2015, Matthew Malensek.
// Distributed under the BSD 2-Clause License (see LICENSE.txt for details)

#pragma once

#include <string>
#include <unordered_map>

#define GENERR  0x100
#define SKINERR 0x200
#define SYSERR  0x400

#define GENERR_NOTFOUND            GENERR + 1
#define GENERR_SETTINGSFILE        GENERR + 2
#define GENERR_MISSING_XML         GENERR + 3

#define SKINERR_INVALID_SKIN       SKINERR + 1
#define SKINERR_INVALID_OSD        SKINERR + 2
#define SKINERR_INVALID_METER      SKINERR + 3
#define SKINERR_INVALID_SLIDER     SKINERR + 4
#define SKINERR_INVALID_BG         SKINERR + 5
#define SKINERR_INVALID_SLIDERTYPE SKINERR + 7
#define SKINERR_NOTFOUND           SKINERR + 8
#define SKINERR_MISSING_XML        SKINERR + 9
#define SKINERR_READERR            SKINERR + 10

#define SYSERR_REGISTERCLASS       SYSERR + 1
#define SYSERR_CREATEWINDOW        SYSERR + 2

class Error {
public:
    static void ErrorMessage(unsigned int error, std::wstring detail = L"");
    static void ErrorMessageDie(unsigned int error, std::wstring detail = L"");

private:
    static std::unordered_map<int, std::wstring> errorMap;

    static wchar_t *ErrorType(unsigned int error);
};

// Copyright (c) 2015, Matthew Malensek.
// Distributed under the BSD 2-Clause License (see LICENSE.txt for details)

#pragma once

#include <string>
#include <unordered_map>

class Error {
public:
    static void ErrorMessage(unsigned int error, std::wstring detail = L"");
    static void ErrorMessageDie(unsigned int error, std::wstring detail = L"");

private:
    static std::unordered_map<int, std::wstring> errorMap;

    static wchar_t *ErrorType(unsigned int error);

public:
    static const int GENERR = 0x100;
    static const int SKINERR = 0x200;
    static const int SYSERR = 0x300;

    static const int GENERR_NOTFOUND = GENERR + 1;
    static const int GENERR_MISSING_XML = GENERR + 3;

    static const int SKINERR_INVALID_SKIN = SKINERR + 1;
    static const int SKINERR_INVALID_SLIDERTYPE = SKINERR + 7;
    static const int SKINERR_NOTFOUND = SKINERR + 8;
    static const int SKINERR_MISSING_XML = SKINERR + 9;
    static const int SKINERR_XMLPARSE = SKINERR + 10;

    static const int SYSERR_REGISTERCLASS = SYSERR + 1;
    static const int SYSERR_CREATEWINDOW = SYSERR + 2;
};

Redefine error codes as consts

Redefine error codes as consts


#include <sys/types.h>
#include <linux/unistd.h>
#include <gettid.h>

_syscall0(pid_t,gettid)

#include <sys/types.h>
#include <linux/unistd.h>
#include <gettid.h>
#include <errno.h>

_syscall0(pid_t,gettid)

Fix build bug on slackware

Fix build bug on slackware


#pragma once

#ifdef _MSC_VER
#define PACK(DECL) __pragma(pack(push, 1)) DECL __pragma(pack(pop))
#else
#define PACK(DECL) DECL __attribute__((__packed__))
#endif

Define PACK macro for structs and etc

Define PACK macro for structs and etc


#ifndef ATOMIC_GCC_BUILTINS_INCLUDED
#define ATOMIC_GCC_BUILTINS_INCLUDED
/*Modified by David Lowes 2015 - Zend Technologies LTD. LICENSE??*/
#define make_atomic_add_body(S)                     \
  v=  __atomic_fetch_add(a, v, __ATOMIC_RELAXED);
#define make_atomic_fas_body(S)                     \
  v= __sync_lock_test_and_set(a, v);
#define make_atomic_cas_body(S)                     \
  int ## S sav;                                     \
  int ## S cmp_val= *cmp;                           \
  sav= __sync_val_compare_and_swap(a, cmp_val, set);\
  if (!(ret= (sav == cmp_val))) *cmp= sav

#ifdef MY_ATOMIC_MODE_DUMMY
#define make_atomic_load_body(S)   ret= *a
#define make_atomic_store_body(S)  *a= v
#define MY_ATOMIC_MODE "gcc-builtins-up"

#elif defined(HAVE_GCC_C11_ATOMICS)
#define MY_ATOMIC_MODE "gcc-atomics-smp"
#define make_atomic_load_body(S)                    \
  ret= __atomic_load_n(a, __ATOMIC_SEQ_CST)
#define make_atomic_store_body(S)                   \
  __atomic_store_n(a, v, __ATOMIC_SEQ_CST)
#else
#define MY_ATOMIC_MODE "gcc-builtins-smp"
#define make_atomic_load_body(S)                    \
  ret= __sync_fetch_and_or(a, 0);
#define make_atomic_store_body(S)                   \
  (void) __sync_lock_test_and_set(a, v);
#endif

#endif /* ATOMIC_GCC_BUILTINS_INCLUDED */

Add implementation of atomic ops with libatomic instead of gcc builtins


#import <UIKit/UIKit.h>

//! Project version number for SwiftColors.
FOUNDATION_EXPORT double SwiftColorsVersionNumber;

//! Project version string for SwiftColors.
FOUNDATION_EXPORT const unsigned char SwiftColorsVersionString[];

#import <Foundation/Foundation.h>

//! Project version number for SwiftColors.
FOUNDATION_EXPORT double SwiftColorsVersionNumber;

//! Project version string for SwiftColors.
FOUNDATION_EXPORT const unsigned char SwiftColorsVersionString[];

Fix build error for OSX

Fix build error for OSX


//===- FuzzerRandom.h - Internal header for the Fuzzer ----------*- C++ -* ===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// fuzzer::Random
//===----------------------------------------------------------------------===//

#ifndef LLVM_FUZZER_RANDOM_H
#define LLVM_FUZZER_RANDOM_H

#include <random>

namespace fuzzer {
class Random : public std::minstd_rand {
 public:
  Random(unsigned int seed) : std::minstd_rand(seed) {}
  result_type operator()() { return this->std::minstd_rand::operator()(); }
  size_t Rand() { return this->operator()(); }
  size_t RandBool() { return Rand() % 2; }
  size_t operator()(size_t n) { return n ? Rand() % n : 0; }
  intptr_t operator()(intptr_t From, intptr_t To) {
    assert(From < To);
    intptr_t RangeSize = To - From + 1;
    return operator()(RangeSize) + From;
  }
};

}  // namespace fuzzer

#endif  // LLVM_FUZZER_RANDOM_H

//===- FuzzerRandom.h - Internal header for the Fuzzer ----------*- C++ -* ===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// fuzzer::Random
//===----------------------------------------------------------------------===//

#ifndef LLVM_FUZZER_RANDOM_H
#define LLVM_FUZZER_RANDOM_H

#include <random>

namespace fuzzer {
class Random : public std::mt19937 {
 public:
  Random(unsigned int seed) : std::mt19937(seed) {}
  result_type operator()() { return this->std::mt19937::operator()(); }
  size_t Rand() { return this->operator()(); }
  size_t RandBool() { return Rand() % 2; }
  size_t operator()(size_t n) { return n ? Rand() % n : 0; }
  intptr_t operator()(intptr_t From, intptr_t To) {
    assert(From < To);
    intptr_t RangeSize = To - From + 1;
    return operator()(RangeSize) + From;
  }
};

}  // namespace fuzzer

#endif  // LLVM_FUZZER_RANDOM_H

Revert r352732: [libFuzzer] replace slow std::mt19937 with a much faster std::minstd_rand

This causes a failure on the following bot as well as our internal ones:

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fuzzer/builds/23103

git-svn-id: c199f293c43da69278bea8e88f92242bf3aa95f7@352747 91177308-0d34-0410-b5e6-96231b3b80d8


/*
 *  hooks.h
 *  StatusSpec project
 *
 *  Copyright (c) 2014 thesupremecommander
 *  BSD 2-Clause License
 *  http://opensource.org/licenses/BSD-2-Clause
 *
 */

#pragma once

#include "stdafx.h"

#include <map>

#define CLIENT_DLL
#define GLOWS_ENABLE

#include "cdll_int.h"
#include "KeyValues.h"
#include "igameresources.h"
#include "vgui/vgui.h"
#include "vgui/IPanel.h"
#include "cbase.h"
#include "c_basecombatcharacter.h"
#include "glow_outline_effect.h"

#include <sourcehook/sourcehook_impl.h>
#include <sourcehook/sourcehook.h>

using namespace vgui;

class C_TFPlayer;

#if defined _WIN32
#define OFFSET_GETGLOWOBJECT 220
#define OFFSET_GETGLOWEFFECTCOLOR 221
#define OFFSET_UPDATEGLOWEFFECT 222
#define OFFSET_DESTROYGLOWEFFECT 223
#endif

static std::map<EHANDLE, int> onDataChangedHooks;

extern SourceHook::ISourceHook *g_SHPtr;
extern int g_PLID;

/*
 *  hooks.h
 *  StatusSpec project
 *
 *  Copyright (c) 2014 thesupremecommander
 *  BSD 2-Clause License
 *  http://opensource.org/licenses/BSD-2-Clause
 *
 */

#pragma once

#include "stdafx.h"

#include <map>

#define CLIENT_DLL
#define GLOWS_ENABLE

#include "cdll_int.h"
#include "KeyValues.h"
#include "igameresources.h"
#include "vgui/vgui.h"
#include "vgui/IPanel.h"
#include "cbase.h"
#include "c_basecombatcharacter.h"
#include "glow_outline_effect.h"

#include <sourcehook/sourcehook_impl.h>
#include <sourcehook/sourcehook.h>

using namespace vgui;

class C_TFPlayer;

#if defined _WIN32
#define OFFSET_GETGLOWEFFECTCOLOR 223
#define OFFSET_UPDATEGLOWEFFECT 224
#define OFFSET_DESTROYGLOWEFFECT 225
#endif

static std::map<EHANDLE, int> onDataChangedHooks;

extern SourceHook::ISourceHook *g_SHPtr;
extern int g_PLID;

Update vtable offsets for 2014-06-11 TF2 update.


#include <errno.h>
#include <asm/ptrace.h>
#include <sys/syscall.h>

int
ptrace(int request, int pid, int addr, int data)
{
	long ret;
	long res;
	if (request > 0 && request < 4) (long *)data = &ret;

	__asm__ volatile ("movel %1,%/d0\n\t"
			  "movel %2,%/d1\n\t"
			  "movel %3,%/d2\n\t"
			  "movel %4,%/d3\n\t"
			  "movel %5,%/d4\n\t"
			  "trap  #0\n\t"
			  "movel %/d0,%0"
		:"=g" (res)
		:"i" (__NR_ptrace), "g" (request), "g" (pid),
		 "g" (addr), "g" (data) : "%d0", "%d1", "%d2", "%d3", "%d4");

	if (res >= 0) {
		if (request > 0 && request < 4) {
			__set_errno(0);
			return (ret);
		}
		return (int) res;
	}
	__set_errno(-res);
	return -1;
}

#include <errno.h>
#include <asm/ptrace.h>
#include <sys/syscall.h>

int
ptrace(int request, int pid, int addr, int data)
{
	long ret;
	long res;
	if (request > 0 && request < 4) data = (int)&ret;

	__asm__ volatile ("movel %1,%/d0\n\t"
			  "movel %2,%/d1\n\t"
			  "movel %3,%/d2\n\t"
			  "movel %4,%/d3\n\t"
			  "movel %5,%/d4\n\t"
			  "trap  #0\n\t"
			  "movel %/d0,%0"
		:"=g" (res)
		:"i" (__NR_ptrace), "g" (request), "g" (pid),
		 "g" (addr), "g" (data) : "%d0", "%d1", "%d2", "%d3", "%d4");

	if (res >= 0) {
		if (request > 0 && request < 4) {
			__set_errno(0);
			return (ret);
		}
		return (int) res;
	}
	__set_errno(-res);
	return -1;
}

Patch from Bernardo Innocenti: Remove use of cast-as-l-value extension, removed in GCC 3.5.


/*
 * rect_utils.h
 *
 * Author: Ming Tsang
 * Copyright (c) 2014 Ming Tsang
 * Refer to LICENSE for details
 */

#pragma once

#include <cstdint>

#include "libutils/type/coord.h"
#include "libutils/type/rect.h"

namespace utils
{
namespace type
{

class RectUtils
{
public:
	/**
	 * Return whether @a point is rested inside @a rect
	 *
	 * @param rect
	 * @param point
	 * @return
	 * @see IsInsidePx()
	 */
	static bool IsInside(const Rect &rect, const Coord &point)
	{
		return (point.x > rect.coord.x
				&& point.x < static_cast<int32_t>(rect.coord.x + rect.size.w)
				&& point.y > rect.coord.y
				&& point.y < static_cast<int32_t>(rect.coord.y + rect.size.h));
	}

	/**
	 * Return whether a pixel at @a point is rested inside an image region
	 * @a rect. The difference between IsInsidePx() and IsInside() is that
	 * the top and left edges are inclusive in this method, useful when dealing
	 * with pixel
	 *
	 * @param rect
	 * @param point
	 * @return
	 * @see IsInside()
	 */
	static bool IsInsidePx(const Rect &rect, const Coord &point)
	{
		return (point.x >= rect.coord.x
				&& point.x < static_cast<int32_t>(rect.coord.x + rect.size.w)
				&& point.y >= rect.coord.y
				&& point.y < static_cast<int32_t>(rect.coord.y + rect.size.h));
	}
};

}
}

Add utility to check whether a point is inside a rect


/*
 * Copyright (c) 2013-2016 Apple Inc. All rights reserved.
 *
 * @APPLE_APACHE_LICENSE_HEADER_START@
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @APPLE_APACHE_LICENSE_HEADER_END@
 */

#include "internal.h"
#include "shims.h"

#if !HAVE_STRLCPY
size_t strlcpy(char *dst, const char *src, size_t size) {
	size_t res = strlen(dst) + strlen(src) + 1;
	if (size > 0) {
		size_t n = size - 1;
		strncpy(dst, src, n);
		dst[n] = 0;
	}
	return res;
}
#endif

Fix formatting to match libdispatch coding style.

Signed-off-by: Daniel A. Steffen <bc823475b60dbcbd7be1bbdfe095b5f1939d5bd2@apple.com>


#ifndef __LIB_H
#define __LIB_H

/* default lib includes */
#ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

/* default system includes - keep these at minimum.. */
#include <string.h> /* strcmp() etc. */
#ifdef HAVE_STRINGS_H
#  include <strings.h> /* strcasecmp() etc. */
#endif
#include <stdarg.h> /* va_list is used everywhere */
#include <limits.h> /* INT_MAX, etc. */
#include <errno.h> /* error checking is good */
#include <sys/types.h> /* many other includes want this */

#ifdef HAVE_STDINT_H
#  include <stdint.h> /* C99 int types, we mostly need uintmax_t */
#endif

#include "compat.h"
#include "macros.h"
#include "failures.h"

#include "data-stack.h"
#include "mempool.h"
#include "imem.h"

typedef struct buffer buffer_t;
typedef struct buffer string_t;

struct istream;
struct ostream;

#include "array-decl.h" /* ARRAY_DEFINE()s may exist in any header */
#include "strfuncs.h"

size_t nearest_power(size_t num);

void lib_init(void);
void lib_deinit(void);

#endif

#ifndef __LIB_H
#define __LIB_H

/* default lib includes */
#ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

/* default system includes - keep these at minimum.. */
#include <stddef.h> /* Solaris defines NULL wrong unless this is used */
#include <string.h> /* strcmp() etc. */
#ifdef HAVE_STRINGS_H
#  include <strings.h> /* strcasecmp() etc. */
#endif
#include <stdarg.h> /* va_list is used everywhere */
#include <limits.h> /* INT_MAX, etc. */
#include <errno.h> /* error checking is good */
#include <sys/types.h> /* many other includes want this */

#ifdef HAVE_STDINT_H
#  include <stdint.h> /* C99 int types, we mostly need uintmax_t */
#endif

#include "compat.h"
#include "macros.h"
#include "failures.h"

#include "data-stack.h"
#include "mempool.h"
#include "imem.h"

typedef struct buffer buffer_t;
typedef struct buffer string_t;

struct istream;
struct ostream;

#include "array-decl.h" /* ARRAY_DEFINE()s may exist in any header */
#include "strfuncs.h"

size_t nearest_power(size_t num);

void lib_init(void);
void lib_deinit(void);

#endif

Include stddef.h always to make NULL expand correctly in Solaris.


#ifndef PSTOREJNI_H
#define PSTOREJNI_H

#include <inttypes.h>

#ifdef __i386__
  #define LONG_TO_PTR(ptr) (void *) (uint32_t) ptr
#elif __X86_64__
  #define LONG_TO_PTR(ptr) (void *) ptr
#endif

#define PTR_TO_LONG(ptr) (long) ptr

#endif

#ifndef PSTOREJNI_H
#define PSTOREJNI_H

#include <inttypes.h>

#ifdef __i386__
  #define LONG_TO_PTR(ptr) (void *) (uint32_t) ptr
#elif __x86_64__
  #define LONG_TO_PTR(ptr) (void *) ptr
#endif

#define PTR_TO_LONG(ptr) (long) ptr

#endif

java: Use '__x86_64__' instead of '__X86_64__'

This fixes compilation error on Mac OS X.

Signed-off-by: Kare Nuorteva <9ddc85c347529f7b35a7cd6b44bef03c7222a8be@reaktor.fi>
Signed-off-by: Karim Osman <94396faf6cc817be76165477038b3cfa832e89a4@reaktor.fi>
Signed-off-by: Pekka Enberg <add4fcd06328a394f0ad91feda7ee057316dc5ed@kernel.org>


#import <HockeySDK/HockeySDK.h>

@interface BITHockeyManager (WMFExtensions) <BITHockeyManagerDelegate>

/**
 *  Configure and startup in one line.
 *  This will call the methods below as part of the configuration process.
 *  This method will use the current bundle id of the app
 */
- (void)wmf_setupAndStart;

/**
 *  Configure the alert to be displayed when a user is prompeted to send a crash report
 */
- (void)wmf_setupCrashNotificationAlert;

@end

@import HockeySDK;

@interface BITHockeyManager (WMFExtensions) <BITHockeyManagerDelegate>

/**
 *  Configure and startup in one line.
 *  This will call the methods below as part of the configuration process.
 *  This method will use the current bundle id of the app
 */
- (void)wmf_setupAndStart;

/**
 *  Configure the alert to be displayed when a user is prompeted to send a crash report
 */
- (void)wmf_setupCrashNotificationAlert;

@end

Revert "use old import syntax for HockeySDK"

This reverts commit 0babdd70b3ab330f032790521002f2e171fcf3e6.


//  IBM_PROLOG_BEGIN_TAG
//  This is an automatically generated prolog.
//
//  $Source: src/include/sys/interrupt.h $
//
//  IBM CONFIDENTIAL
//
//  COPYRIGHT International Business Machines Corp. 2011
//
//  p1
//
//  Object Code Only (OCO) source materials
//  Licensed Internal Code Source Materials
//  IBM HostBoot Licensed Internal Code
//
//  The source code for this program is not published or other-
//  wise divested of its trade secrets, irrespective of what has
//  been deposited with the U.S. Copyright Office.
//
//  Origin: 30
//
//  IBM_PROLOG_END
#ifndef __INTERRUPT_H
#define __INTERRUPT_H

extern const char* INTR_MSGQ;

/**
 * INTR constants
 */
enum
{
    ICPBAR_SCOM_ADDR = 0x020109c9,      //!< for P8, P7 = 0x02011C09
    // This BAR value agrees with simics (for now)
    ICPBAR_VAL = 0x03FBFF90,            //!< ICPBAR value bits[0:29]>>34
};

#endif

//  IBM_PROLOG_BEGIN_TAG
//  This is an automatically generated prolog.
//
//  $Source: src/include/sys/interrupt.h $
//
//  IBM CONFIDENTIAL
//
//  COPYRIGHT International Business Machines Corp. 2011
//
//  p1
//
//  Object Code Only (OCO) source materials
//  Licensed Internal Code Source Materials
//  IBM HostBoot Licensed Internal Code
//
//  The source code for this program is not published or other-
//  wise divested of its trade secrets, irrespective of what has
//  been deposited with the U.S. Copyright Office.
//
//  Origin: 30
//
//  IBM_PROLOG_END
#ifndef __INTERRUPT_H
#define __INTERRUPT_H

extern const char* INTR_MSGQ;

/**
 * INTR constants
 */
enum
{
    ICPBAR_SCOM_ADDR = 0x020109ca,      //!< for P8, P7 = 0x02011C09
    // This BAR value agrees with simics (for now)
    ICPBAR_VAL = 0x03FBFF90,            //!< ICPBAR value bits[0:29]>>34
};

#endif

Fix IPC BAR scom address

Fix IPC BAR scom address

Change-Id: Ib3e13d892e58faa12082d6a09a1f6b504af44ae5
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1058
Reviewed-by: Thi N. Tran <25a2bca7ae5a8ea03be09ca8d282480c08c13052@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: Mark W. Wenning <32e1305d9513301b64a3e92b63a7c80399d0fb59@us.ibm.com>
Reviewed-by: A. Patrick Williams III <c87e37b1a4035affd737b461af89fb722d635f4d@us.ibm.com>


// PARAM: --set exp.earlyglobs true --set exp.precious_globs[+] "'g'"

int g = 10;
int main(void){
  g = 100;
  assert(g==100);
  return 0;
}

Add regression test for exp.precious_globs


// PARAM: --enable ana.int.congruence --disable ana.int.def_exc
// This test ensures that operations on constant congr. classes (i.e. classes of the form {k} : arbitrary integer k) yield concrete vals

int main() {
    // basic arithmetic operators
    int a = 1;
    int b = 2;
    int c = -1;
    int d = -2;

    assert (a + b == 3); assert (a + d == -1);
    assert (a * b == 2); assert (b * c == -2);
    assert (a / b == 0); assert (d / c == 2);
    assert (b % a == 0); assert (d % c == 0);
    assert (-a == -1); assert (-d == 2);

    // logical operators
    int zero = 0;
    int one = 1;

    unsigned int uns_z = 0;

    assert ((zero || one) == 1); assert ((zero || zero) == 0); assert ((one || one) == 1);
    assert ((zero && one) == 0); assert ((zero && zero) == 0); assert ((one && one) == 1);
    assert (!one == 0); assert (!zero == 1);

    // bitwise operators
    assert ((zero & zero) == 0); assert ((zero & one) == 0); assert ((one & zero) == 0); assert ((one & one) == 1);
    assert ((zero | zero) == 0); assert ((zero | one) == 1); assert ((one | zero) == 1); assert ((one | one) == 1);
    assert ((zero ^ zero) == 0); assert ((zero ^ one) == 1); assert ((one ^ zero) == 1); assert ((one ^ one) == 0);
    assert (~zero == -1); assert (~uns_z == 4294967295);

    // shift-left
    unsigned char m = 136;
    assert ((m << 1) == 16);

    //shift-right missing as only top() is returned currently

    // comparisons
    assert ((a < b) == 1);
    assert ((a > b) == 0);
    assert ((a == b) == 0);
    assert ((a != b) == 1);

    return 0;
}

Add constant test for congruence domain

Add constant test for congruence domain


//
//  VKVotable.h
//  VoatKit
//
//  Created by Amar Ramachandran on 6/26/15.
//  Copyright © 2015 AmarJayR. All rights reserved.
//

#import "VKCreated.h"

typedef NS_ENUM(NSUInteger, VKVoteStatus) {
    VKVoteStatusUpvoted,
    VKVoteStatusDownvoted,
    VKVoteStatusNone
};

@interface VKVotable : VKCreated

/**
 The total number of upvotes.
 */
@property (nonatomic, assign, readonly) NSNumber* upvotes;

/**
 The total number of downvotes.
 */
@property (nonatomic, assign, readonly) NSNumber* downvotes;

/**
 The object's score.
 */
@property (nonatomic, assign, readonly) NSNumber* score;

/**
 The current user's vote status for this object.
 */
@property (nonatomic, assign, readonly) VKVoteStatus voteStatus;

/**
 Whether the current user has upvoted this object.
 */
- (BOOL)upvoted;

/**
 Whether the current user has downvoted this object.
 */
- (BOOL)downvoted;

/**
 Whether the current user has voted on this object.
 */
- (BOOL)voted;

@end

//
//  VKVotable.h
//  VoatKit
//
//  Created by Amar Ramachandran on 6/26/15.
//  Copyright © 2015 AmarJayR. All rights reserved.
//

#import "VKCreated.h"

typedef NS_ENUM(NSUInteger, VKVoteStatus) {
    VKVoteStatusNone,
    VKVoteStatusUpvoted,
    VKVoteStatusDownvoted
};

@interface VKVotable : VKCreated

/**
 The total number of upvotes.
 */
@property (nonatomic, assign, readonly) NSNumber* upvotes;

/**
 The total number of downvotes.
 */
@property (nonatomic, assign, readonly) NSNumber* downvotes;

/**
 The object's score.
 */
@property (nonatomic, assign, readonly) NSNumber* score;

/**
 The current user's vote status for this object.
 */
@property (nonatomic, assign, readonly) VKVoteStatus voteStatus;

/**
 Whether the current user has upvoted this object.
 */
- (BOOL)upvoted;

/**
 Whether the current user has downvoted this object.
 */
- (BOOL)downvoted;

/**
 Whether the current user has voted on this object.
 */
- (BOOL)voted;

@end

Change the default VKVoteStatus value to VKVoteStatusNone This is necessary because unvoted items don't send a "voteValue" field so the voteStatusJSONTransformer is never called


/***************************************************************************
 *   Copyright (C) 2003 by Unai Garro                                      *
 *   ugarro@users.sourceforge.net                                                       *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/
#ifndef INGREDIENTPROPERTYLIST_H
#define INGREDIENTPROPERTYLIST_H
#include <qptrlist.h>
#include "ingredientproperty.h"

/**
@author Unai Garro
*/

class PropertyPtrList: public QPtrList <IngredientProperty>
{
public:
PropertyPtrList(){};
~PropertyPtrList(){};
protected:
 virtual int compareItems( QPtrCollection::Item item1, QPtrCollection::Item item2){return (*((int*)item1)-*((int*)item2));};

};

class IngredientPropertyList{
public:
    IngredientPropertyList();

    ~IngredientPropertyList();

    IngredientProperty* getFirst(void);
    IngredientProperty* getNext(void);
    IngredientProperty* getElement(int index);
    void clear(void);
    bool isEmpty(void);
    void add(IngredientProperty &element);
    void append(IngredientProperty *property);
    int find(IngredientProperty* it);
    IngredientProperty* at(int pos);
    private:
    PropertyPtrList list;

};

#endif

/***************************************************************************
 *   Copyright (C) 2003 by Unai Garro                                      *
 *   ugarro@users.sourceforge.net                                                       *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/
#ifndef INGREDIENTPROPERTYLIST_H
#define INGREDIENTPROPERTYLIST_H
#include <qptrlist.h>
#include "ingredientproperty.h"

/**
@author Unai Garro
*/

class PropertyPtrList: public QPtrList <IngredientProperty>
{
public:
PropertyPtrList(){};
~PropertyPtrList(){};
protected:
 virtual int compareItems( QPtrCollection::Item item1, QPtrCollection::Item item2){return (((IngredientProperty*)item1)->id-((IngredientProperty*)item2)->id);};

};

class IngredientPropertyList{
public:
    IngredientPropertyList();

    ~IngredientPropertyList();

    IngredientProperty* getFirst(void);
    IngredientProperty* getNext(void);
    IngredientProperty* getElement(int index);
    void clear(void);
    bool isEmpty(void);
    void add(IngredientProperty &element);
    void append(IngredientProperty *property);
    int find(IngredientProperty* it);
    IngredientProperty* at(int pos);
    private:
    PropertyPtrList list;

};

#endif

Fix comparison between properties (compare the ID)

svn path=/trunk/kdeextragear-3/krecipes/; revision=237720


#pragma once

class VolumeTransformation {
public:
    virtual float Transform(float vol) = 0;
};

#pragma once

class VolumeTransformation {
public:
    /// <summary>
    /// Transforms a given volume level to a new ("virtual") level based on a
    /// formula or set of rules (e.g., a volume curve transformation).
    /// </summary>
    virtual float ToVirtual(float vol) = 0;

    /// <summary>
    /// Given a transformed ("virtual") volume value, this function reverts it
    /// back to its original value (assuming the given value was produced
    /// by the ToVirtual() function).
    /// </summary>
    virtual float FromVirtual(float vol) = 0;
};

Split transform methods into to/from

Split transform methods into to/from


/**
 * FreeIMU calibration header. Automatically generated by octave AccMagnCalib.m.
 * Do not edit manually unless you know what you are doing.
*/

/* // following example of calibration.h
#define CALIBRATION_H

const int acc_off_x = 205;
const int acc_off_y = -39;
const int acc_off_z = 1063;
const float acc_scale_x = 7948.565970;
const float acc_scale_y = 8305.469320;
const float acc_scale_z = 8486.650841;

const int magn_off_x = 67;
const int magn_off_y = -59;
const int magn_off_z = 26;
const float magn_scale_x = 527.652115;
const float magn_scale_y = 569.016790;
const float magn_scale_z = 514.710857;
*/

/**
 * FreeIMU calibration header. Automatically generated by FreeIMU_GUI.
 * Do not edit manually unless you know what you are doing.
*/

#define CALIBRATION_H

const int acc_off_x = 163;
const int acc_off_y = 119;
const int acc_off_z = -622;
const float acc_scale_x = 16387.035965;
const float acc_scale_y = 16493.176991;
const float acc_scale_z = 16517.294625;

const int magn_off_x = 26;
const int magn_off_y = -128;
const int magn_off_z = 43;
const float magn_scale_x = 528.171092;
const float magn_scale_y = 485.462478;
const float magn_scale_z = 486.973938;

Update for Arduino Due and refresh of files to make sure they are the latest