]> granicus.if.org Git - clang/commit
Fix a bug that crashed clang when parsing this:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 8 Oct 2008 22:20:31 +0000 (22:20 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 8 Oct 2008 22:20:31 +0000 (22:20 +0000)
commitde933f025e839bde4b119f3437c320c2137bbe1f
tree3a84603092a448a9b7c40d5a265c15b3d8e7aa44
parent1c90bfcbd7ff5d09694acf50a32dbb716a968b61
Fix a bug that crashed clang when parsing this:

class C {
  static const int number = 50;
  static int arr[number];
};

Here's how it worked:
-GetTypeForDeclarator was called from both Sema::ActOnCXXMemberDeclarator and Sema::ActOnDeclarator.
-VariableArrayTypes are not uniqued so two VariableArrayTypes were created with the same DeclRefExpr.
-On exit they both tried to destroy that one DeclRefExpr.

The fix is not to use GetTypeForDeclarator from the Sema::ActOnCXXMemberDeclarator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57313 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaDeclCXX.cpp
test/SemaCXX/class.cpp