]> granicus.if.org Git - clang/commit
Clean up trivial default constructors now.
authorSean Hunt <scshunt@csclub.uwaterloo.ca>
Mon, 9 May 2011 21:45:35 +0000 (21:45 +0000)
committerSean Hunt <scshunt@csclub.uwaterloo.ca>
Mon, 9 May 2011 21:45:35 +0000 (21:45 +0000)
commit37b8c9ee7cf2b4d5ce3ccd3be1fcadd18a783a57
tree83c06c552f67abdee2e218504d0792211bba2e5a
parentc056c1792eac0717640f1f48b3739cc9a98ee413
Clean up trivial default constructors now.

hasTrivialDefaultConstructor() really really means it now.

Also implement a fun standards bug regarding aggregates. Doug, if you'd
like, I can un-implement that bug if you think it is truly a defect.

The bug is that non-special-member constructors are never considered
user-provided, so the following is an aggregate:

struct foo {
  foo(int);
};

It's kind of bad, but the solution isn't obvious - should

struct foo {
  foo (int) = delete;
};

be an aggregate or not?

Lastly, add a missing initialization to FunctionDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131101 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Decl.h
include/clang/AST/DeclCXX.h
lib/AST/DeclCXX.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaLookup.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriter.cpp
test/SemaCXX/aggregate-initialization.cpp