12ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov//===----------- dlclose-test-so.cc -----------------------------*- C++ -*-===// 22ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// 32ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// The LLVM Compiler Infrastructure 42ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// 52ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// This file is distributed under the University of Illinois Open Source 62ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// License. See LICENSE.TXT for details. 72ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// 82ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov//===----------------------------------------------------------------------===// 92ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// 102ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// This file is a part of AddressSanitizer, an address sanity checker. 112ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// 122ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// Regression test for 132ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov// http://code.google.com/p/address-sanitizer/issues/detail?id=19 142ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov//===----------------------------------------------------------------------===// 152ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov#include <stdio.h> 162ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov 172ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovstatic int pad1; 182ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovstatic int static_var; 192ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovstatic int pad2; 202ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov 212ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovextern "C" 222ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovint *get_address_of_static_var() { 232ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov return &static_var; 242ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov} 252ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov 262ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov__attribute__((constructor)) 272ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovvoid at_dlopen() { 282ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov printf("%s: I am being dlopened\n", __FILE__); 292ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov} 302ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov__attribute__((destructor)) 312ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonovvoid at_dlclose() { 322ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov printf("%s: I am being dlclosed\n", __FILE__); 332ad9b21f865d305057deadb839d673cc499b439eAlexey Samsonov} 34