summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2017-12-30 14:07:39 (GMT)
committerGitHub <noreply@github.com>2017-12-30 14:07:39 (GMT)
commit9e6d6b696388bf3375ed1a8b92ab79ccad21c3a7 (patch)
treeb2c7f1c06fb098421ffe71adbd76fa3462aaa805
parentd9e9b8a75e031cf9b165d436a2cf748c9b2e4217 (diff)
parent5db858953001c534341562cfaeba39782abc5ca6 (diff)
downloadDoxygen-9e6d6b696388bf3375ed1a8b92ab79ccad21c3a7.zip
Doxygen-9e6d6b696388bf3375ed1a8b92ab79ccad21c3a7.tar.gz
Doxygen-9e6d6b696388bf3375ed1a8b92ab79ccad21c3a7.tar.bz2
Merge pull request #635 from mosra/xml-no-warn-on-enum-in-anon-ns
XML output: avoid warnings with scoped enum values in anonymous namespaces
-rw-r--r--src/xmlgen.cpp6
-rw-r--r--testing/071/namespace_a_namespace_1_1_0D0.xml45
-rw-r--r--testing/071_enum_in_anon_ns.cpp12
3 files changed, 60 insertions, 3 deletions
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 2222e46..697a4d8 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -954,11 +954,11 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
MemberDef *emd;
for (emli.toFirst();(emd=emli.current());++emli)
{
- ti << " <member refid=\"" << memberOutputFileBase(emd)
- << "_1" << emd->anchor() << "\" kind=\"enumvalue\"><name>"
+ ti << " <member refid=\"" << memberOutputFileBase(md)
+ << "_1" << emd->anchor() << "\" kind=\"enumvalue\"><name>"
<< convertToXML(emd->name()) << "</name></member>" << endl;
- t << " <enumvalue id=\"" << memberOutputFileBase(emd) << "_1"
+ t << " <enumvalue id=\"" << memberOutputFileBase(md) << "_1"
<< emd->anchor() << "\" prot=\"";
switch (emd->protection())
{
diff --git a/testing/071/namespace_a_namespace_1_1_0D0.xml b/testing/071/namespace_a_namespace_1_1_0D0.xml
new file mode 100644
index 0000000..76483ca
--- /dev/null
+++ b/testing/071/namespace_a_namespace_1_1_0D0.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+ <compounddef id="namespace_a_namespace_1_1_0D0" kind="namespace" language="C++">
+ <compoundname>ANamespace::@0</compoundname>
+ <sectiondef kind="enum">
+ <memberdef kind="enum" id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45d" prot="public" static="no" strong="yes">
+ <type/>
+ <name>Boolean</name>
+ <enumvalue id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45daf8320b26d30ab433c5a54546d21f414c" prot="public">
+ <name>False</name>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ </enumvalue>
+ <enumvalue id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45daf827cf462f62848df37c5e1e94a4da74" prot="public">
+ <name>True</name>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ </enumvalue>
+ <enumvalue id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45da2767828026039e8ba7b38973cbb701f2" prot="public">
+ <name>FileNotFound</name>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ </enumvalue>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ <inbodydescription>
+ </inbodydescription>
+ <location file="071_enum_in_anon_ns.cpp" line="6" column="1" bodyfile="071_enum_in_anon_ns.cpp" bodystart="6" bodyend="10"/>
+ </memberdef>
+ </sectiondef>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ <location file="071_enum_in_anon_ns.cpp" line="4" column="1"/>
+ </compounddef>
+</doxygen>
diff --git a/testing/071_enum_in_anon_ns.cpp b/testing/071_enum_in_anon_ns.cpp
new file mode 100644
index 0000000..a5b9ac8
--- /dev/null
+++ b/testing/071_enum_in_anon_ns.cpp
@@ -0,0 +1,12 @@
+// objective: test that enum values in anonymous namespaces produce no warning
+// check: namespace_a_namespace_1_1_0D0.xml
+
+namespace ANamespace { namespace {
+
+enum class Boolean {
+ False,
+ True,
+ FileNotFound
+};
+
+}}