https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69549
--- Comment #7 from Thiago Macieira <thiago at kde dot org> --- (In reply to Andrew Pinski from comment #6) > The above is not the reason why namespaces are not handled in GCC's C++ > front-end. The reason why they are not handled in C++ is because you need > to handle them in overloads and templates correctly. Does clang handle > those correctly or does it ignore that issue? It handles them: $ clang -O2 -S -o - -include stdint.h -xc++ - <<<'template <typename T> void f(T); void f() { auto tib = (void * __seg_fs*)(0); f(tib); }' | c++filt .text .file "-" .globl f() # -- Begin function f() .p2align 4, 0x90 .type f(),@function f(): # @f() .cfi_startproc # %bb.0: xorl %edi, %edi jmp void f<void* AS257*>(void* AS257*) # TAILCALL The mangled symbol was _Z1fIPU5AS257PvEvT_. That "AS257" is encoded as U5AS257, which is an extended qualifier. <https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangle.qualified-type>: 5.1.5.1 Qualified types <qualified-type> ::= <qualifiers> <type> <qualifiers> ::= <extended-qualifier>* <CV-qualifiers> <extended-qualifier> ::= U <source-name> [<template-args>] # vendor extended type qualifier <CV-qualifiers> ::= [r] [V] [K] # restrict (C99), volatile, const <ref-qualifier> ::= R # & ref-qualifier <ref-qualifier> ::= O # && ref-qualifier