summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-08-11 14:38:03 +0200
committerBenoit Foucher <benoit@zeroc.com>2009-08-11 14:38:03 +0200
commit98b650afb952bf630ca552af48281f4fb09ac189 (patch)
tree9e653d0c4c97e45cd13a9a0b8965bdd20e049695 /cpp/src/Slice/Parser.cpp
parent3.3b version changes. (diff)
downloadice-98b650afb952bf630ca552af48281f4fb09ac189.tar.bz2
ice-98b650afb952bf630ca552af48281f4fb09ac189.tar.xz
ice-98b650afb952bf630ca552af48281f4fb09ac189.zip
Mcpp workaround for bug 4085
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 474503132b5..b38172de2a6 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -5453,6 +5453,13 @@ Slice::Unit::parse(const string& filename, FILE* file, bool debug, Slice::Featur
pushContainer(this);
pushDefinitionContext();
+ //
+ // MCPP Fix: mcpp doesn't always output the first #line when mcpp_lib_main is
+ // called repeatedly. We scan a fake #line here to ensure the top definition
+ // context is correctly initialized.
+ //
+ scanPosition(string("#line 1 " + _topLevelFile).c_str());
+
slice_in = file;
int status = slice_parse();
if(_errors)