From 15995637f9cab6a4d92a2383e2afdba2b48d5f7b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 21 Aug 2015 18:56:38 +0200 Subject: Make sure we don't match namespace ::foo as prefix of ::foobar --- odb/parser.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'odb') diff --git a/odb/parser.cxx b/odb/parser.cxx index ff9f6d0..275da33 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -951,7 +951,11 @@ emit () for (pfx = scope_->fq_name (); !pfx.empty (); pfx = scope_->fq_name ()) { - if (ns.compare (0, pfx.size (), pfx) == 0) + size_t n (pfx.size ()); + + // Make sure we handle cases like ns="::foobar", pfx="::foo". + // + if (ns.compare (0, n, pfx) == 0 && (ns.size () == n || ns[n - 1] == ':')) break; if (trace) -- cgit v1.1