<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi,<br>
Clang internals manual says:<br>
"Each declaration has two potentially different declaration
contexts: a <i>lexical</i> context, which corresponds to the
source-centric view of the declaration context, and a <i>semantic</i>
context, which corresponds to the semantics-centric view."<br>
<br>
When debugging the code snippet:<br>
enum E {e1 = -12}<br>
In the debugger I see:<br>
#1 0x00007ffff60cd4cb in clang::Sema::ActOnEnumConstant
(this=0x44e6b0, S=0x4099c0, theEnumDecl=0x4e5a70, lastEnumConst=0x0,
IdLoc=..., Id=0x46a240, Attr=0x0, EqualLoc=..., <br>
Val=0x4e5b40) at
/home/vvassilev/workspace/llvm/src/tools/clang/lib/Sema/SemaDecl.cpp:10229<br>
10229 PushOnScopeChains(New, S);<br>
(gdb) p New<br>
$99 = (clang::EnumConstantDecl *) 0x4e5b60<br>
(gdb) p New->getDeclContext ()<br>
$100 = (clang::DeclContext *) <b>0x4e5aa8</b><br>
(gdb) p New->getLexicalDeclContext ()<br>
$101 = (clang::DeclContext *) <b>0x4e5aa8</b><br>
<br>
I would expect the lexical and the semantic DeclContext to be
different since "E" is transparent context. Could somebody explain
why is that? Is that expected?<br>
<br>
Vassil<br>
</body>
</html>