Checked this with gcc-3.4.6 and gcc 4.1.2 on an ubuntu edgy box. 

[EMAIL PROTECTED]:~/try/bug$ cat makefile 

all:
        gcc-3.4 -c main.c -o obj-c/main.o -MMD -MF obj-c/main.d
        gcc-3.4 -E main.c -o obj-E/main.i -MMD -MF obj-E/main.d

        diff obj-c/main.d obj-E/main.d

[EMAIL PROTECTED]:~/try/bug$ cat main.c 
#include "aaa.h"


int main(void)
{
    return AAA;
}

gcc-3.4 -c main.c -o obj-c/main.o -MMD -MF obj-c/main.d
gcc-3.4 -E main.c -o obj-E/main.i -MMD -MF obj-E/main.d
diff obj-c/main.d obj-E/main.d
1c1
< obj-c/main.o: main.c aaa.h
---
> main.o: main.c aaa.h

Contents of obj-c and obj-E are 
[EMAIL PROTECTED]:~/try/bug$ ls obj-c/
main.d  main.o

[EMAIL PROTECTED]:~/try/bug$ ls obj-E/
main.d  main.i

A workaround that we can do is to use the -MT with the option at the moment.


-- 
           Summary: behaviour with -MMD and -c / -E causes differring
                    behaviours.
           Product: gcc
           Version: 4.1.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: driver
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ramana dot radhakrishnan at codito dot com
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30491

Reply via email to