diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-01-29 19:14:02 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-01-29 19:14:02 +0000 |
commit | 65eb86e91252791cea630e6ebcae8a5099aa24cf (patch) | |
tree | ca2793fc194e63fccb23ffd77c1b4fe1b4a98add /clang/lib/Sema/SemaInit.h | |
parent | 9fb8ce835d80337669f24fe7f567da015639d84f (diff) | |
download | bcm5719-llvm-65eb86e91252791cea630e6ebcae8a5099aa24cf.tar.gz bcm5719-llvm-65eb86e91252791cea630e6ebcae8a5099aa24cf.zip |
Fix reference binding of const lvalue references to bit-fields, which
requires a temporary. Previously, we were building an initialization
sequence that bound to the bit-field as if it were a real lvalue. Note
that we previously (and still) diagnose binding of non-const
references to bit-fields, as we should.
There's no real way to test that this code is correct, since reference
binding does not *currently* have any representation in the AST. This
fix should make it easier for that to happen, so I've verified this
fix with...
Added InitializationSequence::dump(), to print an initialization
sequence for debugging purposes.
llvm-svn: 94826
Diffstat (limited to 'clang/lib/Sema/SemaInit.h')
-rw-r--r-- | clang/lib/Sema/SemaInit.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaInit.h b/clang/lib/Sema/SemaInit.h index d7d3756020f..0b72fd4532d 100644 --- a/clang/lib/Sema/SemaInit.h +++ b/clang/lib/Sema/SemaInit.h @@ -21,6 +21,10 @@ #include "llvm/ADT/SmallVector.h" #include <cassert> +namespace llvm { + class raw_ostream; +} + namespace clang { class CXXBaseSpecifier; @@ -658,6 +662,14 @@ public: assert(getKind() == FailedSequence && "Not an initialization failure!"); return Failure; } + + /// \brief Dump a representation of this initialization sequence to + /// the given stream, for debugging purposes. + void dump(llvm::raw_ostream &OS) const; + + /// \brief Dump a representation of this initialization sequence to + /// standard error, for debugging purposes. + void dump() const; }; } // end namespace clang |