summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-01-29 19:14:02 +0000
committerDouglas Gregor <dgregor@apple.com>2010-01-29 19:14:02 +0000
commit65eb86e91252791cea630e6ebcae8a5099aa24cf (patch)
treeca2793fc194e63fccb23ffd77c1b4fe1b4a98add /clang/lib/Sema/SemaInit.h
parent9fb8ce835d80337669f24fe7f567da015639d84f (diff)
downloadbcm5719-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.h12
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
OpenPOWER on IntegriCloud