168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// Copyright (c) 2007, Google Inc.
268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// All rights reserved.
368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai//
468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// Redistribution and use in source and binary forms, with or without
568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// modification, are permitted provided that the following conditions are
668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// met:
768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai//
868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai//     * Redistributions of source code must retain the above copyright
968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// notice, this list of conditions and the following disclaimer.
1068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai//     * Redistributions in binary form must reproduce the above
1168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// copyright notice, this list of conditions and the following disclaimer
1268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// in the documentation and/or other materials provided with the
1368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// distribution.
1468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai//     * Neither the name of Google Inc. nor the names of its
1568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// contributors may be used to endorse or promote products derived from
1668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// this software without specific prior written permission.
1768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai//
1868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
3068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// ./dump_syms dump_syms_regtest.pdb > dump_syms_regtest.sym
3168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
3268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovainamespace google_breakpad {
3368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
3468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovaiclass C {
3568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai public:
3668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  C() : member_(1) {}
3768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  virtual ~C() {}
3868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
3968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  void set_member(int value) { member_ = value; }
4068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  int member() const { return member_; }
4168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
4268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  void f() { member_ = g(); }
4368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  virtual int g() { return 2; }
4468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  static char* h(const C &that) { return 0; }
4568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
4668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai private:
4768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  int member_;
4868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai};
4968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
5068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovaistatic int i() {
5168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  return 3;
5268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai}
5368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
5468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai}  // namespace google_breakpad
5568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
5668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovaiint main(int argc, char **argv) {
5768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  google_breakpad::C object;
5868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  object.set_member(google_breakpad::i());
5968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  object.f();
6068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  int value = object.g();
6168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  char *nothing = object.h(object);
6268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai
6368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai  return 0;
6468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai}
65