From 8b6be5c02e0ab6bc075eaada41753c51d61ed6de Mon Sep 17 00:00:00 2001
From: "arseny.kapoulkine"
 <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>
Date: Sat, 8 May 2010 20:36:20 +0000
Subject: Don't use global no-deprecate switch for newer GCC/MinGW, fixed
 warnings because of deprecation

git-svn-id: http://pugixml.googlecode.com/svn/trunk@390 99668b35-9821-0410-8761-19e4c4f06640
---
 Jamrules.jam              | 7 ++++++-
 src/pugixml.cpp           | 2 +-
 tests/test_deprecated.cpp | 6 ++++++
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Jamrules.jam b/Jamrules.jam
index e362eac..7c88a2b 100644
--- a/Jamrules.jam
+++ b/Jamrules.jam
@@ -12,7 +12,12 @@ if ( $(toolset:I=^mingw) || $(toolset) = "gcc" )
 	}
 
 	CCFLAGS += -D$(defines) ;
-	CCFLAGS += -Wno-deprecated-declarations ;
+
+	if ( $(toolset:I=^mingw3) )
+	{
+		# GCC3 does not have pragma diagnostic
+		CCFLAGS += -Wno-deprecated-declarations ;
+	}
 
 	if ( $(configuration) = "debug" )
 	{
diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 59ba5d7..01ef4cb 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -1504,7 +1504,7 @@ namespace
 
 	strconv_attribute_t get_strconv_attribute(unsigned int optmask)
 	{
-		STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wnorm_attribute == 0x40 && parse_wconv_attribute == 0x80);
+		STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wconv_attribute == 0x80);
 		
 		switch ((optmask >> 4) & 15) // get bitmask for flags (wconv wnorm eol escapes)
 		{
diff --git a/tests/test_deprecated.cpp b/tests/test_deprecated.cpp
index 95e78f5..09509bf 100644
--- a/tests/test_deprecated.cpp
+++ b/tests/test_deprecated.cpp
@@ -13,6 +13,12 @@
 #	pragma warning(disable: 4996)
 #endif
 
+#ifdef __GNUC__
+#	if __GNUC__ >= 4
+#		pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#	endif
+#endif
+
 // format_write_bom_utf8 - it's now format_write_bom!
 TEST_XML(document_save_bom_utf8, "<node/>")
 {
-- 
cgit v1.2.3