#!/bin/bash # Copyright (C) 2003-2016 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # The GNU C Library 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 # Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see # . # # The list of data types has been created with # cat < # #include # #include # #include # EOF # gcc -D_GNU_SOURCE -E - | # egrep '^typedef.*;$' | # sed 's/^typedef[[:space:]]*//;s/\([[:space:]]\{1,\}__attribute__.*\);/;/;s/.*[[:space:]]\([*]\|\)\(.*\);/\2/' | # egrep -v '^_' | # LC_ALL=C sort -u # data=$1 shift cxx=$(echo $* | sed 's/-fgnu89-inline//') while read t; do echo -n "$t:" $cxx -S -xc++ -o - -D_GNU_SOURCE <(cat < #include #include #include void foo ($t) { } EOF ) | sed 's/[[:space:]]*[.]globa\?l[[:space:]]*_Z3foo\([_[:alnum:]]*\).*/\1/p;d' done <