Bug 92071 - orbit-idl must produce an error in case of missing include files in .idl
Summary: orbit-idl must produce an error in case of missing include files in .idl
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: ORBit
Version: 8.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mark McLoughlin
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2003-06-02 14:07 UTC by Sysoltsev Slawa
Modified: 2007-04-18 16:54 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2004-07-28 12:23:06 UTC
Embargoed:


Attachments (Terms of Use)

Description Sysoltsev Slawa 2003-06-02 14:07:22 UTC
Description of problem:
Orbit-idl uses a compiler to preprocess idl file. This idl file can contain #include 
directives. If header file pointed in the include directive is missed the compiler 
emits an error and changes its exit status to non-zero. GNU compiler doesnât stop 
working at this and continues preprocessing the rest of the main source file. Thatâs 
only its behavior and the output after the error is quite unreliable. However orbit-idl 
doesnât check compiler output status and the error presence and continues to 
process the output. Donât you think it is too bizarre to go on in the presence of 
errors? If there is a missed header file, the errors probably will appear during the 
build stage where source files use orbit-idl generated header and ultimately an 
user will be frustrated by the incomprehensible errors (like unknown identifier used, 
but not defined anywhere!). Orbit-idl should prevent these situations and report 
about the problem timely. Nowadays there is no any diagnostics at all if .idl file 
includes missed header file.

As another reason to check for compiler errors, you can imagine that not all 
compilers continue working after error is spotted; Intel compiler is the case. In 
such a case the header produced by orbit-idl is incomplete and cannot be used 
properly.


Version-Release number of selected component (if applicable):


How reproducible:
always

Steps to Reproduce:
1. Compose an idl file (test.idl):
struct One {
    long i;
};

#include <inexisting.h>

struct Two {
    long j;
};

2. Try `orbit-idl test.idl`
    
Actual results:
No any diagnostics, error is suppressed, output files are produced.

Expected results:
Error or at least warning about missing file. A Developer or an user spot it and fix 
the .idl file accordingly.

Additional info:

Comment 1 Havoc Pennington 2003-06-02 16:47:03 UTC
This may already be fixed in orbit-idl-2, which you should be using
rather than orbit-idl - can you give that a try?

Comment 2 Sysoltsev Slawa 2003-06-09 10:20:32 UTC
This error happens while building evolution package. They calls orbit-idl, not orbit-
idl-2, so I concern only about orbit-idl.
With orbit-idl-2 the compiler errors are shown, but exit status is zero.

Comment 3 Mark McLoughlin 2004-07-28 12:23:06 UTC
(Sorry about the inactivity here)

I'm pretty sure this has been fixed with ORBit2 and nothing really
uses ORBit anymore. Closing, but feel free to re-open if the problem
still exists with ORBit2


Note You need to log in before you can comment on or make changes to this bug.