1 // weak_alias_test_main.cc -- test weak aliases for gold 2 3 // Copyright (C) 2008-2014 Free Software Foundation, Inc. 4 // Written by Ian Lance Taylor <iant (at) google.com>. 5 6 // This file is part of gold. 7 8 // This program is free software; you can redistribute it and/or modify 9 // it under the terms of the GNU General Public License as published by 10 // the Free Software Foundation; either version 3 of the License, or 11 // (at your option) any later version. 12 13 // This program is distributed in the hope that it will be useful, 14 // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 // GNU General Public License for more details. 17 18 // You should have received a copy of the GNU General Public License 19 // along with this program; if not, write to the Free Software 20 // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 21 // MA 02110-1301, USA. 22 23 #include <assert.h> 24 25 // Defined in both weak_alias_test_1.cc and weak_alias_test_2.cc, but 26 // we should get the one in weak_alias_test_1.cc. 27 extern int weak_symbol; 28 29 // Defined in weak_alias_test_2.cc. 30 extern int strong_symbol; 31 32 // weak_aliased is an alias for this. 33 int strong_aliased = 3; 34 35 // Defined as a weak alias in weak_alias_test_1.cc. 36 int weak_aliased_2 = 6; 37 38 // Defined in weak_alias_test_1.cc 39 extern int strong_aliased_3; 40 extern int weak_aliased_4; 41 42 // Defined in weak_alias_test_5.cc 43 extern int versioned_symbol; 44 extern int versioned_alias; 45 46 extern bool t1(); 47 extern bool t2(); 48 49 int 50 main() 51 { 52 // weak_symbol should come from weak_alias_test_3.cc. 53 assert(weak_symbol == 4); 54 55 // strong_symbol should come from weak_alias_test_2.cc. 56 assert(strong_symbol == 2); 57 58 // strong_aliased should come from this file, above. 59 assert(strong_aliased == 3); 60 61 // weak_aliased_2 should come from this file, above. 62 assert(weak_aliased_2 == 6); 63 64 // strong_aliased_3 should come from weak_alias_test_1.cc. 65 assert(strong_aliased_3 == 7); 66 67 // weak_aliased_4 should come from weak_alias_test_1.cc. 68 assert(weak_aliased_4 == 8); 69 70 // Make sure the symbols look right from a shared library. 71 assert(t1()); 72 73 // versioned_symbol comes from weak_alias_test_5.cc. 74 assert(versioned_symbol == 1); 75 // So does versioned_alias. 76 assert(versioned_alias == 1); 77 78 // Make sure the versioned symbols look right from a shared library. 79 assert(t2()); 80 } 81