summaryrefslogtreecommitdiff
path: root/idlc
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-08-14 16:05:07 +0200
committerStephan Bergmann <sbergman@redhat.com>2013-08-22 07:13:58 +0200
commit4ef1f4ae499cbac7e85b03abff5c2bb31c68b90f (patch)
treefeb08d1b1ded93bbb84bbaa5263b69a1be0c30ea /idlc
parentd239ee4fa43c3936aceff343085bd2c74c25605c (diff)
downcast of address which does not point to an object of type 'AstInterface'
(note: object is of type 'AstTypeDef'); Clang -fsanitize=undefined Change-Id: I1b11a7678f18557c8040af2118c1c0101913f086
Diffstat (limited to 'idlc')
-rw-r--r--idlc/inc/idlc/aststruct.hxx8
-rw-r--r--idlc/source/aststruct.cxx4
-rw-r--r--idlc/source/parser.y4
3 files changed, 8 insertions, 8 deletions
diff --git a/idlc/inc/idlc/aststruct.hxx b/idlc/inc/idlc/aststruct.hxx
index 837bbafddd6d..e13229c66568 100644
--- a/idlc/inc/idlc/aststruct.hxx
+++ b/idlc/inc/idlc/aststruct.hxx
@@ -33,15 +33,15 @@ public:
AstStruct(
const OString& name,
std::vector< OString > const & typeParameters,
- AstStruct* pBaseType, AstScope* pScope);
+ AstStruct const* pBaseType, AstScope* pScope);
AstStruct(const NodeType type,
const OString& name,
- AstStruct* pBaseType,
+ AstStruct const* pBaseType,
AstScope* pScope);
virtual ~AstStruct();
- AstStruct* getBaseType()
+ AstStruct const* getBaseType()
{ return m_pBaseType; }
DeclList::size_type getTypeParameterCount() const
@@ -53,7 +53,7 @@ public:
virtual sal_Bool dump(RegistryKey& rKey);
private:
- AstStruct* m_pBaseType;
+ AstStruct const* m_pBaseType;
DeclList m_typeParameters;
};
diff --git a/idlc/source/aststruct.cxx b/idlc/source/aststruct.cxx
index fff256acc338..d60026a22b24 100644
--- a/idlc/source/aststruct.cxx
+++ b/idlc/source/aststruct.cxx
@@ -27,7 +27,7 @@ using namespace ::rtl;
AstStruct::AstStruct(
const OString& name, std::vector< OString > const & typeParameters,
- AstStruct* pBaseType, AstScope* pScope)
+ AstStruct const* pBaseType, AstScope* pScope)
: AstType(NT_struct, name, pScope)
, AstScope(NT_struct)
, m_pBaseType(pBaseType)
@@ -42,7 +42,7 @@ AstStruct::AstStruct(
AstStruct::AstStruct(const NodeType type,
const OString& name,
- AstStruct* pBaseType,
+ AstStruct const* pBaseType,
AstScope* pScope)
: AstType(type, name, pScope)
, AstScope(type)
diff --git a/idlc/source/parser.y b/idlc/source/parser.y
index 7bfdea21e380..c149219af96e 100644
--- a/idlc/source/parser.y
+++ b/idlc/source/parser.y
@@ -582,7 +582,7 @@ interface_dcl :
{
pInterface = new AstInterface(
*$1->getName(),
- static_cast< AstInterface * >($1->getInherits()), pScope);
+ static_cast< AstInterface const * >(resolveTypedefs($1->getInherits())), pScope);
if ( pInterface &&
(pDecl = pScope->lookupByName(pInterface->getScopedName())) )
{
@@ -2586,7 +2586,7 @@ struct_type :
if ( pScope )
{
- AstStruct* pBase= static_cast< AstStruct* >($1->getInherits());
+ AstStruct const* pBase= static_cast< AstStruct const* >(resolveTypedefs($1->getInherits()));
pStruct = new AstStruct(
*$1->getName(), $1->getTypeParameters(), pBase, pScope);
pScope->addDeclaration(pStruct);