2 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
6 <title>/downloads/gdb6.8/gdb-6.8-d-1.patch - gdb-patches - dsource.org</title>
7 <meta name="description" content="Open Source Development for the D Programming Language">
8 <meta name="keywords" content="dsource, d programming, d programming language, subversion, trac">
9 <link rel="start" href="/projects/gdb-patches/wiki" /><link rel="search" href="/projects/gdb-patches/search" /><link rel="help" href="/projects/gdb-patches/wiki/TracGuide" /><link rel="stylesheet" href="/projects/gdb-patches/chrome/common/css/trac.css" type="text/css" /><link rel="stylesheet" href="/projects/gdb-patches/chrome/common/css/dsource.css" type="text/css" /><link rel="stylesheet" href="/projects/gdb-patches/chrome/common/css/diff.css" type="text/css" /><link rel="stylesheet" href="/projects/gdb-patches/chrome/common/css/code.css" type="text/css" /><link rel="stylesheet" href="/projects/gdb-patches/chrome/common/css/browser.css" type="text/css" /><link rel="stylesheet" href="/projects/gdb-patches/pygments/trac.css" /><link rel="icon" href="/projects/gdb-patches/chrome/common/dsource.ico" type="image/x-icon" /><link rel="shortcut icon" href="/projects/gdb-patches/chrome/common/dsource.ico" type="image/x-icon" /><link rel="up" href="/projects/gdb-patches/browser/downloads/gdb6.8" title="Parent directory" /><link rel="alternate" href="/projects/gdb-patches/browser/downloads/gdb6.8/gdb-6.8-d-1.patch?format=txt" title="Plain Text" type="text/plain" /><link rel="alternate" href="/projects/gdb-patches/browser/downloads/gdb6.8/gdb-6.8-d-1.patch?format=raw" title="Original Format" type="text/x-diff; charset=iso-8859-15" />
10 <style type="text/css">
12 <script type="text/javascript" src="/projects/gdb-patches/chrome/common/js/trac.js"></script>
13 <script type="text/javascript" src="/projects/gdb-patches/chrome/common/js/dsource.js"></script>
15 <body onload="initNav();">
22 <div id="logo"><img src="/chrome/dsource/img/dsource-logo.gif" /></div>
23 <div id="title">dsource.org</div>
24 <div id="tag">Open Source Development for<br />
25 the D Programming Language</div>
30 <li><a href="/">Home</a></li>
31 <li><a id="current" href="/projects/">Projects</a></li>
32 <li><a href="/forums/"><span>Forums</span></a></li>
33 <li><a href="/projects/tutorials/wiki"><span>Tutorials</span></a></li>
34 <li><a href="/site/"><span>Site</span></a></li>
44 <div id="header"><h1><a href="http://www.dsource.org/">gdb-patches</a></h1></div>
51 <div id="mainnav" class="nav"><ul><li class="first"><a accesskey="1" href="/projects/gdb-patches/wiki">Wiki</a></li><li><a accesskey="2" href="/projects/gdb-patches/timeline">Timeline</a></li><li><a accesskey="3" href="/projects/gdb-patches/roadmap">Roadmap</a></li><li class="active"><a href="/projects/gdb-patches/browser">Browse Source</a></li><li><a href="/projects/gdb-patches/report">View Tickets</a></li><li class="last"><a accesskey="4" href="/projects/gdb-patches/search">Search</a></li></ul></div>
52 <div id="metanav" class="nav"><ul><li class="first"><a href="/forums/login.php?redirect=../projects/gdb-patches/browser/downloads/gdb6.8/gdb-6.8-d-1.patch">Login</a></li><li><a accesskey="6" href="/projects/gdb-patches/wiki/TracGuide">Help/Guide</a></li><li class="last"><a href="/projects/gdb-patches/about">About Trac</a></li></ul></div>
54 <form id="search" action="/projects/gdb-patches/search" method="get">
56 <label for="proj-search">Search:</label>
57 <input type="text" id="proj-search" name="q" size="10" accesskey="f" value="" />
58 <input type="submit" value="Search" />
59 <input type="hidden" name="wiki" value="on" />
60 <input type="hidden" name="changeset" value="on" />
61 <input type="hidden" name="ticket" value="on" />
72 <div id="ctxtnav" class="nav">
74 <li class="first"><a href="/projects/gdb-patches/changeset/24/downloads/gdb6.8/gdb-6.8-d-1.patch">
76 <li class="last"><a href="/projects/gdb-patches/log/downloads/gdb6.8/gdb-6.8-d-1.patch">
83 <div id="content" class="browser">
84 <h1><a class="first" title="Go to root directory" href="/projects/gdb-patches/browser">root</a><span class="sep">/</span><a title="View downloads" href="/projects/gdb-patches/browser/downloads">downloads</a><span class="sep">/</span><a title="View gdb6.8" href="/projects/gdb-patches/browser/downloads/gdb6.8">gdb6.8</a><span class="sep">/</span><a title="View gdb-6.8-d-1.patch" href="/projects/gdb-patches/browser/downloads/gdb6.8/gdb-6.8-d-1.patch">gdb-6.8-d-1.patch</a></h1>
87 <form action="" method="get">
89 <label for="rev">View revision:</label>
90 <input type="text" id="rev" name="rev" value="" size="4" />
98 <table id="info" summary="Revision info"><tr>
100 Revision <a href="/projects/gdb-patches/changeset/24">24</a>, 17.9 kB
101 (checked in by Mihail Zenkov, 4 months ago)
103 <td class="message"><p>
112 <div class="diff"><ul class="entries"><li class="entry">
113 <h2>gdb-6.8/gdb/c-lang.c</h2>
114 <table class="inline" summary="Differences" cellspacing="0">
115 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
120 </tr></thead><tbody><tr><th>25</th><th>25</th><td class="l"><span>#include "parser-defs.h"</span> </td></tr><tr><th>26</th><th>26</th><td class="l"><span>#include "language.h"</span> </td></tr><tr><th>27</th><th>27</th><td class="l"><span>#include "c-lang.h"</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>28</th><td class="r"><ins>#include "d-lang.h"</ins> </td></tr></tbody><tbody><tr><th>28</th><th>29</th><td class="l"><span>#include "valprint.h"</span> </td></tr><tr><th>29</th><th>30</th><td class="l"><span>#include "macroscope.h"</span> </td></tr><tr><th>30</th><th>31</th><td class="l"><span>#include "gdb_assert.h"</span> </td></tr></tbody>
121 <tbody class="skipped">
122 <tr><th>…</th><th>…</th><td> </td></tr>
123 </tbody><tbody><tr><th>618</th><th>619</th><td class="l"><span> LANG_MAGIC</span> </td></tr><tr><th>619</th><th>620</th><td class="l"><span>};</span> </td></tr><tr><th>620</th><th>621</th><td class="l"><span></span> </td></tr></tbody><tbody class="add"><tr class="first"><th> </th><th>622</th><td class="r"><ins>const struct language_defn d_language_defn =</ins> </td></tr><tr><th> </th><th>623</th><td class="r"><ins>{</ins> </td></tr><tr><th> </th><th>624</th><td class="r"><ins> "d", /* Language name */</ins> </td></tr><tr><th> </th><th>625</th><td class="r"><ins> language_d,</ins> </td></tr><tr><th> </th><th>626</th><td class="r"><ins> range_check_off,</ins> </td></tr><tr><th> </th><th>627</th><td class="r"><ins> type_check_off,</ins> </td></tr><tr><th> </th><th>628</th><td class="r"><ins> case_sensitive_on,</ins> </td></tr><tr><th> </th><th>629</th><td class="r"><ins> array_row_major,</ins> </td></tr><tr><th> </th><th>630</th><td class="r"><ins> &exp_descriptor_standard,</ins> </td></tr><tr><th> </th><th>631</th><td class="r"><ins> c_preprocess_and_parse,</ins> </td></tr><tr><th> </th><th>632</th><td class="r"><ins> c_error,</ins> </td></tr><tr><th> </th><th>633</th><td class="r"><ins> null_post_parser,</ins> </td></tr><tr><th> </th><th>634</th><td class="r"><ins> c_printchar, /* Print a character constant */</ins> </td></tr><tr><th> </th><th>635</th><td class="r"><ins> c_printstr, /* Function to print string constant */</ins> </td></tr><tr><th> </th><th>636</th><td class="r"><ins> c_emit_char, /* Print a single char */</ins> </td></tr><tr><th> </th><th>637</th><td class="r"><ins> c_print_type, /* Print a type using appropriate syntax */</ins> </td></tr><tr><th> </th><th>638</th><td class="r"><ins> c_val_print, /* Print a value using appropriate syntax */</ins> </td></tr><tr><th> </th><th>639</th><td class="r"><ins> c_value_print, /* Print a top-level value */</ins> </td></tr><tr><th> </th><th>640</th><td class="r"><ins> NULL, /* Language specific skip_trampoline */</ins> </td></tr><tr><th> </th><th>641</th><td class="r"><ins> NULL, /* value_of_this */</ins> </td></tr><tr><th> </th><th>642</th><td class="r"><ins> basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */</ins> </td></tr><tr><th> </th><th>643</th><td class="r"><ins> basic_lookup_transparent_type,/* lookup_transparent_type */</ins> </td></tr><tr><th> </th><th>644</th><td class="r"><ins> d_demangle, /* Language specific symbol demangler */</ins> </td></tr><tr><th> </th><th>645</th><td class="r"><ins> NULL, /* Language specific class_name_from_physname */</ins> </td></tr><tr><th> </th><th>646</th><td class="r"><ins> c_op_print_tab, /* expression operators for printing */</ins> </td></tr><tr><th> </th><th>647</th><td class="r"><ins> 1, /* c-style arrays */</ins> </td></tr><tr><th> </th><th>648</th><td class="r"><ins> 0, /* String lower bound */</ins> </td></tr><tr><th> </th><th>649</th><td class="r"><ins> default_word_break_characters,</ins> </td></tr><tr><th> </th><th>650</th><td class="r"><ins> default_make_symbol_completion_list,</ins> </td></tr><tr><th> </th><th>651</th><td class="r"><ins> c_language_arch_info,</ins> </td></tr><tr><th> </th><th>652</th><td class="r"><ins> default_print_array_index,</ins> </td></tr><tr><th> </th><th>653</th><td class="r"><ins> default_pass_by_reference,</ins> </td></tr><tr><th> </th><th>654</th><td class="r"><ins> LANG_MAGIC</ins> </td></tr><tr><th> </th><th>655</th><td class="r"><ins>};</ins> </td></tr><tr><th> </th><th>656</th><td class="r"><ins></ins> </td></tr><tr class="last"><th> </th><th>657</th><td class="r"><ins></ins> </td></tr></tbody><tbody><tr><th>621</th><th>658</th><td class="l"><span>void</span> </td></tr><tr><th>622</th><th>659</th><td class="l"><span>_initialize_c_language (void)</span> </td></tr><tr><th>623</th><th>660</th><td class="l"><span>{</span> </td></tr><tr><th>624</th><th>661</th><td class="l"><span> add_language (&c_language_defn);</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>662</th><td class="r"><ins> add_language (&d_language_defn);</ins> </td></tr></tbody><tbody><tr><th>625</th><th>663</th><td class="l"><span> add_language (&cplus_language_defn);</span> </td></tr><tr><th>626</th><th>664</th><td class="l"><span> add_language (&asm_language_defn);</span> </td></tr><tr><th>627</th><th>665</th><td class="l"><span> add_language (&minimal_language_defn);</span> </td></tr></tbody>
125 </li><li class="entry">
126 <h2>gdb-6.8/gdb/defs.h</h2>
127 <table class="inline" summary="Differences" cellspacing="0">
128 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
133 </tr></thead><tbody><tr><th>174</th><th>174</th><td class="l"><span> language_auto, /* Placeholder for automatic setting */</span> </td></tr><tr><th>175</th><th>175</th><td class="l"><span> language_c, /* C */</span> </td></tr><tr><th>176</th><th>176</th><td class="l"><span> language_cplus, /* C++ */</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>177</th><td class="r"><ins> language_d, /* D */</ins> </td></tr></tbody><tbody><tr><th>177</th><th>178</th><td class="l"><span> language_objc, /* Objective-C */</span> </td></tr><tr><th>178</th><th>179</th><td class="l"><span> language_java, /* Java */</span> </td></tr><tr><th>179</th><th>180</th><td class="l"><span> language_fortran, /* Fortran */</span> </td></tr></tbody>
135 </li><li class="entry">
136 <h2>gdb-6.8/gdb/d-lang.c</h2>
137 <table class="inline" summary="Differences" cellspacing="0">
138 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
143 </tr></thead><tbody class="add"><tr class="first"><th> </th><th>1</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>2</th><td class="r"><ins>/* C language support routines for GDB, the GNU debugger.</ins> </td></tr><tr><th> </th><th>3</th><td class="r"><ins> Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002, 2003, 2004</ins> </td></tr><tr><th> </th><th>4</th><td class="r"><ins> Free Software Foundation, Inc.</ins> </td></tr><tr><th> </th><th>5</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>6</th><td class="r"><ins> This file is part of GDB.</ins> </td></tr><tr><th> </th><th>7</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>8</th><td class="r"><ins> This program is free software; you can redistribute it and/or modify</ins> </td></tr><tr><th> </th><th>9</th><td class="r"><ins> it under the terms of the GNU General Public License as published by</ins> </td></tr><tr><th> </th><th>10</th><td class="r"><ins> the Free Software Foundation; either version 2 of the License, or</ins> </td></tr><tr><th> </th><th>11</th><td class="r"><ins> (at your option) any later version.</ins> </td></tr><tr><th> </th><th>12</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>13</th><td class="r"><ins> This program is distributed in the hope that it will be useful,</ins> </td></tr><tr><th> </th><th>14</th><td class="r"><ins> but WITHOUT ANY WARRANTY; without even the implied warranty of</ins> </td></tr><tr><th> </th><th>15</th><td class="r"><ins> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</ins> </td></tr><tr><th> </th><th>16</th><td class="r"><ins> GNU General Public License for more details.</ins> </td></tr><tr><th> </th><th>17</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>18</th><td class="r"><ins> You should have received a copy of the GNU General Public License</ins> </td></tr><tr><th> </th><th>19</th><td class="r"><ins> along with this program; if not, write to the Free Software</ins> </td></tr><tr><th> </th><th>20</th><td class="r"><ins> Foundation, Inc., 59 Temple Place - Suite 330,</ins> </td></tr><tr><th> </th><th>21</th><td class="r"><ins> Boston, MA 02111-1307, USA. */</ins> </td></tr><tr><th> </th><th>22</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>23</th><td class="r"><ins>#include "defs.h"</ins> </td></tr><tr><th> </th><th>24</th><td class="r"><ins>#include "symtab.h"</ins> </td></tr><tr><th> </th><th>25</th><td class="r"><ins>#include "language.h"</ins> </td></tr><tr><th> </th><th>26</th><td class="r"><ins>#include "d-lang.h"</ins> </td></tr><tr><th> </th><th>27</th><td class="r"><ins>#include "c-lang.h"</ins> </td></tr><tr><th> </th><th>28</th><td class="r"><ins>#include "gdb_string.h"</ins> </td></tr><tr><th> </th><th>29</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>30</th><td class="r"><ins>#include <ctype.h></ins> </td></tr><tr><th> </th><th>31</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>32</th><td class="r"><ins>typedef struct {</ins> </td></tr><tr><th> </th><th>33</th><td class="r"><ins> size_t len;</ins> </td></tr><tr><th> </th><th>34</th><td class="r"><ins> char* str;</ins> </td></tr><tr><th> </th><th>35</th><td class="r"><ins> char* pos;</ins> </td></tr><tr><th> </th><th>36</th><td class="r"><ins>} String;</ins> </td></tr><tr><th> </th><th>37</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>38</th><td class="r"><ins>static size_t str_left(String* str) {</ins> </td></tr><tr><th> </th><th>39</th><td class="r"><ins> return (str->len - (str->pos - str->str));</ins> </td></tr><tr><th> </th><th>40</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>41</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>42</th><td class="r"><ins>static void str_resize(String* str, size_t new_size) {</ins> </td></tr><tr><th> </th><th>43</th><td class="r"><ins> int pos = str->pos - str->str;</ins> </td></tr><tr><th> </th><th>44</th><td class="r"><ins> if (new_size == 0)</ins> </td></tr><tr><th> </th><th>45</th><td class="r"><ins> new_size = strlen(str->str) + 1;</ins> </td></tr><tr><th> </th><th>46</th><td class="r"><ins> str->str = xrealloc(str->str, new_size);</ins> </td></tr><tr><th> </th><th>47</th><td class="r"><ins> str->len = new_size;</ins> </td></tr><tr><th> </th><th>48</th><td class="r"><ins> str->pos = str->str + pos;</ins> </td></tr><tr><th> </th><th>49</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>50</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>51</th><td class="r"><ins>static void append_len(String* str, char* src, size_t i) {</ins> </td></tr><tr><th> </th><th>52</th><td class="r"><ins> size_t amnt = str_left(str);</ins> </td></tr><tr><th> </th><th>53</th><td class="r"><ins> if (i > amnt) {</ins> </td></tr><tr><th> </th><th>54</th><td class="r"><ins> str_resize(str, str->len + i + 20);</ins> </td></tr><tr><th> </th><th>55</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>56</th><td class="r"><ins> memcpy(str->pos, src, i);</ins> </td></tr><tr><th> </th><th>57</th><td class="r"><ins> str->pos += i;</ins> </td></tr><tr><th> </th><th>58</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>59</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>60</th><td class="r"><ins>static void append(String* str, char* src) {</ins> </td></tr><tr><th> </th><th>61</th><td class="r"><ins> append_len(str, src, strlen(src));</ins> </td></tr><tr><th> </th><th>62</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>63</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>64</th><td class="r"><ins>static int extractidentifiers(String* output, String* mangled) {</ins> </td></tr><tr><th> </th><th>65</th><td class="r"><ins> long i = 0;</ins> </td></tr><tr><th> </th><th>66</th><td class="r"><ins> while (isdigit(*mangled->pos)) {</ins> </td></tr><tr><th> </th><th>67</th><td class="r"><ins> i = strtol(mangled->pos, &mangled->pos, 10);</ins> </td></tr><tr><th> </th><th>68</th><td class="r"><ins> if (i == 0 || i == LONG_MAX || i == LONG_MIN) {</ins> </td></tr><tr><th> </th><th>69</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>70</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>71</th><td class="r"><ins> if (strlen(mangled->pos) < i)</ins> </td></tr><tr><th> </th><th>72</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>73</th><td class="r"><ins> append_len(output, mangled->pos, i);</ins> </td></tr><tr><th> </th><th>74</th><td class="r"><ins> mangled->pos += i;</ins> </td></tr><tr><th> </th><th>75</th><td class="r"><ins> append(output, ".");</ins> </td></tr><tr><th> </th><th>76</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>77</th><td class="r"><ins> if (*mangled->pos == '\0' || i == 0)</ins> </td></tr><tr><th> </th><th>78</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>79</th><td class="r"><ins> output->pos--;</ins> </td></tr><tr><th> </th><th>80</th><td class="r"><ins> return 1;</ins> </td></tr><tr><th> </th><th>81</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>82</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>83</th><td class="r"><ins>static int extracttypeinfo(String* dest, String* id) {</ins> </td></tr><tr><th> </th><th>84</th><td class="r"><ins> if (*id->pos == '\0')</ins> </td></tr><tr><th> </th><th>85</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>86</th><td class="r"><ins> // Extract the type info:</ins> </td></tr><tr><th> </th><th>87</th><td class="r"><ins> switch (*id->pos++) {</ins> </td></tr><tr><th> </th><th>88</th><td class="r"><ins> // array, static array, dynamic array:</ins> </td></tr><tr><th> </th><th>89</th><td class="r"><ins> case 'A': case 'G': case 'H':</ins> </td></tr><tr><th> </th><th>90</th><td class="r"><ins> if (extracttypeinfo(dest, id) == -1)</ins> </td></tr><tr><th> </th><th>91</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>92</th><td class="r"><ins> append(dest, "[]");</ins> </td></tr><tr><th> </th><th>93</th><td class="r"><ins> return 1;</ins> </td></tr><tr><th> </th><th>94</th><td class="r"><ins> // pointer:</ins> </td></tr><tr><th> </th><th>95</th><td class="r"><ins> case 'P':</ins> </td></tr><tr><th> </th><th>96</th><td class="r"><ins> if (extracttypeinfo(dest, id) == -1)</ins> </td></tr><tr><th> </th><th>97</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>98</th><td class="r"><ins> append(dest, "*");</ins> </td></tr><tr><th> </th><th>99</th><td class="r"><ins> return 1;</ins> </td></tr><tr><th> </th><th>100</th><td class="r"><ins> // reference:</ins> </td></tr><tr><th> </th><th>101</th><td class="r"><ins> case 'R':</ins> </td></tr><tr><th> </th><th>102</th><td class="r"><ins> if (extracttypeinfo(dest, id) == -1)</ins> </td></tr><tr><th> </th><th>103</th><td class="r"><ins> return -1;</ins> </td></tr><tr><th> </th><th>104</th><td class="r"><ins> append(dest, "&");</ins> </td></tr><tr><th> </th><th>105</th><td class="r"><ins> return 1;</ins> </td></tr><tr><th> </th><th>106</th><td class="r"><ins> // return value:</ins> </td></tr><tr><th> </th><th>107</th><td class="r"><ins> case 'Z':</ins> </td></tr><tr><th> </th><th>108</th><td class="r"><ins> return extracttypeinfo(dest, id);</ins> </td></tr><tr><th> </th><th>109</th><td class="r"><ins> // out:</ins> </td></tr><tr><th> </th><th>110</th><td class="r"><ins> case 'J':</ins> </td></tr><tr><th> </th><th>111</th><td class="r"><ins> append(dest, "out ");</ins> </td></tr><tr><th> </th><th>112</th><td class="r"><ins> return extracttypeinfo(dest, id);</ins> </td></tr><tr><th> </th><th>113</th><td class="r"><ins> // inout:</ins> </td></tr><tr><th> </th><th>114</th><td class="r"><ins> case 'K':</ins> </td></tr><tr><th> </th><th>115</th><td class="r"><ins> append(dest, "inout ");</ins> </td></tr><tr><th> </th><th>116</th><td class="r"><ins> return extracttypeinfo(dest, id);</ins> </td></tr><tr><th> </th><th>117</th><td class="r"><ins> </ins> </td></tr><tr><th> </th><th>118</th><td class="r"><ins> // enum:</ins> </td></tr><tr><th> </th><th>119</th><td class="r"><ins> case 'E': case 'T': case 'D': case 'C': case 'S': case 'I':</ins> </td></tr><tr><th> </th><th>120</th><td class="r"><ins> return extractidentifiers(dest, id);</ins> </td></tr><tr><th> </th><th>121</th><td class="r"><ins> </ins> </td></tr><tr><th> </th><th>122</th><td class="r"><ins> // basic types:</ins> </td></tr><tr><th> </th><th>123</th><td class="r"><ins> case 'n': append(dest, "none"); return 1; // ever used?</ins> </td></tr><tr><th> </th><th>124</th><td class="r"><ins> case 'v': append(dest, "void"); return 1;</ins> </td></tr><tr><th> </th><th>125</th><td class="r"><ins> case 'g': append(dest, "byte"); return 1;</ins> </td></tr><tr><th> </th><th>126</th><td class="r"><ins> case 'h': append(dest, "ubyte"); return 1;</ins> </td></tr><tr><th> </th><th>127</th><td class="r"><ins> case 's': append(dest, "short"); return 1;</ins> </td></tr><tr><th> </th><th>128</th><td class="r"><ins> case 't': append(dest, "ushort"); return 1;</ins> </td></tr><tr><th> </th><th>129</th><td class="r"><ins> case 'i': append(dest, "int"); return 1;</ins> </td></tr><tr><th> </th><th>130</th><td class="r"><ins> case 'k': append(dest, "uint"); return 1;</ins> </td></tr><tr><th> </th><th>131</th><td class="r"><ins> case 'l': append(dest, "long"); return 1;</ins> </td></tr><tr><th> </th><th>132</th><td class="r"><ins> case 'm': append(dest, "ulong"); return 1;</ins> </td></tr><tr><th> </th><th>133</th><td class="r"><ins> case 'f': append(dest, "float"); return 1;</ins> </td></tr><tr><th> </th><th>134</th><td class="r"><ins> case 'd': append(dest, "double"); return 1;</ins> </td></tr><tr><th> </th><th>135</th><td class="r"><ins> case 'e': append(dest, "real"); return 1;</ins> </td></tr><tr><th> </th><th>136</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>137</th><td class="r"><ins> // imaginary and complex:</ins> </td></tr><tr><th> </th><th>138</th><td class="r"><ins> case 'o': append(dest, "ifloat"); return 1;</ins> </td></tr><tr><th> </th><th>139</th><td class="r"><ins> case 'p': append(dest, "idouble"); return 1;</ins> </td></tr><tr><th> </th><th>140</th><td class="r"><ins> case 'j': append(dest, "ireal"); return 1;</ins> </td></tr><tr><th> </th><th>141</th><td class="r"><ins> case 'q': append(dest, "cfloat"); return 1;</ins> </td></tr><tr><th> </th><th>142</th><td class="r"><ins> case 'r': append(dest, "cdouble"); return 1;</ins> </td></tr><tr><th> </th><th>143</th><td class="r"><ins> case 'c': append(dest, "creal"); return 1;</ins> </td></tr><tr><th> </th><th>144</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>145</th><td class="r"><ins> // other types:</ins> </td></tr><tr><th> </th><th>146</th><td class="r"><ins> case 'b': append(dest, "bit"); return 1;</ins> </td></tr><tr><th> </th><th>147</th><td class="r"><ins> case 'a': append(dest, "char"); return 1;</ins> </td></tr><tr><th> </th><th>148</th><td class="r"><ins> case 'u': append(dest, "wchar"); return 1;</ins> </td></tr><tr><th> </th><th>149</th><td class="r"><ins> case 'w': append(dest, "dchar"); return 1;</ins> </td></tr><tr><th> </th><th>150</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>151</th><td class="r"><ins> // typeinfo, error, instance:</ins> </td></tr><tr><th> </th><th>152</th><td class="r"><ins> case '@': return extractidentifiers(dest, id); // BUG: is this right?</ins> </td></tr><tr><th> </th><th>153</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>154</th><td class="r"><ins> default: append(dest, "unknown"); return 1;</ins> </td></tr><tr><th> </th><th>155</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>156</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>157</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>158</th><td class="r"><ins>char* d_demangle(const char* symbol_, int options) {</ins> </td></tr><tr><th> </th><th>159</th><td class="r"><ins> String output;</ins> </td></tr><tr><th> </th><th>160</th><td class="r"><ins> String mangled;</ins> </td></tr><tr><th> </th><th>161</th><td class="r"><ins> unsigned char isFunc = 0;</ins> </td></tr><tr><th> </th><th>162</th><td class="r"><ins> char* symbol;</ins> </td></tr><tr><th> </th><th>163</th><td class="r"><ins> //printf("%s: ", symbol);</ins> </td></tr><tr><th> </th><th>164</th><td class="r"><ins> if (symbol_ == NULL) {</ins> </td></tr><tr><th> </th><th>165</th><td class="r"><ins> //printf("NULL1\n");</ins> </td></tr><tr><th> </th><th>166</th><td class="r"><ins> return NULL;</ins> </td></tr><tr><th> </th><th>167</th><td class="r"><ins> } else if (strcmp(symbol_, "_Dmain") == 0) {</ins> </td></tr><tr><th> </th><th>168</th><td class="r"><ins> return strdup("D main");</ins> </td></tr><tr><th> </th><th>169</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>170</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>171</th><td class="r"><ins> symbol = xstrdup(symbol_);</ins> </td></tr><tr><th> </th><th>172</th><td class="r"><ins> mangled.len = strlen(symbol);</ins> </td></tr><tr><th> </th><th>173</th><td class="r"><ins> mangled.str = symbol;</ins> </td></tr><tr><th> </th><th>174</th><td class="r"><ins> mangled.pos = symbol;</ins> </td></tr><tr><th> </th><th>175</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>176</th><td class="r"><ins> output.len = 2;</ins> </td></tr><tr><th> </th><th>177</th><td class="r"><ins> output.str = xmalloc(output.len);</ins> </td></tr><tr><th> </th><th>178</th><td class="r"><ins> output.pos = output.str;</ins> </td></tr><tr><th> </th><th>179</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>180</th><td class="r"><ins> if (symbol == strstr(symbol, "_D")) {</ins> </td></tr><tr><th> </th><th>181</th><td class="r"><ins> mangled.pos += 2;</ins> </td></tr><tr><th> </th><th>182</th><td class="r"><ins> isFunc = 1;</ins> </td></tr><tr><th> </th><th>183</th><td class="r"><ins> } else if (symbol == strstr(symbol, "__Class_")) {</ins> </td></tr><tr><th> </th><th>184</th><td class="r"><ins> mangled.pos += 8;</ins> </td></tr><tr><th> </th><th>185</th><td class="r"><ins> } else if (symbol == strstr(symbol, "__init_")) {</ins> </td></tr><tr><th> </th><th>186</th><td class="r"><ins> mangled.pos += 7;</ins> </td></tr><tr><th> </th><th>187</th><td class="r"><ins> } else if (symbol == strstr(symbol, "__vtbl_")) {</ins> </td></tr><tr><th> </th><th>188</th><td class="r"><ins> mangled.pos += 7;</ins> </td></tr><tr><th> </th><th>189</th><td class="r"><ins> } else if (symbol == strstr(symbol, "__modctor_")) {</ins> </td></tr><tr><th> </th><th>190</th><td class="r"><ins> mangled.pos += 10;</ins> </td></tr><tr><th> </th><th>191</th><td class="r"><ins> } else if (symbol == strstr(symbol, "__moddtor_")) {</ins> </td></tr><tr><th> </th><th>192</th><td class="r"><ins> mangled.pos += 10;</ins> </td></tr><tr><th> </th><th>193</th><td class="r"><ins> } else if (symbol == strstr(symbol, "__ModuleInfo_")) {</ins> </td></tr><tr><th> </th><th>194</th><td class="r"><ins> mangled.pos += 13;</ins> </td></tr><tr><th> </th><th>195</th><td class="r"><ins> } else {</ins> </td></tr><tr><th> </th><th>196</th><td class="r"><ins> xfree(output.str);</ins> </td></tr><tr><th> </th><th>197</th><td class="r"><ins> xfree(symbol);</ins> </td></tr><tr><th> </th><th>198</th><td class="r"><ins> //printf("NULL2\n");</ins> </td></tr><tr><th> </th><th>199</th><td class="r"><ins> return NULL;</ins> </td></tr><tr><th> </th><th>200</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>201</th><td class="r"><ins> </ins> </td></tr><tr><th> </th><th>202</th><td class="r"><ins> </ins> </td></tr><tr><th> </th><th>203</th><td class="r"><ins> if (extractidentifiers(&output, &mangled) < 0) {</ins> </td></tr><tr><th> </th><th>204</th><td class="r"><ins> xfree(output.str);</ins> </td></tr><tr><th> </th><th>205</th><td class="r"><ins> xfree(symbol);</ins> </td></tr><tr><th> </th><th>206</th><td class="r"><ins> //printf("NULL3\n");</ins> </td></tr><tr><th> </th><th>207</th><td class="r"><ins> return NULL;</ins> </td></tr><tr><th> </th><th>208</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>209</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>210</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>211</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>212</th><td class="r"><ins> append(&output, "(");</ins> </td></tr><tr><th> </th><th>213</th><td class="r"><ins> if (isFunc == 1 && *mangled.pos == 'F') {</ins> </td></tr><tr><th> </th><th>214</th><td class="r"><ins> mangled.pos++;</ins> </td></tr><tr><th> </th><th>215</th><td class="r"><ins> while (*mangled.pos != '\0' && *mangled.pos != 'Z') {</ins> </td></tr><tr><th> </th><th>216</th><td class="r"><ins> if (isFunc == 1) {</ins> </td></tr><tr><th> </th><th>217</th><td class="r"><ins> isFunc++;</ins> </td></tr><tr><th> </th><th>218</th><td class="r"><ins> } else {</ins> </td></tr><tr><th> </th><th>219</th><td class="r"><ins> append(&output, ", ");</ins> </td></tr><tr><th> </th><th>220</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>221</th><td class="r"><ins> if (extracttypeinfo(&output, &mangled) < 0) {</ins> </td></tr><tr><th> </th><th>222</th><td class="r"><ins> xfree(output.str);</ins> </td></tr><tr><th> </th><th>223</th><td class="r"><ins> xfree(symbol);</ins> </td></tr><tr><th> </th><th>224</th><td class="r"><ins> return NULL;</ins> </td></tr><tr><th> </th><th>225</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>226</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>227</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>228</th><td class="r"><ins> append(&output, ")");</ins> </td></tr><tr><th> </th><th>229</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>230</th><td class="r"><ins> //Doesn't display the return type, but wouldn't be too hard to do.</ins> </td></tr><tr><th> </th><th>231</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>232</th><td class="r"><ins> append_len(&output, "", 1);</ins> </td></tr><tr><th> </th><th>233</th><td class="r"><ins> str_resize(&output, 0);</ins> </td></tr><tr><th> </th><th>234</th><td class="r"><ins> //printf("%s\n", output.str);</ins> </td></tr><tr><th> </th><th>235</th><td class="r"><ins> xfree(symbol);</ins> </td></tr><tr><th> </th><th>236</th><td class="r"><ins> return output.str;</ins> </td></tr><tr><th> </th><th>237</th><td class="r"><ins>}</ins> </td></tr><tr><th> </th><th>238</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>239</th><td class="r"><ins>char* d_sym_demangle(const struct general_symbol_info *gsymbol) {</ins> </td></tr><tr><th> </th><th>240</th><td class="r"><ins> return d_demangle(gsymbol->name, 0);</ins> </td></tr><tr class="last"><th> </th><th>241</th><td class="r"><ins>}</ins> </td></tr></tbody>
145 </li><li class="entry">
146 <h2>gdb-6.8/gdb/d-lang.h</h2>
147 <table class="inline" summary="Differences" cellspacing="0">
148 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
153 </tr></thead><tbody class="add"><tr class="first"><th> </th><th>1</th><td class="r"><ins>/* C language support definitions for GDB, the GNU debugger.</ins> </td></tr><tr><th> </th><th>2</th><td class="r"><ins> Copyright 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2002</ins> </td></tr><tr><th> </th><th>3</th><td class="r"><ins> Free Software Foundation, Inc.</ins> </td></tr><tr><th> </th><th>4</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>5</th><td class="r"><ins> This file is part of GDB.</ins> </td></tr><tr><th> </th><th>6</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>7</th><td class="r"><ins> This program is free software; you can redistribute it and/or modify</ins> </td></tr><tr><th> </th><th>8</th><td class="r"><ins> it under the terms of the GNU General Public License as published by</ins> </td></tr><tr><th> </th><th>9</th><td class="r"><ins> the Free Software Foundation; either version 2 of the License, or</ins> </td></tr><tr><th> </th><th>10</th><td class="r"><ins> (at your option) any later version.</ins> </td></tr><tr><th> </th><th>11</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>12</th><td class="r"><ins> This program is distributed in the hope that it will be useful,</ins> </td></tr><tr><th> </th><th>13</th><td class="r"><ins> but WITHOUT ANY WARRANTY; without even the implied warranty of</ins> </td></tr><tr><th> </th><th>14</th><td class="r"><ins> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</ins> </td></tr><tr><th> </th><th>15</th><td class="r"><ins> GNU General Public License for more details.</ins> </td></tr><tr><th> </th><th>16</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>17</th><td class="r"><ins> You should have received a copy of the GNU General Public License</ins> </td></tr><tr><th> </th><th>18</th><td class="r"><ins> along with this program; if not, write to the Free Software</ins> </td></tr><tr><th> </th><th>19</th><td class="r"><ins> Foundation, Inc., 59 Temple Place - Suite 330,</ins> </td></tr><tr><th> </th><th>20</th><td class="r"><ins> Boston, MA 02111-1307, USA. */</ins> </td></tr><tr><th> </th><th>21</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>22</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>23</th><td class="r"><ins>#if !defined (D_LANG_H)</ins> </td></tr><tr><th> </th><th>24</th><td class="r"><ins>#define D_LANG_H 1</ins> </td></tr><tr><th> </th><th>25</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>26</th><td class="r"><ins>#include "symtab.h"</ins> </td></tr><tr><th> </th><th>27</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>28</th><td class="r"><ins>/*****************************</ins> </td></tr><tr><th> </th><th>29</th><td class="r"><ins> D Language stuff</ins> </td></tr><tr><th> </th><th>30</th><td class="r"><ins>******************************/</ins> </td></tr><tr><th> </th><th>31</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>32</th><td class="r"><ins>char* d_demangle(const char* mangled, int options);</ins> </td></tr><tr><th> </th><th>33</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>34</th><td class="r"><ins>char* d_sym_demangle(const struct general_symbol_info *gsymbol);</ins> </td></tr><tr><th> </th><th>35</th><td class="r"><ins></ins> </td></tr><tr><th> </th><th>36</th><td class="r"><ins></ins> </td></tr><tr class="last"><th> </th><th>37</th><td class="r"><ins>#endif /* !defined (D_LANG_H) */</ins> </td></tr></tbody>
155 </li><li class="entry">
156 <h2>gdb-6.8/gdb/dwarf2read.c</h2>
157 <table class="inline" summary="Differences" cellspacing="0">
158 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
163 </tr></thead><tbody><tr><th>6473</th><th>6473</th><td class="l"><span> case DW_LANG_C_plus_plus:</span> </td></tr><tr><th>6474</th><th>6474</th><td class="l"><span> cu->language = language_cplus;</span> </td></tr><tr><th>6475</th><th>6475</th><td class="l"><span> break;</span> </td></tr></tbody><tbody class="add"><tr class="first"><th> </th><th>6476</th><td class="r"><ins> case DW_LANG_D:</ins> </td></tr><tr><th> </th><th>6477</th><td class="r"><ins> cu->language = language_d;</ins> </td></tr><tr class="last"><th> </th><th>6478</th><td class="r"><ins> break;</ins> </td></tr></tbody><tbody><tr><th>6476</th><th>6479</th><td class="l"><span> case DW_LANG_Fortran77:</span> </td></tr><tr><th>6477</th><th>6480</th><td class="l"><span> case DW_LANG_Fortran90:</span> </td></tr><tr><th>6478</th><th>6481</th><td class="l"><span> case DW_LANG_Fortran95:</span> </td></tr></tbody>
164 <tbody class="skipped">
165 <tr><th>…</th><th>…</th><td> </td></tr>
166 </tbody><tbody><tr><th>7004</th><th>7007</th><td class="l"><span> else</span> </td></tr><tr><th>7005</th><th>7008</th><td class="l"><span> {</span> </td></tr><tr><th>7006</th><th>7009</th><td class="l"><span> fe = &lh->file_names[file - 1];</span> </td></tr></tbody><tbody class="mod"><tr class="first"><th>7007</th><th> </th><td class="l"> if (fe->dir_index<del></del>) </td></tr><tr class="last"><th> </th><th>7010</th><td class="r"> if (fe->dir_index<ins> && lh->include_dirs != NULL</ins>) </td></tr></tbody><tbody><tr><th>7008</th><th>7011</th><td class="l"><span> dir = lh->include_dirs[fe->dir_index - 1];</span> </td></tr><tr><th>7009</th><th>7012</th><td class="l"><span> if (!decode_for_pst_p)</span> </td></tr><tr><th>7010</th><th>7013</th><td class="l"><span> {</span> </td></tr></tbody>
168 </li><li class="entry">
169 <h2>gdb-6.8/gdb/language.c</h2>
170 <table class="inline" summary="Differences" cellspacing="0">
171 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
176 </tr></thead><tbody><tr><th>539</th><th>539</th><td class="l"><span> {</span> </td></tr><tr><th>540</th><th>540</th><td class="l"><span> case language_c:</span> </td></tr><tr><th>541</th><th>541</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>542</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>542</th><th>543</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>543</th><th>544</th><td class="l"><span> if (TYPE_CODE (t1) == TYPE_CODE_FLT)</span> </td></tr><tr><th>544</th><th>545</th><td class="l"><span> return TYPE_CODE (t2) == TYPE_CODE_FLT && l2 > l1 ?</span> </td></tr></tbody>
177 <tbody class="skipped">
178 <tr><th>…</th><th>…</th><td> </td></tr>
179 </tbody><tbody><tr><th>650</th><th>651</th><td class="l"><span> {</span> </td></tr><tr><th>651</th><th>652</th><td class="l"><span> case language_c:</span> </td></tr><tr><th>652</th><th>653</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>654</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>653</th><th>655</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>654</th><th>656</th><td class="l"><span> return (TYPE_CODE (type) != TYPE_CODE_INT) &&</span> </td></tr><tr><th>655</th><th>657</th><td class="l"><span> (TYPE_CODE (type) != TYPE_CODE_ENUM) ? 0 : 1;</span> </td></tr></tbody>
180 <tbody class="skipped">
181 <tr><th>…</th><th>…</th><td> </td></tr>
182 </tbody><tbody><tr><th>690</th><th>692</th><td class="l"><span></span> </td></tr><tr><th>691</th><th>693</th><td class="l"><span> case language_c:</span> </td></tr><tr><th>692</th><th>694</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>695</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>693</th><th>696</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>694</th><th>697</th><td class="l"><span> return (TYPE_CODE (type) == TYPE_CODE_INT) &&</span> </td></tr><tr><th>695</th><th>698</th><td class="l"><span> TYPE_LENGTH (type) == sizeof (char)</span> </td></tr></tbody>
183 <tbody class="skipped">
184 <tr><th>…</th><th>…</th><td> </td></tr>
185 </tbody><tbody><tr><th>712</th><th>715</th><td class="l"><span></span> </td></tr><tr><th>713</th><th>716</th><td class="l"><span> case language_c:</span> </td></tr><tr><th>714</th><th>717</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>718</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>715</th><th>719</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>716</th><th>720</th><td class="l"><span> /* C does not have distinct string type. */</span> </td></tr><tr><th>717</th><th>721</th><td class="l"><span> return (0);</span> </td></tr></tbody>
186 <tbody class="skipped">
187 <tr><th>…</th><th>…</th><td> </td></tr>
188 </tbody><tbody><tr><th>731</th><th>735</th><td class="l"><span> {</span> </td></tr><tr><th>732</th><th>736</th><td class="l"><span> case language_c:</span> </td></tr><tr><th>733</th><th>737</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>738</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>734</th><th>739</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>735</th><th>740</th><td class="l"><span> /* Might be more cleanly handled by having a</span> </td></tr><tr><th>736</th><th>741</th><td class="l"><span> TYPE_CODE_INT_NOT_BOOL for (the deleted) CHILL and such</span> </td></tr></tbody>
189 <tbody class="skipped">
190 <tr><th>…</th><th>…</th><td> </td></tr>
191 </tbody><tbody><tr><th>804</th><th>809</th><td class="l"><span> }</span> </td></tr><tr><th>805</th><th>810</th><td class="l"><span> return builtin_type_f_logical_s2;</span> </td></tr><tr><th>806</th><th>811</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>812</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>807</th><th>813</th><td class="l"><span> case language_pascal:</span> </td></tr><tr><th>808</th><th>814</th><td class="l"><span> case language_ada:</span> </td></tr><tr><th>809</th><th>815</th><td class="l"><span> if (current_language->la_language==language_cplus)</span> </td></tr></tbody>
193 </li><li class="entry">
194 <h2>gdb-6.8/gdb/Makefile.in</h2>
195 <table class="inline" summary="Differences" cellspacing="0">
196 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
201 </tr></thead><tbody><tr><th>595</th><th>595</th><td class="l"><span> c-exp.y c-lang.c c-typeprint.c c-valprint.c \</span> </td></tr><tr><th>596</th><th>596</th><td class="l"><span> charset.c cli-out.c coffread.c coff-pe-read.c \</span> </td></tr><tr><th>597</th><th>597</th><td class="l"><span> complaints.c completer.c corefile.c \</span> </td></tr></tbody><tbody class="mod"><tr class="first"><th>598</th><th> </th><td class="l"> cp-abi.c cp-support.c cp-namespace.c cp-valprint.c <del></del>\ </td></tr><tr class="last"><th> </th><th>598</th><td class="r"> cp-abi.c cp-support.c cp-namespace.c cp-valprint.c <ins>d-lang.c </ins>\ </td></tr></tbody><tbody><tr><th>599</th><th>599</th><td class="l"><span> cp-name-parser.y \</span> </td></tr><tr><th>600</th><th>600</th><td class="l"><span> dbxread.c demangle.c dictionary.c disasm.c doublest.c dummy-frame.c \</span> </td></tr><tr><th>601</th><th>601</th><td class="l"><span> dwarf2expr.c dwarf2loc.c dwarf2read.c dwarf2-frame.c \</span> </td></tr></tbody>
202 <tbody class="skipped">
203 <tr><th>…</th><th>…</th><td> </td></tr>
204 </tbody><tbody><tr><th>749</th><th>749</th><td class="l"><span>completer_h = completer.h</span> </td></tr><tr><th>750</th><th>750</th><td class="l"><span>cp_abi_h = cp-abi.h</span> </td></tr><tr><th>751</th><th>751</th><td class="l"><span>cp_support_h = cp-support.h $(symtab_h)</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>752</th><td class="r"><ins>d_lang_h = d-lang.h $(symtab_h)</ins> </td></tr></tbody><tbody><tr><th>752</th><th>753</th><td class="l"><span>dcache_h = dcache.h</span> </td></tr><tr><th>753</th><th>754</th><td class="l"><span>defs_h = defs.h $(config_h) $(ansidecl_h) $(gdb_locale_h) $(gdb_signals_h) \</span> </td></tr><tr><th>754</th><th>755</th><td class="l"><span> $(libiberty_h) $(bfd_h) $(ui_file_h) $(nm_h) \</span> </td></tr></tbody>
205 <tbody class="skipped">
206 <tr><th>…</th><th>…</th><td> </td></tr>
207 </tbody><tbody><tr><th>1050</th><th>1051</th><td class="l"><span> dbxread.o coffread.o coff-pe-read.o \</span> </td></tr><tr><th>1051</th><th>1052</th><td class="l"><span> dwarf2read.o mipsread.o stabsread.o corefile.o \</span> </td></tr><tr><th>1052</th><th>1053</th><td class="l"><span> dwarf2expr.o dwarf2loc.o dwarf2-frame.o \</span> </td></tr></tbody><tbody class="mod"><tr class="first"><th>1053</th><th> </th><td class="l"> ada-lang.o c-lang.o <del></del>f-lang.o objc-lang.o \ </td></tr><tr class="last"><th> </th><th>1054</th><td class="r"> ada-lang.o c-lang.o <ins>d-lang.o </ins>f-lang.o objc-lang.o \ </td></tr></tbody><tbody><tr><th>1054</th><th>1055</th><td class="l"><span> ui-out.o cli-out.o \</span> </td></tr><tr><th>1055</th><th>1056</th><td class="l"><span> varobj.o vec.o wrapper.o \</span> </td></tr><tr><th>1056</th><th>1057</th><td class="l"><span> jv-lang.o jv-valprint.o jv-typeprint.o \</span> </td></tr></tbody>
208 <tbody class="skipped">
209 <tr><th>…</th><th>…</th><td> </td></tr>
210 </tbody><tbody><tr><th>2026</th><th>2027</th><td class="l"><span>c-valprint.o: c-valprint.c $(defs_h) $(gdb_string_h) $(symtab_h) \</span> </td></tr><tr><th>2027</th><th>2028</th><td class="l"><span> $(gdbtypes_h) $(expression_h) $(value_h) $(valprint_h) $(language_h) \</span> </td></tr><tr><th>2028</th><th>2029</th><td class="l"><span> $(c_lang_h) $(cp_abi_h) $(target_h)</span> </td></tr></tbody><tbody class="add"><tr class="first"><th> </th><th>2030</th><td class="r"><ins>d-lang.o: d-lang.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \</ins> </td></tr><tr><th> </th><th>2031</th><td class="r"><ins> $(parser_defs_h) $(language_h) $(c_lang_h) $(valprint_h) \</ins> </td></tr><tr class="last"><th> </th><th>2032</th><td class="r"><ins> $(macroscope_h) $(gdb_assert_h) $(charset_h) $(gdb_string_h)</ins> </td></tr></tbody><tbody><tr><th>2029</th><th>2033</th><td class="l"><span>dbug-rom.o: dbug-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \</span> </td></tr><tr><th>2030</th><th>2034</th><td class="l"><span> $(serial_h) $(regcache_h) $(m68k_tdep_h)</span> </td></tr><tr><th>2031</th><th>2035</th><td class="l"><span>dbxread.o: dbxread.c $(defs_h) $(gdb_string_h) $(gdb_obstack_h) \</span> </td></tr></tbody>
211 <tbody class="skipped">
212 <tr><th>…</th><th>…</th><td> </td></tr>
213 </tbody><tbody><tr><th>2860</th><th>2864</th><td class="l"><span> $(gdb_obstack_h) $(exceptions_h) $(language_h) $(bcache_h) \</span> </td></tr><tr><th>2861</th><th>2865</th><td class="l"><span> $(block_h) $(gdb_regex_h) $(gdb_stat_h) $(dictionary_h) \</span> </td></tr><tr><th>2862</th><th>2866</th><td class="l"><span> $(gdb_string_h) $(readline_h)</span> </td></tr></tbody><tbody class="mod"><tr class="first"><th>2863</th><th> </th><td class="l">symtab.o: symtab.c $(defs_h) $(<del></del>symtab_h) $(gdbtypes_h) $(gdbcore_h) \ </td></tr><tr class="last"><th> </th><th>2867</th><td class="r">symtab.o: symtab.c $(defs_h) $(<ins>d_lang_h) $(</ins>symtab_h) $(gdbtypes_h) $(gdbcore_h) \ </td></tr></tbody><tbody><tr><th>2864</th><th>2868</th><td class="l"><span> $(frame_h) $(target_h) $(value_h) $(symfile_h) $(objfiles_h) \</span> </td></tr><tr><th>2865</th><th>2869</th><td class="l"><span> $(gdbcmd_h) $(call_cmds_h) $(gdb_regex_h) $(expression_h) \</span> </td></tr><tr><th>2866</th><th>2870</th><td class="l"><span> $(language_h) $(demangle_h) $(inferior_h) $(linespec_h) $(source_h) \</span> </td></tr></tbody>
215 </li><li class="entry">
216 <h2>gdb-6.8/gdb/symfile.c</h2>
217 <table class="inline" summary="Differences" cellspacing="0">
218 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
223 </tr></thead><tbody><tr><th>2672</th><th>2672</th><td class="l"><span> filename_language_table =</span> </td></tr><tr><th>2673</th><th>2673</th><td class="l"><span> xmalloc (fl_table_size * sizeof (*filename_language_table));</span> </td></tr><tr><th>2674</th><th>2674</th><td class="l"><span> add_filename_language (".c", language_c);</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>2675</th><td class="r"><ins> add_filename_language (".d", language_d);</ins> </td></tr></tbody><tbody><tr><th>2675</th><th>2676</th><td class="l"><span> add_filename_language (".C", language_cplus);</span> </td></tr><tr><th>2676</th><th>2677</th><td class="l"><span> add_filename_language (".cc", language_cplus);</span> </td></tr><tr><th>2677</th><th>2678</th><td class="l"><span> add_filename_language (".cp", language_cplus);</span> </td></tr></tbody>
225 </li><li class="entry">
226 <h2>gdb-6.8/gdb/symtab.c</h2>
227 <table class="inline" summary="Differences" cellspacing="0">
228 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>
233 </tr></thead><tbody><tr><th>41</th><th>41</th><td class="l"><span>#include "objc-lang.h"</span> </td></tr><tr><th>42</th><th>42</th><td class="l"><span>#include "ada-lang.h"</span> </td></tr><tr><th>43</th><th>43</th><td class="l"><span>#include "p-lang.h"</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>44</th><td class="r"><ins>#include "d-lang.h"</ins> </td></tr></tbody><tbody><tr><th>44</th><th>45</th><td class="l"><span></span> </td></tr><tr><th>45</th><th>46</th><td class="l"><span>#include "hashtab.h"</span> </td></tr><tr><th>46</th><th>47</th><td class="l"><span></span> </td></tr></tbody>
234 <tbody class="skipped">
235 <tr><th>…</th><th>…</th><td> </td></tr>
236 </tbody><tbody><tr><th>394</th><th>395</th><td class="l"><span>{</span> </td></tr><tr><th>395</th><th>396</th><td class="l"><span> gsymbol->language = language;</span> </td></tr><tr><th>396</th><th>397</th><td class="l"><span> if (gsymbol->language == language_cplus</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>398</th><td class="r"><ins> || gsymbol->language == language_d</ins> </td></tr></tbody><tbody><tr><th>397</th><th>399</th><td class="l"><span> || gsymbol->language == language_java</span> </td></tr><tr><th>398</th><th>400</th><td class="l"><span> || gsymbol->language == language_objc)</span> </td></tr><tr><th>399</th><th>401</th><td class="l"><span> {</span> </td></tr></tbody>
237 <tbody class="skipped">
238 <tr><th>…</th><th>…</th><td> </td></tr>
239 </tbody><tbody><tr><th>440</th><th>442</th><td class="l"><span> if (gsymbol->language == language_unknown)</span> </td></tr><tr><th>441</th><th>443</th><td class="l"><span> gsymbol->language = language_auto;</span> </td></tr><tr><th>442</th><th>444</th><td class="l"><span></span> </td></tr></tbody><tbody class="add"><tr class="first"><th> </th><th>445</th><td class="r"><ins> if (gsymbol->language == language_d</ins> </td></tr><tr><th> </th><th>446</th><td class="r"><ins> || gsymbol->language == language_auto) {</ins> </td></tr><tr><th> </th><th>447</th><td class="r"><ins> demangled = d_demangle(mangled, 0);</ins> </td></tr><tr><th> </th><th>448</th><td class="r"><ins> if (demangled != NULL) {</ins> </td></tr><tr><th> </th><th>449</th><td class="r"><ins> gsymbol->language = language_d;</ins> </td></tr><tr><th> </th><th>450</th><td class="r"><ins> return demangled;</ins> </td></tr><tr><th> </th><th>451</th><td class="r"><ins> }</ins> </td></tr><tr><th> </th><th>452</th><td class="r"><ins> }</ins> </td></tr><tr class="last"><th> </th><th>453</th><td class="r"><ins></ins> </td></tr></tbody><tbody><tr><th>443</th><th>454</th><td class="l"><span> if (gsymbol->language == language_objc</span> </td></tr><tr><th>444</th><th>455</th><td class="l"><span> || gsymbol->language == language_auto)</span> </td></tr><tr><th>445</th><th>456</th><td class="l"><span> {</span> </td></tr></tbody>
240 <tbody class="skipped">
241 <tr><th>…</th><th>…</th><td> </td></tr>
242 </tbody><tbody><tr><th>617</th><th>628</th><td class="l"><span></span> </td></tr><tr><th>618</th><th>629</th><td class="l"><span> demangled = symbol_find_demangled_name (gsymbol, mangled);</span> </td></tr><tr><th>619</th><th>630</th><td class="l"><span> if (gsymbol->language == language_cplus</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>631</th><td class="r"><ins> || gsymbol->language == language_d</ins> </td></tr></tbody><tbody><tr><th>620</th><th>632</th><td class="l"><span> || gsymbol->language == language_java</span> </td></tr><tr><th>621</th><th>633</th><td class="l"><span> || gsymbol->language == language_objc)</span> </td></tr><tr><th>622</th><th>634</th><td class="l"><span> {</span> </td></tr></tbody>
243 <tbody class="skipped">
244 <tr><th>…</th><th>…</th><td> </td></tr>
245 </tbody><tbody><tr><th>646</th><th>658</th><td class="l"><span> switch (gsymbol->language) </span> </td></tr><tr><th>647</th><th>659</th><td class="l"><span> {</span> </td></tr><tr><th>648</th><th>660</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>661</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>649</th><th>662</th><td class="l"><span> case language_java:</span> </td></tr><tr><th>650</th><th>663</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>651</th><th>664</th><td class="l"><span> if (gsymbol->language_specific.cplus_specific.demangled_name != NULL)</span> </td></tr></tbody>
246 <tbody class="skipped">
247 <tr><th>…</th><th>…</th><td> </td></tr>
248 </tbody><tbody><tr><th>671</th><th>684</th><td class="l"><span> switch (gsymbol->language) </span> </td></tr><tr><th>672</th><th>685</th><td class="l"><span> {</span> </td></tr><tr><th>673</th><th>686</th><td class="l"><span> case language_cplus:</span> </td></tr></tbody><tbody class="add"><tr class="first last"><th> </th><th>687</th><td class="r"><ins> case language_d:</ins> </td></tr></tbody><tbody><tr><th>674</th><th>688</th><td class="l"><span> case language_java:</span> </td></tr><tr><th>675</th><th>689</th><td class="l"><span> case language_objc:</span> </td></tr><tr><th>676</th><th>690</th><td class="l"><span> if (gsymbol->language_specific.cplus_specific.demangled_name != NULL)</span> </td></tr></tbody>
249 <tbody class="skipped">
250 <tr><th>…</th><th>…</th><td> </td></tr>
251 </tbody><tbody><tr><th>1100</th><th>1114</th><td class="l"><span></span> </td></tr><tr><th>1101</th><th>1115</th><td class="l"><span> modified_name = name;</span> </td></tr><tr><th>1102</th><th>1116</th><td class="l"><span></span> </td></tr></tbody><tbody class="mod"><tr class="first"><th>1103</th><th> </th><td class="l"> /* If we are using C++<del></del> or Java, demangle the name before doing a lookup, so </td></tr><tr class="last"><th> </th><th>1117</th><td class="r"> /* If we are using C++<ins>, D,</ins> or Java, demangle the name before doing a lookup, so </td></tr></tbody><tbody><tr><th>1104</th><th>1118</th><td class="l"><span> we can always binary search. */</span> </td></tr><tr><th>1105</th><th>1119</th><td class="l"><span> if (lang == language_cplus)</span> </td></tr><tr><th>1106</th><th>1120</th><td class="l"><span> {</span> </td></tr></tbody>
252 <tbody class="skipped">
253 <tr><th>…</th><th>…</th><td> </td></tr>
254 </tbody><tbody><tr><th>1112</th><th>1126</th><td class="l"><span> needtofreename = 1;</span> </td></tr><tr><th>1113</th><th>1127</th><td class="l"><span> }</span> </td></tr><tr><th>1114</th><th>1128</th><td class="l"><span> }</span> </td></tr></tbody><tbody class="add"><tr class="first"><th> </th><th>1129</th><td class="r"><ins> else if (current_language->la_language == language_d)</ins> </td></tr><tr><th> </th><th>1130</th><td class="r"><ins> {</ins> </td></tr><tr><th> </th><th>1131</th><td class="r"><ins> demangled_name = d_demangle (name, 0);</ins> </td></tr><tr><th> </th><th>1132</th><td class="r"><ins> if (demangled_name)</ins> </td></tr><tr><th> </th><th>1133</th><td class="r"><ins> {</ins> </td></tr><tr><th> </th><th>1134</th><td class="r"><ins> mangled_name = name;</ins> </td></tr><tr><th> </th><th>1135</th><td class="r"><ins> modified_name = demangled_name;</ins> </td></tr><tr><th> </th><th>1136</th><td class="r"><ins> needtofreename = 1;</ins> </td></tr><tr><th> </th><th>1137</th><td class="r"><ins> }</ins> </td></tr><tr class="last"><th> </th><th>1138</th><td class="r"><ins> }</ins> </td></tr></tbody><tbody><tr><th>1115</th><th>1139</th><td class="l"><span> else if (lang == language_java)</span> </td></tr><tr><th>1116</th><th>1140</th><td class="l"><span> {</span> </td></tr><tr><th>1117</th><th>1141</th><td class="l"><span> demangled_name = cplus_demangle (name, </span> </td></tr></tbody>
262 <strong>Note:</strong> See <a href="/projects/gdb-patches/wiki/TracBrowser">TracBrowser</a> for help on using the browser.
266 <form action="/projects/gdb-patches/anydiff" method="get">
267 <div class="buttons">
268 <input type="hidden" name="new_path" value="/downloads/gdb6.8/gdb-6.8-d-1.patch" />
269 <input type="hidden" name="old_path" value="/downloads/gdb6.8/gdb-6.8-d-1.patch" />
270 <input type="hidden" name="new_rev" value="" />
271 <input type="hidden" name="old_rev" value="" />
272 <input type="submit" value="View changes..." title="Prepare an Arbitrary Diff" />
279 <script type="text/javascript">searchHighlight()</script>
280 <div id="altlinks"><h3>Download in other formats:</h3><ul><li class="first"><a href="/projects/gdb-patches/browser/downloads/gdb6.8/gdb-6.8-d-1.patch?format=txt">Plain Text</a></li><li class="last"><a href="/projects/gdb-patches/browser/downloads/gdb6.8/gdb-6.8-d-1.patch?format=raw">Original Format</a></li></ul></div>
285 <div id="sitefooter">
286 <p class="left">© Copyright 2004-2008 - The Sankaty Group, Inc.
287 All rights reserved.</p>
289 <a href="/site/donate">Make a Donation</a><br /><br />
290 <a id="priv" href="/site/privacy">Privacy Statement</a>
291 <a id="tos" href="/site/terms">Terms of Service</a>