top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

#num line directives suppress warnings in C code

0 votes

I've been dealing with a fair amount preprocessed C code, which includes directives that look like:

#0 "/usr/local/gcctrunk/lib/gcc/x86_64unknownlinuxgnu/4.9.0/include/stddef.h" 3

The problem I've encountered is that when I compile files with such code in them using gcc, the usual warnings from the compiler are suppressed. I'm guessing that this is intended behavior? If so, is there a way to disable it (re-enabling the warnings)?

For example the testcase below produces no warnings unless the first line is commented out. Best,

#0 "foo" 3

main ()
    printf ("%Xn");
posted May 15, 2013 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

0 votes

Try -Wsystem-headers option.

answer May 15, 2013 by anonymous
Similar Questions
+1 vote
  1. GCC is available in several variations (SJLJ, DW2, SEH). When compiling plain C code (therefore either assuming or explicitly specifying -fno-exceptions), does it make any difference which GCC variation is used?

  2. Further I assume, that if my plain C code was to link to a C++ library which may throw exceptions, then it would matter which GCC variation I use. In that case, I should use the GCC variation that matches with the C++ code exception flavour, I should enable -fexceptions when compiling my plain C code, and the exceptions could
    then propagate over the C code?

+1 vote

My current compiler settings are

arm-none-eabi-gcc -Wall -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -fshort-double-mcpu=cortex-m4 -mthumb -Qn -Os -finstrument-functions -mlong-calls -c temp.c -o temp.o
so on for temp1, temp2... Etc

I am compiling multiple C files. and linker settings are

ld -r temp.o -o one.o
so on for temp1, temp2... Etc

I am linking multiple .O files. Also I am using linker script i.e link.txt (invoked externally as below)

ld -cref -Map map.txt -S -T link.txt -temp.o -lm -lc -lgcc
arm-none-eabi-gcc -Wall sample.o -O Firmware.abs

Now, At output I get .abs file of 140KB.

My Questions are
1. How to optimize (reduce size of .abs) by using compiler or linker specific options?
2. There are Number of NOT used global variables and Blank Function Calls in my C files (NO Dead Code!!!!). Is it possible to perform some link time optimization.
3. Please Elaborate as I am new to this, I have referred sites, gcc help and tried some "lto" options but NO reduction is size.
4. I also tried using -fdata-sections -ffunction-sections
But It has INCREASED my firmware.abs file size from KB to MB (yes it is MB!!!!) I also wondered WHY?
I am using codesourcery arm toolchain evaluation. It has gcc version 4.5.2

+4 votes

Suppose a programmer wants that generated binary of C program should not work after a fixed number of times(like 5 times).