diff options
author | DeLesley Hutchins <delesley@google.com> | 2012-01-20 22:37:06 +0000 |
---|---|---|
committer | DeLesley Hutchins <delesley@google.com> | 2012-01-20 22:37:06 +0000 |
commit | 7b9ff0c09025dcbe48ec7db71330e2066d1e1863 (patch) | |
tree | c8faa7b24c1bd0e9a2bf4190e067a852ff8c31b0 /lib/Sema/SemaDeclAttr.cpp | |
parent | ef1440b6eca118d46291166ce3302f9bba8e639b (diff) |
Instantiate dependent attributes when instantiating templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148592 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaDeclAttr.cpp')
-rw-r--r-- | lib/Sema/SemaDeclAttr.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp index ea736320f8..e06d637eeb 100644 --- a/lib/Sema/SemaDeclAttr.cpp +++ b/lib/Sema/SemaDeclAttr.cpp @@ -393,13 +393,11 @@ static void handleGuardedByAttr(Sema &S, Decl *D, const AttributeList &Attr, if (pointer && !checkIsPointer(S, D, Attr)) return; - if (Arg->isTypeDependent()) - // FIXME: handle attributes with dependent types - return; - - // check that the argument is lockable object - if (!checkForLockableRecord(S, D, Attr, getRecordType(Arg->getType()))) - return; + if (!Arg->isTypeDependent()) { + if (!checkForLockableRecord(S, D, Attr, getRecordType(Arg->getType()))) + return; + // FIXME -- semantic checks for dependent attributes + } if (pointer) D->addAttr(::new (S.Context) PtGuardedByAttr(Attr.getRange(), |