After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 584192 - VHDL: repetition of use/library statement crashes doxygen (assert)
VHDL: repetition of use/library statement crashes doxygen (assert)
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.5.9
Other All
: Normal critical
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2009-05-29 09:51 UTC by Emanuel Schmid
Modified: 2009-08-20 10:13 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emanuel Schmid 2009-05-29 09:51:09 UTC
Steps to reproduce:
A file as inserted below lets doxygen run into the assertion posted as stack trace. 
-------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_textio.all;
use std.textio.all;
library test_top;
use test_top.jtag_conf.all;
use test_top.jtag_pkg.all;


entity tb_jtag_gotoBackup is
end tb_jtag_gotoBackup;

architecture rtl of tb_jtag_gotoBackup is

  constant header : string := "tck tdi tms";

begin

  process
    file out_file    : text open write_mode is filename;
    variable outline : line;
    variable Addr    : string_8;
    variable Data    : string_array;
  begin

     tdi_delay       <= 1; 
     wait for 1 us;
    system_dbg;
    system_reset;


    ------------------------------------------------------------------------------------------------
    -- set the sleep register

    Addr    := "FFEC0004";              
    Data(0) := "FFFFFFFF";              
    LoadMultRegister(1, Addr, Data);

    Addr    := "FFEC0018";              
    Data(0) := "00000000";              
    LoadMultRegister(1, Addr, Data);

    Addr    := "FFEC0028";      -- PM register in RTC
    Data(0) := "00000000";      -- LDO2_en = MR_en = sleep_N = 0
    LoadMultRegister(1, Addr, Data);

    file_close(out_file);
    wait;
  end process;


end rtl;

library work;
configuration cfg_tb_jtag_gotoBackup of tb_jtag_gotoBackup is
  for RTL
  end for;
end cfg_tb_jtag_gotoBackup;
-----------------------

Stack trace:
ASSERT: "cd!=0 || nd!=0 || fd!=0 || gd!=0" in vhdldocgen.cpp (1814)

Other information:
I'm not really sure what causes the problem. The following patch solved the issue for me, I don't see any regression - but I don't know what I break with that.
-------------
1720,1721c1720,1721
<   VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::LIBRARY,FALSE),0,FALSE,VhdlDocGen::LIBRARY);
<   VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::USE,FALSE),0,FALSE,VhdlDocGen::USE);
---
>   VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,fd,gd,theTranslator_vhdlType(VhdlDocGen::LIBRARY,FALSE),0,FALSE,VhdlDocGen::LIBRARY);
>   VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,fd,gd,theTranslator_vhdlType(VhdlDocGen::USE,FALSE),0,FALSE,VhdlDocGen::USE);
1723c1723
<   VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::COMPONENT,FALSE),0,FALSE,VhdlDocGen::COMPONENT);
---
>   VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,fd,gd,theTranslator_vhdlType(VhdlDocGen::COMPONENT,FALSE),0,FALSE,VhdlDocGen::COMPONENT);
-----------------
Comment 1 Dimitri van Heesch 2009-06-22 20:54:45 UTC
I have received a patch from Martin Klein, which should fix this issue.
I'll be included in the next subversion update.
Comment 2 Dimitri van Heesch 2009-08-20 10:13:07 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.6.0. Please verify if this is indeed the case and reopen the
bug if you think it is not fixed (include any additional information that you
think can be relevant).