diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-10-08 22:20:31 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-10-08 22:20:31 +0000 |
commit | de933f025e839bde4b119f3437c320c2137bbe1f (patch) | |
tree | 3a84603092a448a9b7c40d5a265c15b3d8e7aa44 /lib/Analysis/GRExprEngine.cpp | |
parent | 1c90bfcbd7ff5d09694acf50a32dbb716a968b61 (diff) |
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
Diffstat (limited to 'lib/Analysis/GRExprEngine.cpp')
0 files changed, 0 insertions, 0 deletions