Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

[llvm2.4-prerelease] cannot print ConstantRange to DOUT #3225

Closed Quuxplusone closed 15 years ago

Quuxplusone commented 15 years ago
Bugzilla Link PR2938
Status RESOLVED WONTFIX
Importance P normal
Reported by Török Edwin (edwin+bugs@etorok.eu)
Reported on 2008-10-23 08:43:00 -0700
Last modified on 2008-10-23 14:18:48 -0700
Version unspecified
Hardware PC Linux
CC anton@korobeynikov.info, evan.cheng@apple.com, llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also
This code doesn't compile anymore:

ConstantRange Bounds = VR->get(V);
DOUT << "Bounds: " << Bounds;

I think the problem is that DOUT is not a raw_ostream.
I've commented out that code for now.

/home/edwin/llvm-svn/llvm/include/llvm/Support/Streams.h: In member function
‘llvm::BaseStream<StreamTy>& llvm::BaseStream<StreamTy>::operator<<(const Ty&)
[with Ty = llvm::ConstantRange, StreamTy = std::basic_ostream<char,
std::char_traits<char> >]’:
Solver.cpp:440:   instantiated from here
/home/edwin/llvm-svn/llvm/include/llvm/Support/Streams.h:57: error: no match
for ‘operator<<’ in ‘*((llvm::BaseStream<std::basic_ostream<char,
std::char_traits<char> > >*)this)->llvm::BaseStream<std::basic_ostream<char,
std::char_traits<char> > >::Stream << Thing’
/usr/include/c++/4.3/ostream:112: note: candidates are:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(std::basic_ostream<_CharT, _Traits>&
(*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:121: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(std::basic_ios<_CharT, _Traits>&
(*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:131: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char,
_Traits = std::char_traits<char>]
/usr/include/c++/4.3/ostream:169: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(long int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:173: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:177: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(bool) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/bits/ostream.tcc:97: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(short int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:184: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(short unsigned int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/bits/ostream.tcc:111: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.3/ostream:195: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(unsigned int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:204: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(long long int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:208: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:213: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(double) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:217: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(float) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:225: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(long double) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/ostream:229: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(const void*) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/include/c++/4.3/bits/ostream.tcc:125: note:
std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
_Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT =
char, _Traits = std::char_traits<char>]
/home/edwin/llvm-svn/llvm/include/llvm/Value.h:247: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::Value&)
/home/edwin/llvm-svn/llvm/include/llvm/Value.h:251: note:
llvm::raw_ostream& llvm::operator<<(llvm::raw_ostream&, const llvm::Value&)
/home/edwin/llvm-svn/llvm/include/llvm/System/Path.h:708: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::sys::Path&)
/home/edwin/llvm-svn/llvm/include/llvm/System/Path.h:710: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::sys::PathWithStatus&)
/home/edwin/llvm-svn/llvm/include/llvm/Pass.h:205: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::Pass&)
/home/edwin/llvm-svn/llvm/include/llvm/Type.h:457: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::Type&)
/home/edwin/llvm-svn/llvm/include/llvm/Type.h:458: note:
llvm::raw_ostream& llvm::operator<<(llvm::raw_ostream&, const llvm::Type&)
/home/edwin/llvm-svn/llvm/include/llvm/ADT/APInt.h:1386: note:
llvm::raw_ostream& llvm::operator<<(llvm::raw_ostream&, const llvm::APInt&)
/home/edwin/llvm-svn/llvm/include/llvm/Analysis/ScalarEvolution.h:105: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::SCEV&)
/home/edwin/llvm-svn/llvm/include/llvm/Support/ConstantRange.h:188: note:
llvm::raw_ostream& llvm::operator<<(llvm::raw_ostream&, const
llvm::ConstantRange&)
Constraint.h:58: note:                 std::ostream&
llvm::operator<<(std::ostream&, const llvm::Relation&)
Constraint.h:134: note:                 std::ostream&
llvm::operator<<(std::ostream&, const llvm::Constraint&)
/home/edwin/llvm-svn/llvm/include/llvm/Analysis/AliasSetTracker.h:245: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::AliasSet&)
/home/edwin/llvm-svn/llvm/include/llvm/Analysis/AliasSetTracker.h:384: note:
std::ostream& llvm::operator<<(std::ostream&, const llvm::AliasSetTracker&)
Quuxplusone commented 15 years ago

The plan is to convert everything over to raw_ostream. Sorry, we won't be adding new operator<<'s for std::ostream unless needed in mainline.

Quuxplusone commented 15 years ago
(In reply to comment #1)
> The plan is to convert everything over to raw_ostream.  Sorry, we won't be
> adding new operator<<'s for std::ostream unless needed in mainline.
>

Converting DOUT from Support/Debug.h to raw_ostream is fine with me.

Can I just convert llvm:getErrorOutputStream to return errs() instead of cerr?
What is the equivalent of cnoout with raw_ostream?