From c792d6d0b39cd6926be28ccb925992204d1af0e1 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 4 Jan 2013 20:34:32 +0000 Subject: [PATCH] Unqualify the parameter type. This fixes a regression from 168895. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171519 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Sema/Initialization.h | 6 +++--- test/Sema/implicit-cast-dump.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 test/Sema/implicit-cast-dump.c diff --git a/include/clang/Sema/Initialization.h b/include/clang/Sema/Initialization.h index b4c41d479e..778b70b0ec 100644 --- a/include/clang/Sema/Initialization.h +++ b/include/clang/Sema/Initialization.h @@ -177,8 +177,7 @@ public: /// \brief Create the initialization entity for a parameter. static InitializedEntity InitializeParameter(ASTContext &Context, ParmVarDecl *Parm) { - return InitializeParameter(Context, Parm, - Parm->getType().getUnqualifiedType()); + return InitializeParameter(Context, Parm, Parm->getType()); } /// \brief Create the initialization entity for a parameter, but use @@ -191,7 +190,8 @@ public: InitializedEntity Entity; Entity.Kind = EK_Parameter; - Entity.Type = Context.getVariableArrayDecayedType(Type); + Entity.Type = + Context.getVariableArrayDecayedType(Type.getUnqualifiedType()); Entity.Parent = 0; Entity.Parameter = (static_cast(Consumed) | reinterpret_cast(Parm)); diff --git a/test/Sema/implicit-cast-dump.c b/test/Sema/implicit-cast-dump.c new file mode 100644 index 0000000000..f2e208dca6 --- /dev/null +++ b/test/Sema/implicit-cast-dump.c @@ -0,0 +1,15 @@ +// RUN: %clang_cc1 -ast-dump %s | FileCheck %s + +void foo1(void*); +void foo2(void* const); + + +void bar() { + // CHECK: (FunctionDecl {{.*}} bar 'void ()' + + foo1(0); + // CHECK: (ImplicitCastExpr {{.*}} 'void *' + + foo2(0); + // CHECK: (ImplicitCastExpr {{.*}} 'void *' +} -- 2.40.0